/* * @Author: godcreator02 qq974980621@gmail.com * @Date: 2024-04-20 18:52:14 * @LastEditors: godcreator02 qq974980621@gmail.com * @LastEditTime: 2024-04-23 21:51:55 * @FilePath: \vscode\FSM_OOP\baseFSM\FSM_public.h * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ #ifndef __FSM_PUBLIC_H_ #define __FSM_PUBLIC_H_ typedef unsigned int Uint16; typedef unsigned long Uint32; #define BASE_FSM(ptr) ((FSM *)(ptr)) #define BASE_PTR (FSM *) typedef struct FSM FSM; /* -------------------------------- 避免警告的函数定义 ------------------------------- */ #define Step(pFSM) _stepFSM((FSM *)pFSM) #define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM); #define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM) #define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM) #define GetData(pFSM) _getData((FSM*)pFSM) #define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) void _stepFSM(FSM *pFSM); /* --------------------------------- 状态机信息获取 -------------------------------- */ int getFSMCurState(FSM *pFSM); int getFSMNextState(FSM *pFSM); void setChildNum(FSM *pFSM, int num); void registerChildFSM(FSM *parent, FSM *child, int index); /* ------------------------------ Data和Signals ------------------------------ */ const void *_getData(FSM* pFSM); void _setSignal(FSM *pFSM, Uint16 signalFlag); /* ---------------------------------- 预装载器 ---------------------------------- */ void *_preloadIn(FSM *pFSM); void _preloaderGetReady(FSM *pFSM); int _getPreloaderOverFlag(FSM *pFSM); void _clearPreloaderOverFlag(FSM *pFSM); #endif