增加一个宏定义可以开启或关闭printf

This commit is contained in:
godcreator 2024-01-29 11:12:32 +08:00
parent ea394221ff
commit 8f17d6c8af
4 changed files with 29 additions and 19 deletions

View File

@ -4,7 +4,8 @@
"fsm_protected.h": "c",
"keyfsm.h": "c",
"fsm_public.h": "c",
"stdio.h": "c"
"stdio.h": "c",
"assert.h": "c"
},
"files.encoding": "utf8"
}

View File

@ -3,6 +3,15 @@
#include "FSM_public.h"
#define FSM_LOG_ON
#ifdef FSM_LOG_ON
#define FSM_LOG(...) printf(__VA_ARGS__)
#else
#define FSM_LOG(...) ((void)0)
#endif
#define during during
#define enter enter
#define exit exit

View File

@ -32,7 +32,7 @@ static void step(KeyFSM* pFSM){
KeyFSMData * data = pFSM->base.data;
printf("\t信号:%d, 计数%d ", data->out, data->countDelay);
FSM_LOG("\t信号:%d, 计数%d ", data->out, data->countDelay);
}
static void initData(KeyFSM *pFSM){ // 必须重新实现

View File

@ -51,7 +51,7 @@ static void actionFcn(during, DownDebouncing)(KeyFSM *pFSM)
{
KeyFSMData * data = pFSM->base.data;
data->countDelay++;
printf(" during开启消抖 ");
FSM_LOG(" during开启消抖 ");
}
@ -73,7 +73,7 @@ static void actionFcn(exit, Downing)(KeyFSM *pFSM)
static void actionFcn(during, UpDebouncing)(KeyFSM *pFSM){
KeyFSMData * data = pFSM->base.data;
data->countDelay++;
printf(" during松开消抖 ");
FSM_LOG(" during松开消抖 ");
}
@ -99,7 +99,7 @@ static void actionFcn(exit, Holding)(KeyFSM *pFSM){
static void actionFcn(during, MultiDownWaiting)(KeyFSM *pFSM){
KeyFSMData * data = pFSM->base.data;
data->countDelay++;
printf(" during多击等待 ");
FSM_LOG(" during多击等待 ");
}
@ -139,7 +139,7 @@ typedef enum _Event{
static State transitionHandler(PhsicalDown)(KeyFSM *pFSM)
{
printf(" 物理按键按下 ");
FSM_LOG(" 物理按键按下 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
switch (getFSMCurState((FSM_Ptr)pFSM))
@ -161,7 +161,7 @@ static State transitionHandler(PhsicalDown)(KeyFSM *pFSM)
default:
printf("检查状态转移表设计,不应该到这里");
FSM_LOG("查状态转移表设计,不应该到这里");
assert(0);
}
@ -169,7 +169,7 @@ static State transitionHandler(PhsicalDown)(KeyFSM *pFSM)
static State transitionHandler(PhsicalUp)(KeyFSM *pFSM)
{
printf(" 物理按键松开 ");
FSM_LOG(" 物理按键松开 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
switch (getFSMCurState((FSM_Ptr)pFSM))
@ -189,14 +189,14 @@ static State transitionHandler(PhsicalUp)(KeyFSM *pFSM)
return UpDebouncing;
default:
printf("检查状态转移表设计,不应该到这里");
FSM_LOG("检查状态转移表设计,不应该到这里");
assert(0);
}
}
static State transitionHandler(DelayCount3)(KeyFSM *pFSM){
printf(" 延迟计数到3 ");
FSM_LOG(" 延迟计数到3 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
switch (getFSMCurState((FSM_Ptr)pFSM))
@ -204,14 +204,14 @@ static State transitionHandler(DelayCount3)(KeyFSM *pFSM){
case DownDebouncing:
data->out = Down;
printf("按键按下");
FSM_LOG("按键按下");
return Downing;
case UpDebouncing:
data->out = Up;
data->countMultiDown++;
printf("按键松开");
FSM_LOG("按键松开");
return MultiDownWaiting;
case MultiDownWaiting:
@ -223,14 +223,14 @@ static State transitionHandler(DelayCount3)(KeyFSM *pFSM){
return Waiting;
default:
printf("检查状态转移表设计,不应该到这里");
FSM_LOG("检查状态转移表设计,不应该到这里");
assert(0);
}
}
static State transitionHandler(HoldCount4)(KeyFSM *pFSM){
printf(" 计数到2进入长按模式 ");
FSM_LOG(" 计数到2进入长按模式 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
data->out = Hold;
@ -240,7 +240,7 @@ static State transitionHandler(HoldCount4)(KeyFSM *pFSM){
static State transitionHandler(MultiDown)(KeyFSM *pFSM){
printf(" 多击 ");
FSM_LOG(" 多击 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
@ -254,11 +254,11 @@ static State transitionHandler(MultiDown)(KeyFSM *pFSM){
break;
default:
printf(" 到达多击次数上限了 ");
FSM_LOG(" 到达多击次数上限了 ");
break;
}
printf(" 多击%d ", data->countMultiDown+1);
FSM_LOG(" 多击%d ", data->countMultiDown+1);
return MultiDowning;
}
@ -287,8 +287,8 @@ const static char *eventStr[] = {
"HoldCount4",
};
static void printFSM(KeyFSM* pFSM){
printf("\tKeyFSM: ");
printf("当前状态:%s, \t\t当前事件:%s, \t\t转移:", stateStr[getFSMCurState((FSM_Ptr)pFSM)], eventStr[getFSMCurEvent((FSM_Ptr)pFSM)]);
FSM_LOG("\tKeyFSM: ");
FSM_LOG("当前状态:%s, \t\t当前事件:%s, \t\t转移:", stateStr[getFSMCurState((FSM_Ptr)pFSM)], eventStr[getFSMCurEvent((FSM_Ptr)pFSM)]);
}