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