事件驱动的有限状态机+线程:如何?

JCL*_*CLL 5 c embedded

我想在C中建模一个事件驱动的有限状态机,如下所示:http: //en.wikipedia.org/wiki/Event-driven_finite_state_machine

但我也希望在各种线程中处理"外部"事件.

我可以在某个地方找到这样的代码吗?还是建议?

mou*_*iel 7

消息队列是解决问题的一种方法.

如果要向状态机提供来自其他线程的外部事件,则可以将这些事件写入将由状态机读取的消息队列中.

如果您希望其他线程触发来自状态机的操作,它可以写入各种消息队列,每个消息队列都与将从其MQ读取的线程相关联.

一个缺点是事件按时间顺序排序.如果你的状态机没有处理它只是从队列中读取的事件的心情,你必须决定如何处理这个事件:销毁它,把它放回队列,记住它以备将来使用......


小智 5

也许Quantum Framework正是您所寻找的?有关详细信息,请访问http://state-machine.com/.许多微控制器以及Linux和Windows都有端口.