有限状态机编程方法

       在编程中经常会碰到根据当前的状态和到来的事件(ex:key event ,packet 到来)来执行不同的动作,使用有限状态机编程是一种非常简洁明了的方式。该种方式大概的思想是:状态机FSM会维护某种状态(stateful  protocol ),根据到来的事件和当前FSM 处于的状态,FSM 会做出不同的响应并切换到下一状态(或保持当前状态),从而实现相应的业务逻辑。

     比如你正在床上睡觉(state:sleep),这是闹铃响了(event:alarm ring),你会处于朦胧状态(state:drowsy),等过了5分钟,你的潜意思或者生物钟会告诉你瞌睡5分钟(event:5mins passed)了,这时候你才不情愿的起床(state:actived),然后就是后面的类似的种种事件到来和state切换。

   举一个实际的例子并附上代码:

    这是一段封包解析代码段,诸如TCP,UART,RFCOM这些应用程数据,因为存在了封包的切割,应用端收到的数据可能不是每每都是完整的封包,所以需要记录封包parsing 的状态并做相应的处理从而组成一笔完整的封包。

   该case中这样定义协议: Binary data is read from the data stream using the following binary specification (transport
packet header). Each field is stored as Big Endian.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值