状态机相关 编程 资料 收集

状态机 QP

写状态机时,还是很烦的,觉得PT在这个方面最直观,但在一些特定领域并不合适。
QP也是大家比较推崇的,但是感觉有点大(至少我觉得),刚好逛github碰到一个叫SM的库,
据说是模仿QP的,看起来感觉不错,就改写了一点,在windows下写了个demo,觉得在arm下也应该是一样的,

原作者地址
https://github.com/leijian001/sm
源码
之前用过不少pt,感觉挺好,也没出过什么问题,不知道这个怎么样,下载看看

这个最简状态机框架可以这样用:

  • 定义一个FSM,再定义这个FSM的一个通用消息变量Evt,把FSM+Evt封装起来,这样就得到一个AO,然后程序里可以有多个AO,它们互相通过发送消息进行协作。
  • 每个AO再增加一个定时器消息变量EvtTimer,可以实现延时动作。

由于消息变量Evt可以看成是长度为1的队列,所以AO可能丢失消息。但如果把Evt扩展为长度大于1的队列,就又回到QPN的完整设计。

所以,简单的项目可以用这个框架,实际工程里建议直接用QPN框架,它基本功能都齐了。

(稍后补充)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值