key在28377上测试ok,运行速度上没有变化

This commit is contained in:
godcreator02 2024-04-23 19:38:43 +08:00
parent 8f259cb022
commit 89da4251ca
3 changed files with 24 additions and 21 deletions

View File

@ -6,7 +6,7 @@ include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM)
aux_source_directory(${PROJECT_SOURCE_DIR}/FSM_OOP/baseFSM SRC_FSM_OOP)
#set(keytest 789)
set(keytest 789)
# set(child_parent 789)
if(DEFINED keytest)
include_directories(${PROJECT_SOURCE_DIR}/FSM_OOP/keytest)

View File

@ -2,7 +2,7 @@
* @Author: godcreator02 qq974980621@gmail.com
* @Date: 2024-04-20 19:02:11
* @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
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -14,19 +14,9 @@
#include "keyFSM.h"
#include "keyFSM_private.h"
/*
*/
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);
}
/* -------------------------------------------------------------------------- */
/* 纯虚函数允许调用privateVars */
/* -------------------------------------------------------------------------- */
static void initData(KeyFSM *pFSM){ // 必须重新实现
KeyFSMData *data = (KeyFSMData *)malloc(sizeof(KeyFSMData));
data->countDelay = 0;
@ -34,14 +24,14 @@ static void initData(KeyFSM *pFSM){ // 必须重新实现
data->in = Up;
data->out = Idle;
pFSM->base.privateVars.data = data;
pFSM->base.data = data;
pFSM->base.signals = &data->out;
}
static void initDataLoader(KeyFSM *pFSM){ // 必须重新实现
pFSM->base.preloader.shadowData = malloc(sizeof(KeyIn));
pFSM->base.preloader.size = sizeof(KeyIn);
pFSM->base.privateVars.preloader.shadowData = malloc(sizeof(KeyIn));
pFSM->base.privateVars.preloader.size = sizeof(KeyIn);
}
static void initSignals(KeyFSM *pFSM){ // 必须重新实现
@ -85,6 +75,20 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现
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);
#ifndef DSP28377
pFSM->base.pureVtbl.step = (Avoid_WARNING_Overrider_Fcns)step;
pFSM->base.step = (Avoid_WARNING_Overrider_Fcns)step;
#endif
pFSM->base.pureVtbl.setupHandler = (Avoid_WARNING_void_fcns)setupHandler;
pFSM->base.pureVtbl.initData = (Avoid_WARNING_Overrider_Fcns)initData;
pFSM->base.pureVtbl.initDataLoader = (Avoid_WARNING_Overrider_Fcns)initDataLoader;

View File

@ -263,7 +263,7 @@ const static char *stateStr[] = {
};
static void printFSM(KeyFSM* pFSM){
KeyFSMData* data = pFSM->base.privateVars.data;
KeyFSMData* data = pFSM->base.data;
FSM_LOG("KeyFSM: ");
FSM_LOG("%d, 当前状态:%s, \t上一个下次事件:%s \t转移:", data->countDelay, stateStr[getFSMCurState((FSM *)pFSM)], stateStr[getFSMNextState((FSM *)pFSM)]);
}