MATLAB Answers

How to force enumeration type to be defined in generated code.

5 ビュー (過去 30 日間)
Martin Beaucage
Martin Beaucage 2018 年 9 月 5 日
コメント済み: Martin Beaucage 2018 年 12 月 7 日
We use Simulink to make programs for our new controller. The Simulink model generates C code (using Embedded coder, Simulink coder) that we compile and load on the controller. We have made custom blocks to show information in our user interface tool. One of these blocks (ItemConfiguration) allow us to define variables that will be visible by the user and we have Read and Write blocks to access theses variables in the model. The ItemConfiguration block uses TLC code to make a structure in the C code containing the configured variables. The Read and Write blocks read or write these variables with data from the model.
With my ItemConfiguration block, if I define a variable named toto of enumeration type (type defines in a .m file) the code generation will make a structure containing a variable names toto with type enumeration type. When I use Read or write blocks, conversion to this enumeration type are used so during code generation Simulink includes the type definition in the C code.
The problem I have is that if the toto variables is not used by any Read or Write blocks the type definition is not included in the C code and when I build the compiler tells me the type is undefined, which is normal. I would like to know if it is possible in the TLC code to force a specific type to be included in the generated code?
  2 件のコメント
Martin Beaucage
Martin Beaucage 2018 年 12 月 7 日
Hello Maurice,
We modified our "ItemConfiguration" block to create, in a subsystem, a constant going into a terminator for each different enumeration type used. During compilation there variables are removed since they do nothing but it forces the inclusion of the types during code generation.


回答 (1 件)

Arunkumar M
Arunkumar M 2018 年 12 月 7 日
If you are using Data Dictionary, you can define your enumerations there. On code generation, this will be included in the generated header file.
On the other hand, if your enumerations are already defined in a .h file, then you can use the property Imported From File in your enumeration definition and give the header name to include it in the generated code




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by