#ifndef __PARENT_FSM_H_ #define __PARENT_FSM_H_ /* -------------------------------------------------------------------------- */ /* 提前做类型声明 */ /* -------------------------------------------------------------------------- */ typedef struct FSM FSM; typedef struct ParentFSM ParentFSM; /* -------------------------------------------------------------------------- */ /* 子状态机绑定,需要自己实现逻辑 */ /* -------------------------------------------------------------------------- */ void bind_ParentFSM_ChildFSMs(ParentFSM *pFSM, FSM *B_FSM); /* -------------------------------------------------------------------------- */ /* 自定义数据和信号 */ /* -------------------------------------------------------------------------- */ /** * @brief 自定义外部信号,目前最多15个 * @details 因为是Unint16存储的信号位 * */ enum ParentFSMSignals{ Signal_toA = 1, /**< 必须从1开始,0预留给Idle信号了*/ Signal_toB, Signal_toC, }; /** * @brief 自定义外部数据 * */ typedef struct ParentFSMExternalData { int arrindex; int x; }ParentFSMExternalData; /** * @brief 自定义内部数据 * */ typedef struct ParentFSMInnerData { int y1; int inner1; }ParentFSMInnerData; /* -------------------------------------------------------------------------- */ /* 这一块改个名字就行了 */ /* -------------------------------------------------------------------------- */ typedef struct ParentFSMData { ParentFSMExternalData external; ParentFSMInnerData internal; }ParentFSMData; ParentFSM *createParentFSM(); #endif