LS自主研发项目上位机自检
状态机,父状态,子状态,子子状态
空白状态stIdle,主状态stMain,debug主状态sfDisplayOn,debug主状态sfDisplayOff,自子状态机stLoad有些功能检测起来比较复杂,要用三四个状态组合来检查。
步骤:1,定义状态机
头文件中包含状态机类,定义并新建一个状态机(一般为指针类型变量)machine = new StateMachine(this);
2,定义并新建状态,这些状态是级别最高状态,主要是空闲stIdle,检测状态stMain,并将这些状态加入到状态机当中。并且指定当前状态书的初始状态。 machine->setInitialState(stIdle);
为主状态stMain指定初始状态。
3.用addTransition为每一个状态写好状态跳转。
4.除了要靠路状态正确跳转,还要考虑如果此状态处理不及时的情况,所以还要设置超时的跳转。
5.顺序跳转和超时跳转都设置好了,可以添加跳转时的一些汉字提示。
代码:
QStateMachine *machine; //state machine
QState *stIdle, *stMain;
QState *stUpBumperPress;
QState *stUpBumperRelease;
QState *stUpBumperCheck;
QState *stUpBumper;
QFinalState *stUpBumperDone;
QTimer *upBumperPressTimer, *upBumperReleaseTimer;
mach