-
Notifications
You must be signed in to change notification settings - Fork 13.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
State Machine Options (Library, Framework, Generator, Compiler, etc) #10584
Comments
FYI @simonegu @julianoes |
FWIW, Yakindu statechart tools can be run headless (without running Eclipse UI), and moving charts between Qt and Yakindu somewhat works. |
@dagar I made a dumb little example in PX4 that uses this library https://github.com/amaiorano/hsm It's essentially the
Right now the
I have the debug level set to diagnostic, so you can see all state transitions and their relationships. |
Julian's state machine in PX4/avoidance. PX4/PX4-Avoidance#418 |
Thanks @dakejahl and @jkflying. That's helpful, however, I still believe the hard part is capturing the intended behaviour and put it into a diagram than to actually implement the state machine. I have implemented a state machine like this in the past as well but was struggling with formulating the actual behaviour without having to do it using hierarchical state machines. |
Maybe a first step would be drawing a high level state transition diagram and refactoring into that, even if inside the different states there is still a lot of ad-hoc implicit state code? |
➤ David Sidrane commented: Have a look at https://www.visual-paradigm.com/ |
Why without hierarchical state machines? |
Right so for hierarchical state machines you either need to extend the implementations or combine them manually. |
Added https://github.com/andrew-gresyk/HFSM2 to the list to investigate. |
You might consider a language @fsantanna created called ceu. http://ceu-lang.org/index.html It generates C code that you would have to integrate into an event loop. It's not a state machine generator, but I find the semantics easier on my brain than state machines, even hierarchical. |
Option used by NASA Astrobee: https://github.com/nasa/astrobee/blob/bb0fc3e4110a14929bd4cf35c12b3c169bc6c756/shared/ff_util/include/ff_util/ff_fsm.h (not generated automatically) |
@dagar |
I've been casually looking for a good solution to handle state machines throughout the system.
Requirements
Options
NEGATIVE: c++14 required (blocked by qurt toolchain)The text was updated successfully, but these errors were encountered: