添加一个打印信息

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 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"/>

View File

@ -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]);

View File

@ -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)

View File

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

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_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);

View File

@ -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);

View File

@ -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)]);
}

View File

@ -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)]);
}

View File

@ -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)]);
}

View File

@ -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)]);
}

View File

@ -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]);

View File

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

View File

@ -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;

View File

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