How do I change the properties of an Enum stored in a data dictionary programmatically?

Hello,
I have a data dictionary an I defined several enums inside it through the Model Explorer window.
Now I want to change some of the properties of those enums programatically through MATLAB code (for example: based on some configuration for the embedded coder). Is there any way to do it? I coulnd't find any relevant documentation regarding this issue, Only how to add or remove enums from data dictionary.
I tried to do the following thing but it didn't work:
myDictionaryObj = Simulink.data.dictionary.open(ModuleName);
dDataSectObj = getSection(myDictionaryObj,'Design Data');
entriesEnum = find(dDataSectObj,'-value','-class','EnumTypeDefinition');
I Specifically want to progarmatically change the enum settings in the 'Code Generation' tab: Data Scope and Header file.
Any help will be much appreciated.
Thanks

 Accepted Answer

5 Comments

Thanks. but it doesn't mention specifically how to modify entries of class enum. I tried the above but it didn't work
Thank you but that's not what I was looking for. I eddited my question. I specifically want to pragramatically chage the settings in the 'Code Generation' tab in the enum settings.
That was a problem. Several years ago, I have requested the Mathworks to hve full SLDD API to access all data object property values. But so far in R2024a, it still just has getValue() and setValue() methods.
I can suggest this workarounds:
  1. Create the enumeral class object, set the .DataScope and .HeaderFile property and then import it to SLDD.
The other workaround Simulink.data.evalinGlobal('ModelName','a=11;') works for an existing ordinary variable in the SLDD to change value, but it does not work for an existing enumeral class such as Simulink.data.evalinGlobal('ModelName','myColors.DataScope="Exported";')

Sign in to comment.

More Answers (0)

Categories

Find more on Manage Design Data in Help Center and File Exchange

Products

Release

R2022a

Community Treasure Hunt

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

Start Hunting!