Using a C Union datatypes as an input/Output for a S-function on Simulink
13 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a C program which uses struct and union defined in a header. What i want to do is use this program in Simulink for that i used the legacy code tool to create a Sfunction but, i still have a problem with the unions which are part of some structures used as input and output of the program and Simulink won't import them. I am asking here if there is any workaround for using Unions with Simulink or if there are exemple available.
If there are available solutions it would help a lot.
0 个评论
采纳的回答
Mark McBroom
2023-1-1
Simulink does not support unions. However, you can work around this by treating the union as a Simulink.Bus data object with DataScope of "Imported" and Header file is the name of the hand-written header file defining the structs and unions. https://www.mathworks.com/help/simulink/slref/simulink.bus.html# This approach treats each field of the union as different memory locations during simulation and therefore is only valid if the SImulink model reads and writes to just one of the union fields. If you attempt to write to one union field and then read from another, you will not get the expected result during simulation.
Hope this helps
Mark.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!