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

조회 수: 10 (최근 30일)
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

채택된 답변

Fangjun Jiang
Fangjun Jiang 2024년 3월 19일
  댓글 수: 5
Fangjun Jiang
Fangjun Jiang 2024년 3월 20일
편집: Fangjun Jiang 2024년 3월 20일
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";')

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 String에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by