添加一个打印信息

This commit is contained in:
godcreator02 2024-07-02 16:42:07 +08:00
parent d48d5c7cc1
commit 27acc2bb1b
14 changed files with 31 additions and 14 deletions

View File

@ -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 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"> <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="_INLINE"/>
<listOptionValue builtIn="false" value="DSP28377"/>
<listOptionValue builtIn="false" value="CPU1"/> <listOptionValue builtIn="false" value="CPU1"/>
</option> </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"/> <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"/>

View File

@ -81,7 +81,7 @@ void childFSMTest(){
for (int k = 0; k < 15; k++) for (int k = 0; k < 15; k++)
{ {
printf("第%d次: ",k+1); printf("i: ",k+1);
SetSignal(pFSM, i[k]); SetSignal(pFSM, i[k]);
SetSignal(cFSM, j[k]); SetSignal(cFSM, j[k]);

View File

@ -7,7 +7,7 @@ aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM SRC_FSM_OOP)
# set(keytest 789) # set(keytest 789)
set(child_parent 789) #set(child_parent 789)
if(DEFINED keytest) if(DEFINED keytest)
include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest) include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest)
aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest SRC_FSM_USR) aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest SRC_FSM_USR)

View File

@ -41,11 +41,11 @@ static inline void updateNextState(FSM* pFSM){
* *
* @param pFSM * @param pFSM
*/ */
static void exitFSM(FSM *pFSM) static void shutFSM(FSM *pFSM)
{ {
int curState = getCurState(pFSM); int curState = getCurState(pFSM);
if(hasChildFSM(pFSM, curState)){ if(hasChildFSM(pFSM, curState)){
exitFSM(getChildFSM(pFSM, curState)); shutFSM(getChildFSM(pFSM, curState));
} }
doExit(pFSM); doExit(pFSM);
setCurState(pFSM, FSM_Idle); setCurState(pFSM, FSM_Idle);
@ -89,7 +89,7 @@ void stepBaseFSM(FSM *pFSM)
// 退出子状态机 // 退出子状态机
if(hasChildFSM(pFSM, curState)){ if(hasChildFSM(pFSM, curState)){
FSM *cFSM = getChildFSM(pFSM, curState); FSM *cFSM = getChildFSM(pFSM, curState);
exitFSM(cFSM); shutFSM(cFSM);
} }
doExit(pFSM); doExit(pFSM);
@ -128,10 +128,14 @@ void _stepFSM(FSM *pFSM){
pFSM->publicFcns.step(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; return pFSM->privateVars->curState;
} }
int getFSMNextState(FSM *pFSM){ inline int getFSMNextState(FSM *pFSM){
return pFSM->privateVars->nextState; return pFSM->privateVars->nextState;
} }
@ -152,6 +156,7 @@ void _setSignal(FSM *pFSM, Uint16 signalFlag){
pFSM->signals.all |= (1 << signalFlag); pFSM->signals.all |= (1 << signalFlag);
} }
/** /**
* @brief * @brief
* @deprecated * @deprecated

View File

@ -52,6 +52,7 @@ typedef void (*Avoid_WARNING_State_Fcns)(void *data);
typedef void (*Avoid_WARNING_General_Handlers)(void *data); typedef void (*Avoid_WARNING_General_Handlers)(void *data);
typedef void (*Avoid_WARNING_Transition_Handler)(void *data); typedef void (*Avoid_WARNING_Transition_Handler)(void *data);
typedef void (*Avoid_WARNING_Overrider_Fcns)(FSM *pFSM); 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_ResetSignals_Fcns)(FSMSignals* signals, void *);
typedef void (*Avoid_WARNING_loadData_Fcns)(void*); typedef void (*Avoid_WARNING_loadData_Fcns)(void*);
typedef int (*Avoid_WARNING_SelectNextState)(void *data, FSMSignals* signals); typedef int (*Avoid_WARNING_SelectNextState)(void *data, FSMSignals* signals);

View File

@ -23,11 +23,12 @@ typedef struct FSMPublicFcns
{ {
void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息 void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息 void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
const char *(*curState2ASCII)(FSM *pFSM);
}FSMPublicFcns; }FSMPublicFcns;
/* -------------------------------- 避免警告的函数定义 ------------------------------- */ /* -------------------------------- 避免警告的函数定义 ------------------------------- */
#define Step(pFSM) _stepFSM((FSM *)pFSM) /**< 外界调用这个 */ #define Step(pFSM) _stepFSM((FSM *)pFSM) /**< 外界调用这个 */
#define CurState2ASCII(pFSM) _curState2ASCII((FSM *)pFSM) /**< 外界调用这个 */
#define GetData(pFSM) _getData((FSM*)pFSM) /**< 外界调用这个 */ #define GetData(pFSM) _getData((FSM*)pFSM) /**< 外界调用这个 */
#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) /**< 外界调用这个 */ #define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) /**< 外界调用这个 */
@ -37,6 +38,7 @@ typedef struct FSMPublicFcns
void _stepFSM(FSM *pFSM); void _stepFSM(FSM *pFSM);
const char * _curState2ASCII(FSM *pFSM);
/* --------------------------------- 状态机信息获取 -------------------------------- */ /* --------------------------------- 状态机信息获取 -------------------------------- */
int getFSMCurState(FSM *pFSM); int getFSMCurState(FSM *pFSM);
int getFSMNextState(FSM *pFSM); int getFSMNextState(FSM *pFSM);

View File

@ -110,7 +110,7 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现
static void step(ParentFSM* pFSM){ static void step(ParentFSM* pFSM){
printFSM(pFSM); printFSM(pFSM);
stepBaseFSM(BASE_FSM(pFSM)); stepBaseFSM(BASE_FSM(pFSM));
FSM_LOG("下次状态:%s", stateStr[getFSMNextState((FSM *)pFSM)]); FSM_LOG("NextState:%s", stateStr[getFSMNextState((FSM *)pFSM)]);
} }

View File

@ -161,5 +161,5 @@ const static char *stateStr[] = {
static void printFSM(ParentFSM* pFSM){ static void printFSM(ParentFSM* pFSM){
FSM_LOG(" \tParent: "); FSM_LOG(" \tParent: ");
FSM_LOG("当前状态:%s, 动作:", stateStr[getFSMCurState((FSM *)pFSM)]); FSM_LOG("CurrentState:%s, Action", stateStr[getFSMCurState((FSM *)pFSM)]);
} }

View File

@ -106,7 +106,7 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现
static void step(ChildFSM* pFSM){ static void step(ChildFSM* pFSM){
printFSM(pFSM); printFSM(pFSM);
stepBaseFSM(BASE_FSM(pFSM)); stepBaseFSM(BASE_FSM(pFSM));
FSM_LOG("下次状态:%s", stateStr[getFSMNextState((FSM *)pFSM)]); FSM_LOG("NextState:%s", stateStr[getFSMNextState((FSM *)pFSM)]);
} }

View File

@ -133,5 +133,5 @@ const static char *stateStr[] = {
static void printFSM(ChildFSM* pFSM){ static void printFSM(ChildFSM* pFSM){
FSM_LOG(" \tChild: "); FSM_LOG(" \tChild: ");
FSM_LOG("当前状态:%s, 动作:", stateStr[getFSMCurState((FSM *)pFSM)]); FSM_LOG("CurrentState:%s, Action", stateStr[getFSMCurState((FSM *)pFSM)]);
} }

View File

@ -21,7 +21,7 @@ int main(){
for (int k = 0; k < 15; k++) for (int k = 0; k < 15; k++)
{ {
printf("%d: ",k+1); printf("%d: ",k+1);
SetSignal(pFSM, i[k]); SetSignal(pFSM, i[k]);
SetSignal(cFSM, j[k]); SetSignal(cFSM, j[k]);

View File

@ -29,8 +29,11 @@ int main(){
x = 0; x = 0;
} }
printf("%d, " ,i); printf("%d, " ,i);
printf("\t\t %s", CurState2ASCII(pFSM));
Step(pFSM); Step(pFSM);
printf("\n"); printf("\n");
} }

View File

@ -17,6 +17,11 @@
#include "templateFSM.h" #include "templateFSM.h"
#include "templateFSM_private.h" #include "templateFSM_private.h"
const char * curState2ASCII(TemplateFSM *pFSM){
return stateStr[getFSMCurState((FSM *)pFSM)];
}
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* 纯虚函数允许调用privateVars */ /* 纯虚函数允许调用privateVars */
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
@ -147,6 +152,7 @@ TemplateFSM *createTemplateFSM(){
// 重新实现的函数 // 重新实现的函数
pFSM->base.publicFcns.step = (Avoid_WARNING_Overrider_Fcns)step; 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.initData = (Avoid_WARNING_Overrider_Fcns)initData;
pFSM->base.pureVtbl.initDataLoader = (Avoid_WARNING_Overrider_Fcns)initDataLoader; pFSM->base.pureVtbl.initDataLoader = (Avoid_WARNING_Overrider_Fcns)initDataLoader;
pFSM->base.pureVtbl.setupHandler = (Avoid_WARNING_void_fcns)setupHandler; pFSM->base.pureVtbl.setupHandler = (Avoid_WARNING_void_fcns)setupHandler;

View File

@ -62,6 +62,7 @@ typedef struct TemplateFSMData
typedef struct TemplateFSM TemplateFSM; typedef struct TemplateFSM TemplateFSM;
TemplateFSM *createTemplateFSM(); TemplateFSM *createTemplateFSM();
const char * curState2ASCII_TemplateFSM(TemplateFSM *pFSM);
#endif #endif