FSM/vscode/FSM_OOP/baseFSM/FSM_public.h

50 lines
1.8 KiB
C

/*
* @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