增加一个宏定义可以开启或关闭printf
This commit is contained in:
parent
ea394221ff
commit
8f17d6c8af
|
@ -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"
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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){ // 必须重新实现
|
||||
|
|
|
@ -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)]);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue