key在28377上测试ok,运行速度上没有变化
This commit is contained in:
parent
8f259cb022
commit
89da4251ca
|
@ -6,7 +6,7 @@ include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM)
|
||||||
aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM SRC_FSM_OOP)
|
aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM SRC_FSM_OOP)
|
||||||
|
|
||||||
|
|
||||||
#set(keytest 789)
|
set(keytest 789)
|
||||||
# set(child_parent 789)
|
# set(child_parent 789)
|
||||||
if(DEFINED keytest)
|
if(DEFINED keytest)
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest)
|
include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: godcreator02 qq974980621@gmail.com
|
* @Author: godcreator02 qq974980621@gmail.com
|
||||||
* @Date: 2024-04-20 19:02:11
|
* @Date: 2024-04-20 19:02:11
|
||||||
* @LastEditors: godcreator02 qq974980621@gmail.com
|
* @LastEditors: godcreator02 qq974980621@gmail.com
|
||||||
* @LastEditTime: 2024-04-23 17:15:11
|
* @LastEditTime: 2024-04-23 19:37:03
|
||||||
* @FilePath: \vscode\FSM_OOP\keytest\keyFSM.c
|
* @FilePath: \vscode\FSM_OOP\keytest\keyFSM.c
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
|
@ -14,19 +14,9 @@
|
||||||
#include "keyFSM.h"
|
#include "keyFSM.h"
|
||||||
#include "keyFSM_private.h"
|
#include "keyFSM_private.h"
|
||||||
|
|
||||||
/*
|
/* -------------------------------------------------------------------------- */
|
||||||
重载函数,有些是纯虚的必须重新实现,有些可以不重新实现直接用父类的
|
/* 纯虚函数,允许调用privateVars */
|
||||||
*/
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
static void step(KeyFSM* pFSM){
|
|
||||||
printFSM(pFSM);
|
|
||||||
_stepFSM((FSM *)pFSM);
|
|
||||||
|
|
||||||
KeyFSMData * data = pFSM->base.privateVars.data;
|
|
||||||
|
|
||||||
FSM_LOG("\t信号:%d, 计数%d ", data->out, data->countDelay);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void initData(KeyFSM *pFSM){ // 必须重新实现
|
static void initData(KeyFSM *pFSM){ // 必须重新实现
|
||||||
KeyFSMData *data = (KeyFSMData *)malloc(sizeof(KeyFSMData));
|
KeyFSMData *data = (KeyFSMData *)malloc(sizeof(KeyFSMData));
|
||||||
data->countDelay = 0;
|
data->countDelay = 0;
|
||||||
|
@ -34,14 +24,14 @@ static void initData(KeyFSM *pFSM){ // 必须重新实现
|
||||||
data->in = Up;
|
data->in = Up;
|
||||||
data->out = Idle;
|
data->out = Idle;
|
||||||
|
|
||||||
pFSM->base.privateVars.data = data;
|
pFSM->base.data = data;
|
||||||
|
|
||||||
pFSM->base.signals = &data->out;
|
pFSM->base.signals = &data->out;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initDataLoader(KeyFSM *pFSM){ // 必须重新实现
|
static void initDataLoader(KeyFSM *pFSM){ // 必须重新实现
|
||||||
pFSM->base.preloader.shadowData = malloc(sizeof(KeyIn));
|
pFSM->base.privateVars.preloader.shadowData = malloc(sizeof(KeyIn));
|
||||||
pFSM->base.preloader.size = sizeof(KeyIn);
|
pFSM->base.privateVars.preloader.size = sizeof(KeyIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initSignals(KeyFSM *pFSM){ // 必须重新实现
|
static void initSignals(KeyFSM *pFSM){ // 必须重新实现
|
||||||
|
@ -85,6 +75,20 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现
|
||||||
fcns->transitionGeneralAction = (Avoid_WARNING_General_Handlers)transitionGeneralAction;
|
fcns->transitionGeneralAction = (Avoid_WARNING_General_Handlers)transitionGeneralAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
/* 其他重新实现的函数,父类已有实现,实现多态 */
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
static void step(KeyFSM* pFSM){
|
||||||
|
printFSM(pFSM);
|
||||||
|
stepBaseFSM(BASE_FSM(pFSM));
|
||||||
|
|
||||||
|
KeyFSMData * data = pFSM->base.data;
|
||||||
|
|
||||||
|
FSM_LOG("\t信号:%d, 计数%d ", data->out, data->countDelay);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
唯一外界调用的函数
|
唯一外界调用的函数
|
||||||
*/
|
*/
|
||||||
|
@ -95,9 +99,8 @@ KeyFSM *createKeyFSM(){
|
||||||
pFSM = (KeyFSM *)newBaseFSM(Count_State, DEFAULT_STATE);
|
pFSM = (KeyFSM *)newBaseFSM(Count_State, DEFAULT_STATE);
|
||||||
|
|
||||||
#ifndef DSP28377
|
#ifndef DSP28377
|
||||||
pFSM->base.pureVtbl.step = (Avoid_WARNING_Overrider_Fcns)step;
|
pFSM->base.step = (Avoid_WARNING_Overrider_Fcns)step;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pFSM->base.pureVtbl.setupHandler = (Avoid_WARNING_void_fcns)setupHandler;
|
pFSM->base.pureVtbl.setupHandler = (Avoid_WARNING_void_fcns)setupHandler;
|
||||||
pFSM->base.pureVtbl.initData = (Avoid_WARNING_Overrider_Fcns)initData;
|
pFSM->base.pureVtbl.initData = (Avoid_WARNING_Overrider_Fcns)initData;
|
||||||
pFSM->base.pureVtbl.initDataLoader = (Avoid_WARNING_Overrider_Fcns)initDataLoader;
|
pFSM->base.pureVtbl.initDataLoader = (Avoid_WARNING_Overrider_Fcns)initDataLoader;
|
||||||
|
|
|
@ -263,7 +263,7 @@ const static char *stateStr[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void printFSM(KeyFSM* pFSM){
|
static void printFSM(KeyFSM* pFSM){
|
||||||
KeyFSMData* data = pFSM->base.privateVars.data;
|
KeyFSMData* data = pFSM->base.data;
|
||||||
FSM_LOG("KeyFSM: ");
|
FSM_LOG("KeyFSM: ");
|
||||||
FSM_LOG("%d, 当前状态:%s, \t上一个下次事件:%s \t转移:", data->countDelay, stateStr[getFSMCurState((FSM *)pFSM)], stateStr[getFSMNextState((FSM *)pFSM)]);
|
FSM_LOG("%d, 当前状态:%s, \t上一个下次事件:%s \t转移:", data->countDelay, stateStr[getFSMCurState((FSM *)pFSM)], stateStr[getFSMNextState((FSM *)pFSM)]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue