添加一个打印信息
This commit is contained in:
parent
d48d5c7cc1
commit
27acc2bb1b
|
@ -54,7 +54,6 @@
|
|||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE.171868085" name="Provide advice on optimization techniques (--advice:performance)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE" value="--advice:performance=all" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE.1681891118" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="_INLINE"/>
|
||||
<listOptionValue builtIn="false" value="DSP28377"/>
|
||||
<listOptionValue builtIn="false" value="CPU1"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.1901056751" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
|
||||
|
|
|
@ -81,7 +81,7 @@ void childFSMTest(){
|
|||
|
||||
for (int k = 0; k < 15; k++)
|
||||
{
|
||||
printf("第%d次: ",k+1);
|
||||
printf("i: ",k+1);
|
||||
SetSignal(pFSM, i[k]);
|
||||
SetSignal(cFSM, j[k]);
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM SRC_FSM_OOP)
|
|||
|
||||
|
||||
# set(keytest 789)
|
||||
set(child_parent 789)
|
||||
#set(child_parent 789)
|
||||
if(DEFINED keytest)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest)
|
||||
aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest SRC_FSM_USR)
|
||||
|
|
|
@ -41,11 +41,11 @@ static inline void updateNextState(FSM* pFSM){
|
|||
*
|
||||
* @param pFSM 状态机变量的基类指针
|
||||
*/
|
||||
static void exitFSM(FSM *pFSM)
|
||||
static void shutFSM(FSM *pFSM)
|
||||
{
|
||||
int curState = getCurState(pFSM);
|
||||
if(hasChildFSM(pFSM, curState)){
|
||||
exitFSM(getChildFSM(pFSM, curState));
|
||||
shutFSM(getChildFSM(pFSM, curState));
|
||||
}
|
||||
doExit(pFSM);
|
||||
setCurState(pFSM, FSM_Idle);
|
||||
|
@ -89,7 +89,7 @@ void stepBaseFSM(FSM *pFSM)
|
|||
// 退出子状态机
|
||||
if(hasChildFSM(pFSM, curState)){
|
||||
FSM *cFSM = getChildFSM(pFSM, curState);
|
||||
exitFSM(cFSM);
|
||||
shutFSM(cFSM);
|
||||
}
|
||||
|
||||
doExit(pFSM);
|
||||
|
@ -128,10 +128,14 @@ void _stepFSM(FSM *pFSM){
|
|||
pFSM->publicFcns.step(pFSM);
|
||||
}
|
||||
|
||||
int getFSMCurState(FSM *pFSM){
|
||||
const char * _curState2ASCII(FSM *pFSM){
|
||||
return pFSM->publicFcns.curState2ASCII(pFSM);
|
||||
}
|
||||
|
||||
inline int getFSMCurState(FSM *pFSM){
|
||||
return pFSM->privateVars->curState;
|
||||
}
|
||||
int getFSMNextState(FSM *pFSM){
|
||||
inline int getFSMNextState(FSM *pFSM){
|
||||
return pFSM->privateVars->nextState;
|
||||
}
|
||||
|
||||
|
@ -152,6 +156,7 @@ void _setSignal(FSM *pFSM, Uint16 signalFlag){
|
|||
pFSM->signals.all |= (1 << signalFlag);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 弃用
|
||||
|
|
|
@ -52,6 +52,7 @@ typedef void (*Avoid_WARNING_State_Fcns)(void *data);
|
|||
typedef void (*Avoid_WARNING_General_Handlers)(void *data);
|
||||
typedef void (*Avoid_WARNING_Transition_Handler)(void *data);
|
||||
typedef void (*Avoid_WARNING_Overrider_Fcns)(FSM *pFSM);
|
||||
typedef const char * (*Avoid_WARNING_2ASCII_Fcns)(FSM *pFSM);
|
||||
typedef void (*Avoid_WARNING_ResetSignals_Fcns)(FSMSignals* signals, void *);
|
||||
typedef void (*Avoid_WARNING_loadData_Fcns)(void*);
|
||||
typedef int (*Avoid_WARNING_SelectNextState)(void *data, FSMSignals* signals);
|
||||
|
|
|
@ -23,11 +23,12 @@ typedef struct FSMPublicFcns
|
|||
{
|
||||
void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
|
||||
const char *(*curState2ASCII)(FSM *pFSM);
|
||||
}FSMPublicFcns;
|
||||
|
||||
/* -------------------------------- 避免警告的函数定义 ------------------------------- */
|
||||
#define Step(pFSM) _stepFSM((FSM *)pFSM) /**< 外界调用这个 */
|
||||
#define CurState2ASCII(pFSM) _curState2ASCII((FSM *)pFSM) /**< 外界调用这个 */
|
||||
#define GetData(pFSM) _getData((FSM*)pFSM) /**< 外界调用这个 */
|
||||
#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) /**< 外界调用这个 */
|
||||
|
||||
|
@ -37,6 +38,7 @@ typedef struct FSMPublicFcns
|
|||
|
||||
|
||||
void _stepFSM(FSM *pFSM);
|
||||
const char * _curState2ASCII(FSM *pFSM);
|
||||
/* --------------------------------- 状态机信息获取 -------------------------------- */
|
||||
int getFSMCurState(FSM *pFSM);
|
||||
int getFSMNextState(FSM *pFSM);
|
||||
|
|
|
@ -110,7 +110,7 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现
|
|||
static void step(ParentFSM* pFSM){
|
||||
printFSM(pFSM);
|
||||
stepBaseFSM(BASE_FSM(pFSM));
|
||||
FSM_LOG("下次状态:%s", stateStr[getFSMNextState((FSM *)pFSM)]);
|
||||
FSM_LOG("NextState:%s", stateStr[getFSMNextState((FSM *)pFSM)]);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -161,5 +161,5 @@ const static char *stateStr[] = {
|
|||
|
||||
static void printFSM(ParentFSM* pFSM){
|
||||
FSM_LOG(" \tParent: ");
|
||||
FSM_LOG("当前状态:%s, 动作:", stateStr[getFSMCurState((FSM *)pFSM)]);
|
||||
FSM_LOG("CurrentState:%s, Action", stateStr[getFSMCurState((FSM *)pFSM)]);
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现
|
|||
static void step(ChildFSM* pFSM){
|
||||
printFSM(pFSM);
|
||||
stepBaseFSM(BASE_FSM(pFSM));
|
||||
FSM_LOG("下次状态:%s", stateStr[getFSMNextState((FSM *)pFSM)]);
|
||||
FSM_LOG("NextState:%s", stateStr[getFSMNextState((FSM *)pFSM)]);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -133,5 +133,5 @@ const static char *stateStr[] = {
|
|||
|
||||
static void printFSM(ChildFSM* pFSM){
|
||||
FSM_LOG(" \tChild: ");
|
||||
FSM_LOG("当前状态:%s, 动作:", stateStr[getFSMCurState((FSM *)pFSM)]);
|
||||
FSM_LOG("CurrentState:%s, Action", stateStr[getFSMCurState((FSM *)pFSM)]);
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ int main(){
|
|||
|
||||
for (int k = 0; k < 15; k++)
|
||||
{
|
||||
printf("第%d次: ",k+1);
|
||||
printf("%d: ",k+1);
|
||||
SetSignal(pFSM, i[k]);
|
||||
SetSignal(cFSM, j[k]);
|
||||
|
||||
|
|
|
@ -28,8 +28,11 @@ int main(){
|
|||
if(i == 7){
|
||||
x = 0;
|
||||
}
|
||||
|
||||
|
||||
printf("%d, " ,i);
|
||||
|
||||
printf("\t\t %s", CurState2ASCII(pFSM));
|
||||
|
||||
Step(pFSM);
|
||||
printf("\n");
|
||||
|
|
|
@ -17,6 +17,11 @@
|
|||
#include "templateFSM.h"
|
||||
#include "templateFSM_private.h"
|
||||
|
||||
|
||||
const char * curState2ASCII(TemplateFSM *pFSM){
|
||||
return stateStr[getFSMCurState((FSM *)pFSM)];
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* 纯虚函数,允许调用privateVars */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
@ -147,6 +152,7 @@ TemplateFSM *createTemplateFSM(){
|
|||
|
||||
// 重新实现的函数
|
||||
pFSM->base.publicFcns.step = (Avoid_WARNING_Overrider_Fcns)step;
|
||||
pFSM->base.publicFcns.curState2ASCII = (Avoid_WARNING_2ASCII_Fcns)curState2ASCII;
|
||||
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;
|
||||
|
|
|
@ -62,6 +62,7 @@ typedef struct TemplateFSMData
|
|||
|
||||
typedef struct TemplateFSM TemplateFSM;
|
||||
TemplateFSM *createTemplateFSM();
|
||||
const char * curState2ASCII_TemplateFSM(TemplateFSM *pFSM);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue