StateSmith
StateSmith is a cross platform, free/open source tool for generating state machines. The generated code is human readable, has zero dependencies and is suitable for use with tiny bare metal microcontrollers, kernels, or servers. It avoids dynamic memory allocations for the safety or performance inclined.
StateSmith will one day generate code for multiple different languages, but for now, the focus is on good old C
(or C++
) with zero dependencies.
https://github.com/StateSmith/StateSmith
https://www.state-machine.com/qpc/
https://github.com/QuantumLeaps/qpc
QP/C (Quantum Platform in C) is a lightweight, open source Real-Time Embedded Framework (RTEF) for building modern embedded software as systems of asynchronous, event-driven active objects (actors). The QP/C framework is a member of a QP family consisting of QP/C and QP/C++ frameworks, which are strictly quality controlled, thoroughly documented, and commercially licensable.
https://www.state-machine.com/doc/AN_Getting_Started_with_QP.pdf
QP: Quantum Programming
QP是一个通用的事件驱动框架,面向MCU,面向并发的层次式状态机模型。
QP包含了1个轻量级的QK(Quantum Kernel)。
QEP:Quantum Event Processor是一个通用的,可移植的,可重用的状态机引擎。
QEP允许你直接把UML样式的状态图映射为代码。
QEP提供了传统的简单平面状态机和层次式状态机。QEP可以直接操作事件队列和事件分发机制。
QF是一个通用的,事件驱动的应用框架,面向嵌入式系统。
QF被设计成和QEP,RTOS协同工作。
QF包含了事件队列,活动对象,事件遍历等。
QK是一个极小的,按RTC习惯的,执行独立任务的内核。
QK必须和QF版本相匹配。
QS是一个的实时跟踪设施。