封装publicfcns
This commit is contained in:
parent
a5cd5ec864
commit
32a1642b19
|
@ -7,6 +7,11 @@
|
|||
#include "FSM_protected.h"
|
||||
#include "FSM_public.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* private函数 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
@ -116,7 +121,7 @@ void resetBaseFSM(FSM *pFSM)
|
|||
}
|
||||
|
||||
void _stepFSM(FSM *pFSM){
|
||||
pFSM->step(pFSM);
|
||||
pFSM->publicFcns.step(pFSM);
|
||||
}
|
||||
|
||||
|
||||
|
@ -211,8 +216,8 @@ FSM* newBaseFSM(int numState, int defaultState){
|
|||
};
|
||||
pFSM->pureVtbl = pureVtbl;
|
||||
|
||||
pFSM->step = stepBaseFSM;
|
||||
pFSM->reset = resetBaseFSM;
|
||||
pFSM->publicFcns.step = resetBaseFSM;
|
||||
pFSM->publicFcns.reset = resetBaseFSM;
|
||||
|
||||
return pFSM;
|
||||
}
|
||||
|
|
|
@ -116,10 +116,7 @@ typedef struct FSMPureVtbl {
|
|||
/* -------------------------------------------------------------------------- */
|
||||
typedef struct FSM
|
||||
{
|
||||
// public functions
|
||||
void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
|
||||
FSMPublicFcns publicFcns;
|
||||
// protected
|
||||
FSMPureVtbl pureVtbl;
|
||||
|
||||
|
|
|
@ -17,6 +17,13 @@ typedef unsigned long Uint32;
|
|||
|
||||
typedef struct FSM FSM;
|
||||
|
||||
typedef struct FSMPublicFcns
|
||||
{
|
||||
void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
|
||||
}FSMPublicFcns;
|
||||
|
||||
/* -------------------------------- 避免警告的函数定义 ------------------------------- */
|
||||
#define Step(pFSM) _stepFSM((FSM *)pFSM)
|
||||
#define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM);
|
||||
|
|
|
@ -110,7 +110,7 @@ TemplateFSM *createTemplateFSM(){
|
|||
pFSM = (TemplateFSM *)newBaseFSM(Count_State, DEFAULT_STATE);
|
||||
|
||||
// 重新实现的函数
|
||||
pFSM->base.step = (Avoid_WARNING_Overrider_Fcns)step;
|
||||
pFSM->base.publicFcns.step = (Avoid_WARNING_Overrider_Fcns)step;
|
||||
pFSM->base.pureVtbl.initData = (Avoid_WARNING_Overrider_Fcns)initData;
|
||||
pFSM->base.pureVtbl.initDataLoader = (Avoid_WARNING_Overrider_Fcns)initDataLoader;
|
||||
pFSM->base.pureVtbl.setupHandler = (Avoid_WARNING_void_fcns)setupHandler;
|
||||
|
|
|
@ -100,7 +100,6 @@ static void actionFcn(exit, E)()
|
|||
/* 转移函数 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
static void transitionGeneralAction(FSM pFSM){
|
||||
|
||||
FSM_LOG("general");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue