Is there a native Simulink feature to trigger an error/warning when overflow from an 'enum' class instance occurs?
2 次查看(过去 30 天)
显示 更早的评论
MathWorks Support Team
2020-10-29
回答: MathWorks Support Team
2020-10-29
I have created an enum class (see below) which inherits from uint8 and it seems that there is no overflow error/warning from Simulink when loading testEnumClass.varC as an enumerated constant in Simulink.
classdef testEnumClass < uint8
enumeration
varA(1)
varB(2)
varC(1000)
end
end
Is there a native Simulink feature to trigger an error/warning, when there is such overflow, so that I can catch the wrong enum definitions in my model?
采纳的回答
MathWorks Support Team
2020-10-29
You can rewrite the enum definition using Simulink.defineIntEnumType, after which Simulink will raise an error if a value overflows.
The new enum definition can look like the following:
Simulink.defineIntEnumType('testEnumClass', ...
{'varA', 'varB', 'varC'}, ...
[1;2;1000], ...
'Description', 'Example', ...
'DefaultValue', 'varA', ...
'StorageType', 'uint8');
This produces the error: Underlying numeric values do not fit into the specified StorageType when loading testEnumClass.varC as an enumerated constant.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Environment Customization 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!