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

10 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Fangjun Jiang
Fangjun Jiang am 19 Mär. 2024
  5 Kommentare
Fangjun Jiang
Fangjun Jiang am 20 Mär. 2024
Bearbeitet: Fangjun Jiang am 20 Mär. 2024
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";')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by