QP 状态机学习笔记1(基本概念)

QP学习笔记

  1. 基本概念
  • 事件:

一个事件是一类瞬间发生的能导致状态机去执行动作的事情。事件可以有参数,参数可以携带关于这个已发生事情的定量化的信息。当接收到一个事件的实例,状态机通过完成动作(执行代码)来响应。响应也许包括改变状态,这被称为一个状态转换。

  • 断言:https://baike.baidu.com/item/assert.h/336982?fr=aladdin
  • 状态表:函数指针数组
  • 状态类:
  • 扩展状态变量:QEP设计的创新性来自于把状态直接映射成状态处理函数,处理在状态里他们表示的全部事件。
  • QEP层次式事件处理器的核心元素是QFsm结构,它通过一个‘状态处理函数指针’来跟踪当前状态。QFsm是用来派生的。
  • QEP FSM的好处:通过函数指针来消除一层switch case

2.状态机的基本实现方式:

a)       嵌套的switch 语句

b)       状态表

c)       面向对象的状态设计模式

d)       目的:消除判断语句

思考方式:

不要使用分散的C或C++语句来思考,而应该使用状态机元素比如状态,转换,进入/退出动作,初始转换,和监护条件来思考。当你的思维有了这个量子跃迁,你将不会和令人费解的“意大利面条”代码作斗争。你将开始在一个较高的抽象层来思考,用最好的方法把行为分区到各个状态,在任何给定时间有哪些可用时间,以及记得状态机的最优化的状态层次。




你可能感兴趣的:(状态机)