Logging state-transition from stateflow in generated code

2 views (last 30 days)
Hello,
I've been working with stateflow for a project, where I want to create some statecharts to run. I generated the code in C. To get some extra information when the statecharts are running, but I'm not connected to them I would like to add some logging of the state changes. I've been researching this for the better part of yesterday and found one option (https://nl.mathworks.com/help/rtw/ug/use-c-api-to-access-model-signals-and-states.html)
For my logging I would like to 'print' the state changes as they happen so I also have some idea of timing while running my application, something lile LED:off -> LED:on. In an ideal world you'd don't have to change anything in stateflow itself to add the logging, having to add a signal to every state for me is already a little bit of a feature I might forget from time to time.
When I look at how the signals are generated I see the following:
{ 0, 0, TARGET_STRING("statemachine/PoC/PoC/LED/LED.Off"),
TARGET_STRING("Off"), 0, 0, 0, 0, 0 },
{ 0, 0, TARGET_STRING("statemachine/PoC/PoC/LED/LED.On"),
TARGET_STRING("On"), 0, 0, 0, 0, 0 },
{ 0, 0, TARGET_STRING("statemachine/PoC/PoC/Button/Button.Pressed"),
TARGET_STRING("Pressed"), 0, 0, 0, 0, 0 },
In the list it's not initally clear that the upper two states are together and the third one is from another statemachine. I can make an implemenation that looks at this with the target strings and paths, but to me it feels that it doesn't have to be that complicated.
I thought there might be a more intiutive/easier option to do this, but haven't been able to find it. Does anyone know if some type of magical button that automatically add this logging into C code? Or makes the information accesable there? Are the signals the best way to go, or are there better options?

Answers (1)

Mark McBroom
Mark McBroom on 3 Aug 2022
Edited: Mark McBroom on 3 Aug 2022

Categories

Find more on Complex Logic in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!