增加一个宏定义可以开启或关闭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", "fsm_protected.h": "c",
"keyfsm.h": "c", "keyfsm.h": "c",
"fsm_public.h": "c", "fsm_public.h": "c",
"stdio.h": "c" "stdio.h": "c",
"assert.h": "c"
}, },
"files.encoding": "utf8" "files.encoding": "utf8"
} }

View File

@ -3,6 +3,15 @@
#include "FSM_public.h" #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 during during
#define enter enter #define enter enter
#define exit exit #define exit exit

View File

@ -32,7 +32,7 @@ static void step(KeyFSM* pFSM){
KeyFSMData * data = pFSM->base.data; 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){ // 必须重新实现 static void initData(KeyFSM *pFSM){ // 必须重新实现

View File

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