重构中,doxygen注释写在这个分支里了,没法反悔了
|
@ -42,6 +42,6 @@
|
|||
|
||||
"files.encoding": "utf8",
|
||||
|
||||
|
||||
"doxdocgen.file.versionTag": "@version 2.1"
|
||||
}
|
||||
|
||||
|
|
|
@ -10,29 +10,39 @@
|
|||
/* -------------------------------------------------------------------------- */
|
||||
/* private函数 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/**
|
||||
* @brief 设置下一个状态,里面的子状态机暂时没用到
|
||||
*
|
||||
* @param pFSM 状态机变量的基类指针
|
||||
*/
|
||||
static inline void setNextState(FSM* pFSM){
|
||||
int curState = pFSM->privateVars.curState;
|
||||
int curState = pFSM->privateVars->curState;
|
||||
if(curState != 0){
|
||||
pFSM->signals.lastTriggeredSignal = Idle_Signal;
|
||||
pFSM->privateVars.nextState = pFSM->privateVars.fcns.selectNextState[curState](pFSM->data, &pFSM->signals);
|
||||
pFSM->privateVars.index = pFSM->privateVars.curState * pFSM->privateVars.numState + pFSM->privateVars.nextState;
|
||||
pFSM->privateVars->nextState = pFSM->privateVars->fcns.selectNextState[curState](pFSM->data, &pFSM->signals);
|
||||
pFSM->privateVars->index = pFSM->privateVars->curState * pFSM->privateVars->numState + pFSM->privateVars->nextState;
|
||||
}
|
||||
|
||||
if(0 == pFSM->privateVars.numChild)
|
||||
if(0 == pFSM->privateVars->numChild)
|
||||
return;
|
||||
|
||||
|
||||
for (int i = 0; i < pFSM->privateVars.numChild; i++)
|
||||
for (int i = 0; i < pFSM->privateVars->numChild; i++)
|
||||
{
|
||||
FSM *cFSM = pFSM->privateVars.childFSM[i];
|
||||
FSM *cFSM = pFSM->privateVars->childFSM[i];
|
||||
setNextState(cFSM);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 去掉了所有和预装载器相关的内容
|
||||
* @param pFSM
|
||||
*/
|
||||
static inline void preload(FSM* pFSM){
|
||||
if(pFSM->privateVars.preloader.isReady){
|
||||
memcpy(pFSM->data, pFSM->privateVars.preloader.shadowData, pFSM->privateVars.preloader.size);
|
||||
pFSM->privateVars.preloader.isReady = 0;
|
||||
if(pFSM->privateVars->preloader.isReady){
|
||||
memcpy(pFSM->data, pFSM->privateVars->preloader.shadowData, pFSM->privateVars->preloader.size);
|
||||
pFSM->privateVars->preloader.isReady = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,6 +53,12 @@ static inline void preload(FSM* pFSM){
|
|||
/* -------------------------------------------------------------------------- */
|
||||
/* protected */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief 运行状态机,状态机框架的核心函数
|
||||
* @details 共分为三部首先判断是否有状态机切换,
|
||||
* @param pFSM 状态机基类指针
|
||||
*/
|
||||
void stepBaseFSM(FSM *pFSM)
|
||||
{
|
||||
pFSM->pureVtbl.loadExternalData(pFSM->data);
|
||||
|
@ -50,34 +66,35 @@ void stepBaseFSM(FSM *pFSM)
|
|||
setNextState(pFSM);
|
||||
pFSM->pureVtbl.resetSignals(&pFSM->signals, pFSM->data);
|
||||
|
||||
FSMHandler *fcns = &pFSM->privateVars.fcns;
|
||||
int curState = pFSM->privateVars.curState;
|
||||
FSMHandler *fcns = &pFSM->privateVars->fcns;
|
||||
int curState = pFSM->privateVars->curState;
|
||||
void *data = pFSM->data;
|
||||
FSM **childFSM = pFSM->privateVars.childFSM;
|
||||
int index = pFSM->privateVars.index;
|
||||
int nextState = pFSM->privateVars.nextState;
|
||||
FSM **childFSM = pFSM->privateVars->childFSM;
|
||||
int index = pFSM->privateVars->index;
|
||||
int nextState = pFSM->privateVars->nextState;
|
||||
|
||||
|
||||
|
||||
if(nextState && curState != nextState){ // 状态切换
|
||||
if (fcns->transitionTable[index] != NULL) // 有特定的状态转移函数
|
||||
{
|
||||
if (fcns->exitActionTable[curState] != NULL)
|
||||
fcns->exitActionTable[curState](data, childFSM);
|
||||
if (fcns->exitActionTable[curState] != NULL)
|
||||
fcns->exitActionTable[curState](data, childFSM);
|
||||
|
||||
if (fcns->transitionTable[index] != NULL) // 有特定的状态转移函数
|
||||
(*fcns->transitionTable[index])(data);
|
||||
|
||||
if (fcns->enterActionTable[nextState] != NULL)
|
||||
fcns->enterActionTable[nextState](data, childFSM);
|
||||
}
|
||||
if(fcns->transitionGeneralAction != NULL)
|
||||
fcns->transitionGeneralAction(data); // 通用状态转移函数
|
||||
pFSM->privateVars.curState = nextState;
|
||||
}
|
||||
else if(curState == 0){ // 处理刚运行进入的默认状态
|
||||
nextState = pFSM->privateVars.defaultState;
|
||||
|
||||
if (fcns->enterActionTable[nextState] != NULL)
|
||||
fcns->enterActionTable[nextState](data, childFSM);
|
||||
pFSM->privateVars.curState = nextState;
|
||||
|
||||
pFSM->privateVars->curState = nextState;
|
||||
}
|
||||
else if(curState == 0){ // 处理刚运行进入的默认状态
|
||||
nextState = pFSM->privateVars->defaultState;
|
||||
if (fcns->enterActionTable[nextState] != NULL)
|
||||
fcns->enterActionTable[nextState](data, childFSM);
|
||||
pFSM->privateVars->curState = nextState;
|
||||
}
|
||||
else // 状态机没动
|
||||
{
|
||||
|
@ -92,10 +109,10 @@ void stepBaseFSM(FSM *pFSM)
|
|||
/* -------------------------------------------------------------------------- */
|
||||
void resetBaseFSM(FSM *pFSM)
|
||||
{
|
||||
if (pFSM->privateVars.fcns.exitActionTable[pFSM->privateVars.curState] != NULL)
|
||||
pFSM->privateVars.fcns.exitActionTable[pFSM->privateVars.curState](pFSM->data, pFSM->privateVars.childFSM);
|
||||
if (pFSM->privateVars->fcns.exitActionTable[pFSM->privateVars->curState] != NULL)
|
||||
pFSM->privateVars->fcns.exitActionTable[pFSM->privateVars->curState](pFSM->data, pFSM->privateVars->childFSM);
|
||||
|
||||
pFSM->privateVars.curState = 0;
|
||||
pFSM->privateVars->curState = 0;
|
||||
}
|
||||
|
||||
void _stepFSM(FSM *pFSM){
|
||||
|
@ -104,20 +121,20 @@ void _stepFSM(FSM *pFSM){
|
|||
|
||||
|
||||
int getFSMCurState(FSM *pFSM){
|
||||
return pFSM->privateVars.curState;
|
||||
return pFSM->privateVars->curState;
|
||||
}
|
||||
int getFSMNextState(FSM *pFSM){
|
||||
return pFSM->privateVars.nextState;
|
||||
return pFSM->privateVars->nextState;
|
||||
}
|
||||
|
||||
|
||||
void setChildNum(FSM *pFSM, int num){
|
||||
pFSM->privateVars.numChild = num;
|
||||
pFSM->privateVars.childFSM = (FSM **)calloc(num, sizeof(FSM *));
|
||||
pFSM->privateVars->numChild = num;
|
||||
pFSM->privateVars->childFSM = (FSM **)calloc(num, sizeof(FSM *));
|
||||
}
|
||||
|
||||
void registerChildFSM(FSM *parent, FSM *child, int index){
|
||||
parent->privateVars.childFSM[index] = child;
|
||||
parent->privateVars->childFSM[index] = child;
|
||||
}
|
||||
|
||||
const void *_getData(FSM* pFSM){
|
||||
|
@ -125,26 +142,48 @@ const void *_getData(FSM* pFSM){
|
|||
}
|
||||
|
||||
void _setSignal(FSM *pFSM, Uint16 signalFlag){
|
||||
pFSM->signals.external |= (1 << signalFlag);
|
||||
pFSM->signals.all |= (1 << signalFlag);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 弃用
|
||||
* @param pFSM
|
||||
* @return void*
|
||||
*/
|
||||
void *_preloadIn(FSM *pFSM){
|
||||
return pFSM->privateVars.preloader.shadowData;
|
||||
return pFSM->privateVars->preloader.shadowData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 弃用
|
||||
* @param pFSM
|
||||
*/
|
||||
void _preloaderGetReady(FSM *pFSM){
|
||||
if(pFSM->privateVars.preloader.isReady){
|
||||
pFSM->privateVars.preloader.isOverflow = 1;
|
||||
if(pFSM->privateVars->preloader.isReady){
|
||||
pFSM->privateVars->preloader.isOverflow = 1;
|
||||
}
|
||||
pFSM->privateVars.preloader.isReady = 1;
|
||||
pFSM->privateVars->preloader.isReady = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 弃用
|
||||
* @param pFSM
|
||||
* @return int
|
||||
*/
|
||||
int _getPreloaderOverFlag(FSM *pFSM){
|
||||
return pFSM->privateVars.preloader.isOverflow;
|
||||
return pFSM->privateVars->preloader.isOverflow;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 弃用
|
||||
* @param pFSM
|
||||
*/
|
||||
void _clearPreloaderOverFlag(FSM *pFSM){
|
||||
pFSM->privateVars.preloader.isOverflow = 0;
|
||||
pFSM->privateVars->preloader.isOverflow = 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -160,23 +199,7 @@ FSM* newBaseFSM(int numState, int defaultState){
|
|||
typedef int (*SelectNextStateFcnPtr)(void *, FSMSignals *);
|
||||
|
||||
FSM *pFSM = calloc(1, sizeof(FSM));
|
||||
pFSM->privateVars.numState = numState;
|
||||
pFSM->privateVars.defaultState = defaultState;
|
||||
pFSM->privateVars.curState = 0;
|
||||
pFSM->privateVars.nextState = 0;
|
||||
pFSM->privateVars.numChild = 0;
|
||||
|
||||
pFSM->privateVars.preloader.isReady = 0;
|
||||
|
||||
pFSM->privateVars.fcns.duringActionTable = calloc(numState, sizeof(StateFuncPtr));
|
||||
pFSM->privateVars.fcns.enterActionTable = calloc(numState, sizeof(StateFuncPtr));
|
||||
pFSM->privateVars.fcns.exitActionTable = calloc(numState, sizeof(StateFuncPtr));
|
||||
|
||||
pFSM->privateVars.fcns.selectNextState = calloc(numState, sizeof(SelectNextStateFcnPtr));
|
||||
pFSM->privateVars.fcns.transitionTable = calloc(numState * numState, sizeof(TransitionFuncPtr));
|
||||
pFSM->privateVars.fcns.transitionGeneralAction = calloc(1, sizeof(StateFuncPtr));
|
||||
|
||||
pFSM->privateVars.fcns.childFSMStepTable = calloc(numState * numState, sizeof(ChildFSMStepFuncPtr));
|
||||
pFSM->privateVars = newFMSPrivateVars(numState, defaultState);
|
||||
|
||||
FSMPureVtbl pureVtbl = {
|
||||
.setupHandler = NULL,
|
||||
|
@ -200,14 +223,14 @@ void constructFSM(FSM* pFSM){
|
|||
assert(pFSM->pureVtbl.initData);
|
||||
assert(pFSM->pureVtbl.initDataLoader);
|
||||
|
||||
pFSM->pureVtbl.setupHandler(&pFSM->privateVars.fcns);
|
||||
pFSM->pureVtbl.setupHandler(&pFSM->privateVars->fcns);
|
||||
pFSM->pureVtbl.initData(pFSM);
|
||||
pFSM->pureVtbl.initDataLoader(pFSM);
|
||||
|
||||
/* ---------------------------------- 检查状态表 --------------------------------- */
|
||||
for (int i = 1; i < pFSM->privateVars.numState; i++) // 跳过Idle状态,Idle状态只能跳转到默认状态
|
||||
for (int i = 1; i < pFSM->privateVars->numState; i++) // 跳过Idle状态,Idle状态只能跳转到默认状态
|
||||
{
|
||||
if(!pFSM->privateVars.fcns.selectNextState[i]){
|
||||
if(!pFSM->privateVars->fcns.selectNextState[i]){
|
||||
FSM_LOG("每个状态都要有一个状态选择函数!\n");
|
||||
assert(0); // 强制退出
|
||||
}
|
||||
|
|
|
@ -1,7 +1,90 @@
|
|||
/**
|
||||
* @file FSM_private.h
|
||||
* @author 天神 (dalaoshi@stu.xjtu.edu.cn)
|
||||
* @brief 状态机框架的私有变量,只能在状态机框架内使用。
|
||||
* @version 2.1
|
||||
* @date 2024-05-07
|
||||
*
|
||||
* @copyright 天神创意无限公司 2024
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __FSM_PRIVATE_H_
|
||||
#define __FSM_PRIVATE_H_
|
||||
|
||||
// 这个文件里函数定义和声明写一块
|
||||
#include <string.h>
|
||||
#include "FSM_protected.h"
|
||||
|
||||
typedef struct FSMHandler FSMHandler;
|
||||
typedef struct FSM FSM;
|
||||
typedef struct FSMSignals FSMSignals;
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* private数据类型 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated 预装载器弃用
|
||||
*
|
||||
*/
|
||||
typedef struct FSMDataLoader
|
||||
{
|
||||
void *shadowData;
|
||||
int isReady;
|
||||
int isOverflow;
|
||||
size_t size;
|
||||
}FSMDataLoader;
|
||||
|
||||
|
||||
/**
|
||||
* @brief 基类状态机的私有变量和函数,子类不可直接访问
|
||||
*
|
||||
*/
|
||||
typedef struct FSMPrivateVars
|
||||
{
|
||||
int numState;
|
||||
int defaultState; /**< Idle状态不能停留,必须指定一个初始状态 */
|
||||
|
||||
int curState;
|
||||
int nextState; /**< nextState为Idle代表状态机不发生变化 */
|
||||
int index; /**< 状态转移函数表对应的标号 */
|
||||
|
||||
FSMHandler fcns;
|
||||
|
||||
int numChild;
|
||||
FSM **childFSM;
|
||||
|
||||
FSMDataLoader preloader; /**< @deprecated 弃用 */
|
||||
|
||||
}FSMPrivateVars;
|
||||
|
||||
FSMPrivateVars* newFMSPrivateVars(int numState, int defaultState){
|
||||
typedef void (*StateFuncPtr)(void *);
|
||||
typedef void (*ChildFSMStepFuncPtr)(FSM **);
|
||||
typedef int (*TransitionFuncPtr)(void *, int *);
|
||||
typedef int (*SelectNextStateFcnPtr)(void *, FSMSignals *);
|
||||
|
||||
FSMPrivateVars *privateVars = calloc(1, sizeof(FSMPrivateVars));
|
||||
privateVars->numState = numState;
|
||||
privateVars->defaultState = defaultState;
|
||||
privateVars->curState = 0;
|
||||
privateVars->nextState = 0;
|
||||
privateVars->numChild = 0;
|
||||
|
||||
privateVars->preloader.isReady = 0;
|
||||
|
||||
privateVars->fcns.duringActionTable = calloc(numState, sizeof(StateFuncPtr));
|
||||
privateVars->fcns.enterActionTable = calloc(numState, sizeof(StateFuncPtr));
|
||||
privateVars->fcns.exitActionTable = calloc(numState, sizeof(StateFuncPtr));
|
||||
|
||||
privateVars->fcns.selectNextState = calloc(numState, sizeof(SelectNextStateFcnPtr));
|
||||
privateVars->fcns.transitionTable = calloc(numState * numState, sizeof(TransitionFuncPtr));
|
||||
privateVars->fcns.transitionGeneralAction = calloc(1, sizeof(StateFuncPtr));
|
||||
|
||||
privateVars->fcns.childFSMStepTable = calloc(numState * numState, sizeof(ChildFSMStepFuncPtr));
|
||||
|
||||
return privateVars;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,3 +1,14 @@
|
|||
/**
|
||||
* @file FSM_protected.h
|
||||
* @author 天神 (dalaoshi@stu.xjtu.edu.cn)
|
||||
* @brief 状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
|
||||
* @version 2.1
|
||||
* @date 2024-05-07
|
||||
*
|
||||
* @copyright 天神创意无限公司 2024
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __FSM_PROTECTED_H_
|
||||
#define __FSM_PROTECTED_H_
|
||||
|
||||
|
@ -32,9 +43,10 @@
|
|||
|
||||
|
||||
|
||||
typedef struct _FSMHandler FSMHandler;
|
||||
typedef struct _FSM FSM;
|
||||
typedef struct _FSMSignals FSMSignals;
|
||||
typedef struct FSMHandler FSMHandler;
|
||||
typedef struct FSM FSM;
|
||||
typedef struct FSMSignals FSMSignals;
|
||||
typedef struct FSMPrivateVars FSMPrivateVars;
|
||||
|
||||
typedef void (*Avoid_WARNING_State_Fcns)(void *data, FSM **childFSM);
|
||||
typedef void (*Avoid_WARNING_General_Handlers)(void *data);
|
||||
|
@ -46,12 +58,14 @@ typedef int (*Avoid_WARNING_SelectNextState)(void *data, FSMSignals* signals);
|
|||
typedef void (*Avoid_WARNING_void_fcns)(FSMHandler *fcns);
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* private数据类型,但是不能声明到private.h里 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
typedef struct _FSMHandler{
|
||||
int (**selectNextState)(void *data, FSMSignals* signals);
|
||||
/**
|
||||
* @brief 状态处理函数集合,全部需要子类重新填充内容
|
||||
* @details 这个结构体暴露给FSM.protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加,
|
||||
* 有点麻烦
|
||||
*
|
||||
*/
|
||||
typedef struct FSMHandler{
|
||||
int (**selectNextState)(void *data, FSMSignals* signals); /**< 每个状态配置的状态选择函数 */
|
||||
|
||||
void (**transitionTable)(void *data);
|
||||
void (*transitionGeneralAction)(void *data);
|
||||
|
@ -63,55 +77,36 @@ typedef struct _FSMHandler{
|
|||
void (**childFSMStepTable)(FSM **cFSM);
|
||||
}FSMHandler;
|
||||
|
||||
typedef struct _FSMDataLoader
|
||||
/**
|
||||
* @brief 状态机用的信号,protected子类可以访问
|
||||
*
|
||||
*/
|
||||
typedef struct FSMSignals
|
||||
{
|
||||
void *shadowData;
|
||||
int isReady;
|
||||
int isOverflow;
|
||||
size_t size;
|
||||
}FSMDataLoader;
|
||||
|
||||
|
||||
typedef struct _FSMPrivateVars
|
||||
{
|
||||
int numState;
|
||||
int defaultState; // Idle状态不能停留,必须指定一个初始状态
|
||||
|
||||
int curState;
|
||||
int nextState;
|
||||
int index;
|
||||
|
||||
FSMHandler fcns;
|
||||
|
||||
int numChild;
|
||||
FSM **childFSM;
|
||||
|
||||
FSMDataLoader preloader;
|
||||
|
||||
}FMSPrivateVars;
|
||||
|
||||
|
||||
#define Idle_Signal 16
|
||||
typedef struct _FSMSignals
|
||||
{
|
||||
Uint16 external;
|
||||
Uint16 lastTriggeredSignal;
|
||||
Uint16 all; /**< 外部信号 */
|
||||
Uint16 lastTriggeredSignal; /**< 上一次触发的外部信号 */
|
||||
}FSMSignals;
|
||||
#define Idle_Signal 0 /**< 啥意思? */
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* 纯虚函数,子类必须重新实现,父类构造函数不会初始化 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
typedef struct _FSMPureVtbl {
|
||||
|
||||
/**
|
||||
* @brief 纯虚函数,子类必须重新实现,父类构造函数不会初始化
|
||||
*
|
||||
*/
|
||||
typedef struct FSMPureVtbl {
|
||||
// 状态机控制
|
||||
void (*setupHandler)(FSMHandler *fcns); // =0子类必须重新实现
|
||||
void (*setupHandler)(FSMHandler *fcns); /**< 设置所有的FSMHandler,必须重新实现 */
|
||||
|
||||
void (*initData)(FSM *pFSM); // =0子类必须重新实现
|
||||
void (*loadExternalData)(void *extData); // =0子类必须重新实现
|
||||
void (*initData)(FSM *pFSM); /**< 初始化状态机用数据,包括内部数据和外部数据 */
|
||||
void (*loadExternalData)(void *extData); /**< @deprecated 暂时没用,后续可能考虑外部数据是否允许随时修改 */
|
||||
|
||||
void (*initDataLoader)(FSM *pFSM); // =0子类必须重新实现
|
||||
void (*initDataLoader)(FSM *pFSM); /**< @deprecated 和预装载器相关 */
|
||||
|
||||
void (*initSignals)(FSM *pFSM); // =0子类必须重新实现
|
||||
void (*resetSignals)(FSMSignals *signalRegs, void *data); // =0子类必须重新实现
|
||||
void (*initSignals)(FSM *pFSM); /**< 初始化状态机信号 */
|
||||
void (*resetSignals)(FSMSignals *signals, void *data); /**< 根据条件重置状态机信号 */
|
||||
}FSMPureVtbl;
|
||||
|
||||
|
||||
|
@ -119,7 +114,7 @@ typedef struct _FSMPureVtbl {
|
|||
/* -------------------------------------------------------------------------- */
|
||||
/* 基类定义,纯虚类 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
typedef struct _FSM
|
||||
typedef struct FSM
|
||||
{
|
||||
// public functions
|
||||
void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
|
||||
|
@ -131,7 +126,7 @@ typedef struct _FSM
|
|||
void *data;
|
||||
FSMSignals signals;
|
||||
// private
|
||||
FMSPrivateVars privateVars;
|
||||
FSMPrivateVars* privateVars; /**< 细节被隐藏,无法在子类中访问 */
|
||||
} FSM;
|
||||
|
||||
|
||||
|
@ -139,7 +134,6 @@ typedef struct _FSM
|
|||
/* protected函数,子类能用外界用不了 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
void stepBaseFSM(FSM *pFSM);
|
||||
|
||||
void constructFSM(FSM* pFSM);
|
||||
FSM* newBaseFSM(int numState, int defaultState);
|
||||
void resetBaseFSM(FSM *pFSM);
|
||||
|
@ -149,13 +143,13 @@ void resetBaseFSM(FSM *pFSM);
|
|||
/* 内联函数 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
static inline void clearSignal(FSMSignals *signals, Uint16 signalFlag){
|
||||
signals->external &= ~(1 << signalFlag);
|
||||
signals->all &= ~(1 << signalFlag);
|
||||
}
|
||||
static inline Uint16 getSignal(FSMSignals *signals, Uint16 signalFlag){
|
||||
return (signals->external >> signalFlag) & 1;
|
||||
return (signals->all >> signalFlag) & 1;
|
||||
}
|
||||
static inline void clearAllSignals(FSMSignals *signals){
|
||||
signals->external = 0;
|
||||
signals->all = 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ typedef unsigned long Uint32;
|
|||
#define BASE_FSM(ptr) ((FSM *)(ptr))
|
||||
#define BASE_PTR (FSM *)
|
||||
|
||||
typedef struct _FSM FSM;
|
||||
typedef struct FSM FSM;
|
||||
|
||||
/* -------------------------------- 避免警告的函数定义 ------------------------------- */
|
||||
#define Step(pFSM) _stepFSM((FSM *)pFSM)
|
||||
|
|
|
@ -1,11 +1,3 @@
|
|||
/*
|
||||
* @Author: godcreator02 qq974980621@gmail.com
|
||||
* @Date: 2024-04-20 18:52:14
|
||||
* @LastEditors: godcreator02 qq974980621@gmail.com
|
||||
* @LastEditTime: 2024-04-24 13:17:49
|
||||
* @FilePath: \vscode\FSM_OOP\template\main.c
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
|
||||
#include "templateFSM.h"
|
||||
|
@ -17,17 +9,11 @@ int arrindex = 10;
|
|||
int x = 5;
|
||||
|
||||
int main(){
|
||||
|
||||
pFSM = createTemplateFSM();
|
||||
|
||||
|
||||
for (int i = 0; i < 15; i++)
|
||||
{
|
||||
TemplateFSM_Input(pFSM)->arrindex = i;
|
||||
PreloaderGetReady(pFSM);
|
||||
|
||||
|
||||
int ovflag = GetPreloaderOverFlag(pFSM);
|
||||
|
||||
if(i == 3){
|
||||
SetSignal(pFSM, Signal_A);
|
||||
|
|
|
@ -56,9 +56,14 @@ static void initData(TemplateFSM *pFSM){ // 必须重新实现
|
|||
pFSM->base.data = data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* @deprecated
|
||||
* @param pFSM
|
||||
*/
|
||||
static void initDataLoader(TemplateFSM *pFSM){ // 必须重新实现
|
||||
pFSM->base.privateVars.preloader.shadowData = malloc(sizeof(TemplateFSMExternalData));
|
||||
pFSM->base.privateVars.preloader.size = sizeof(TemplateFSMExternalData);
|
||||
// pFSM->base.privateVars->preloader.shadowData = malloc(sizeof(TemplateFSMExternalData));
|
||||
// pFSM->base.privateVars->preloader.size = sizeof(TemplateFSMExternalData);
|
||||
}
|
||||
|
||||
static void setupHandler(FSMHandler* fcns){ // 必须重新实现
|
||||
|
@ -115,5 +120,7 @@ TemplateFSM *createTemplateFSM(){
|
|||
// 调用父类构造函数
|
||||
constructFSM((FSM *)pFSM);
|
||||
|
||||
FSM_LOG("ok\n");
|
||||
|
||||
return pFSM;
|
||||
}
|
|
@ -9,19 +9,30 @@
|
|||
/* -------------------------------------------------------------------------- */
|
||||
/* 自定义数据和信号 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/**
|
||||
* @brief 自定义外部信号,目前最多15个
|
||||
*
|
||||
*/
|
||||
enum TemplateFSMSignals{
|
||||
Signal_A = 0,
|
||||
Signal_A = 1, /**< 必须从1开始,0预留给Idle信号了*/
|
||||
Signal_B,
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief 自定义外部数据
|
||||
*
|
||||
*/
|
||||
typedef struct _templateFSMExternalData
|
||||
{
|
||||
int arrindex;
|
||||
int x;
|
||||
}TemplateFSMExternalData;
|
||||
|
||||
|
||||
/**
|
||||
* @brief 自定义内部数据
|
||||
*
|
||||
*/
|
||||
typedef struct _templateFSMInnerData
|
||||
{
|
||||
int y1;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifdef __TEMPLATE_PRIVATE_FSM_H_
|
||||
#error only include once
|
||||
#error This file can only be included once!!!
|
||||
|
||||
#else
|
||||
#define __TEMPLATE_PRIVATE_FSM_H_
|
||||
|
@ -39,6 +39,8 @@ typedef enum _State
|
|||
/* -------------------------------------------------------------------------- */
|
||||
/* 下一个状态选择函数 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
static State selectNextStateFcn(D)(TemplateFSMData *data, FSMSignals *signals){
|
||||
if(getSignal(signals, Signal_A)){
|
||||
signals->lastTriggeredSignal = Signal_A;
|
||||
|
@ -97,27 +99,32 @@ static void actionFcn(exit, E)()
|
|||
/* -------------------------------------------------------------------------- */
|
||||
/* 转移函数 */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
static void transitionGeneralAction(TemplateFSMData *data){
|
||||
static void transitionGeneralAction(FSM pFSM){
|
||||
|
||||
FSM_LOG("general");
|
||||
}
|
||||
|
||||
// static void transitionGeneralAction(TemplateFSMData *data){
|
||||
// FSM_LOG("general");
|
||||
// }
|
||||
|
||||
static void transitionHandler(Idle, D)()
|
||||
{
|
||||
FSM_LOG(" Idle2D ");
|
||||
}
|
||||
|
||||
static State transitionHandler(Idle, E)()
|
||||
static void transitionHandler(Idle, E)()
|
||||
{
|
||||
FSM_LOG(" Idle2E ");
|
||||
}
|
||||
|
||||
static State transitionHandler(D, E)(TemplateFSMData *data, int *delayedIndex)
|
||||
static void transitionHandler(D, E)(TemplateFSMData *data, int *delayedIndex)
|
||||
{
|
||||
*delayedIndex = index(D, E);
|
||||
FSM_LOG(" D2E ");
|
||||
}
|
||||
|
||||
static State transitionHandler(E, D)()
|
||||
static void transitionHandler(E, D)()
|
||||
{
|
||||
FSM_LOG(" E2D ");
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
@page ADCintro title_intro
|
||||
|
||||
啊手动阀手动阀撒旦啊手动阀啊手动阀
|
||||
|
||||
see @ref CLArun
|
|
@ -0,0 +1,10 @@
|
|||
@page sample title_sample
|
||||
@subpage ADCintro
|
||||
@tableofcontents
|
||||
|
||||
|
||||
@section CLArun CLA运行
|
||||
asdf
|
||||
@section sampleconvert 采样转换
|
||||
asdf
|
||||
41263577128378234821098
|
|
@ -0,0 +1,7 @@
|
|||
@mainpage
|
||||
|
||||
# 啊哈哈哈哈
|
||||
啊实打实的撒地方撒
|
||||
撒旦发撒f阿萨
|
||||
|
||||
阿松大法撒旦撒地方
|
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.8 KiB |
|
@ -0,0 +1,189 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/baseFSM/FSM_private.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('_f_s_m__private_8h.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#typedef-members">Typedefs</a> </div>
|
||||
<div class="headertitle"><div class="title">FSM_private.h File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>状态机框架的私有变量,只能在状态机框架内使用。
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <string.h></code><br />
|
||||
<code>#include "<a class="el" href="_f_s_m__protected_8h_source.html">FSM_protected.h</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="_f_s_m__private_8h_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_s_m_data_loader.html">FSMDataLoader</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">基类状态机的私有变量和函数,子类不可直接访问 <a href="struct_f_s_m_private_vars.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:a19064d5985c08b2ebbdfe2b27c6986ba" id="r_a19064d5985c08b2ebbdfe2b27c6986ba"><td class="memItemLeft" align="right" valign="top">typedef struct FSMHandler </td><td class="memItemRight" valign="bottom"><a class="el" href="#a19064d5985c08b2ebbdfe2b27c6986ba">FSMHandler</a></td></tr>
|
||||
<tr class="memdesc:a19064d5985c08b2ebbdfe2b27c6986ba"><td class="mdescLeft"> </td><td class="mdescRight">状态处理函数集合,全部需要子类重新填充内容 <br /></td></tr>
|
||||
<tr class="separator:a19064d5985c08b2ebbdfe2b27c6986ba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa8470b4675b81ea69519ae6222c77e3f" id="r_aa8470b4675b81ea69519ae6222c77e3f"><td class="memItemLeft" align="right" valign="top"><a id="aa8470b4675b81ea69519ae6222c77e3f" name="aa8470b4675b81ea69519ae6222c77e3f"></a>
|
||||
typedef struct FSMSignals </td><td class="memItemRight" valign="bottom"><b>FSMSignals</b></td></tr>
|
||||
<tr class="memdesc:aa8470b4675b81ea69519ae6222c77e3f"><td class="mdescLeft"> </td><td class="mdescRight">状态机用的信号,protected子类可以访问 <br /></td></tr>
|
||||
<tr class="separator:aa8470b4675b81ea69519ae6222c77e3f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9116b0a24810b38fafae2fb986517432" id="r_a9116b0a24810b38fafae2fb986517432"><td class="memItemLeft" align="right" valign="top">typedef struct FSMDataLoader </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9116b0a24810b38fafae2fb986517432">FSMDataLoader</a></td></tr>
|
||||
<tr class="separator:a9116b0a24810b38fafae2fb986517432"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a51a08a9c63b45851707caacfafca8cf9" id="r_a51a08a9c63b45851707caacfafca8cf9"><td class="memItemLeft" align="right" valign="top"><a id="a51a08a9c63b45851707caacfafca8cf9" name="a51a08a9c63b45851707caacfafca8cf9"></a>
|
||||
typedef struct FSMPrivateVars </td><td class="memItemRight" valign="bottom"><b>FSMPrivateVars</b></td></tr>
|
||||
<tr class="memdesc:a51a08a9c63b45851707caacfafca8cf9"><td class="mdescLeft"> </td><td class="mdescRight">基类状态机的私有变量和函数,子类不可直接访问 <br /></td></tr>
|
||||
<tr class="separator:a51a08a9c63b45851707caacfafca8cf9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>状态机框架的私有变量,只能在状态机框架内使用。 </p>
|
||||
<dl class="section author"><dt>Author</dt><dd>天神 (<a href="#" onclick="location.href='mai'+'lto:'+'dal'+'ao'+'shi'+'@s'+'tu.'+'xj'+'tu.'+'ed'+'u.c'+'n'; return false;">dalao<span class="obfuscator">.nosp@m.</span>shi@<span class="obfuscator">.nosp@m.</span>stu.x<span class="obfuscator">.nosp@m.</span>jtu.<span class="obfuscator">.nosp@m.</span>edu.c<span class="obfuscator">.nosp@m.</span>n</a>) </dd></dl>
|
||||
<dl class="section version"><dt>Version</dt><dd>2.1 </dd></dl>
|
||||
<dl class="section date"><dt>Date</dt><dd>2024-05-07</dd></dl>
|
||||
<dl class="section copyright"><dt>Copyright</dt><dd>天神创意无限公司 2024 </dd></dl>
|
||||
</div><h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a id="a19064d5985c08b2ebbdfe2b27c6986ba" name="a19064d5985c08b2ebbdfe2b27c6986ba"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a19064d5985c08b2ebbdfe2b27c6986ba">◆ </a></span>FSMHandler</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct FSMHandler FSMHandler</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>状态处理函数集合,全部需要子类重新填充内容 </p>
|
||||
<p>这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a9116b0a24810b38fafae2fb986517432" name="a9116b0a24810b38fafae2fb986517432"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9116b0a24810b38fafae2fb986517432">◆ </a></span>FSMDataLoader</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct FSMDataLoader FSMDataLoader</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated</a></b></dt><dd>预装载器弃用</dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></li><li class="navelem"><a class="el" href="_f_s_m__private_8h.html">FSM_private.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,9 @@
|
|||
var _f_s_m__private_8h =
|
||||
[
|
||||
[ "FSMDataLoader", "struct_f_s_m_data_loader.html", null ],
|
||||
[ "FSMPrivateVars", "struct_f_s_m_private_vars.html", "struct_f_s_m_private_vars" ],
|
||||
[ "FSMHandler", "_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba", null ],
|
||||
[ "FSMSignals", "_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f", null ],
|
||||
[ "FSMDataLoader", "_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432", null ],
|
||||
[ "FSMPrivateVars", "_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9", null ]
|
||||
];
|
|
@ -0,0 +1,198 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/baseFSM/FSM_private.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('_f_s_m__private_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">FSM_private.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="_f_s_m__private_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifndef __FSM_PRIVATE_H_</span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#define __FSM_PRIVATE_H_</span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include "<a class="code" href="_f_s_m__protected_8h.html">FSM_protected.h</a>"</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba"> 19</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a> <a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a>;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">typedef</span> <span class="keyword">struct </span>FSM FSM;</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f"> 21</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> <a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a>;</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/* private数据类型 */</span></div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="foldopen" id="foldopen00031" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="struct_f_s_m_data_loader.html"> 31</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_data_loader.html">FSMDataLoader</a></div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>{ </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">void</span> *shadowData;</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">int</span> isReady;</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">int</span> isOverflow;</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">size_t</span> size;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432"> 37</a></span>}<a class="code hl_typedef" href="_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432">FSMDataLoader</a>;</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="foldopen" id="foldopen00044" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="struct_f_s_m_private_vars.html"> 44</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a></div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>{</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">int</span> numState; </div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe"> 47</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe">defaultState</a>; </div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordtype">int</span> curState; </div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c"> 50</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c">nextState</a>; </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7"> 51</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7">index</a>; </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a> fcns; </div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">int</span> numChild;</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> FSM **childFSM;</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1"> 58</a></span> <a class="code hl_struct" href="struct_f_s_m_data_loader.html">FSMDataLoader</a> <a class="code hl_variable" href="struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1">preloader</a>; </div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9"> 60</a></span>}<a class="code hl_typedef" href="_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9">FSMPrivateVars</a>;</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a>* newFMSPrivateVars(<span class="keywordtype">int</span> numState, <span class="keywordtype">int</span> defaultState){</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">typedef</span> void (*StateFuncPtr)(<span class="keywordtype">void</span> *); </div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">typedef</span> void (*ChildFSMStepFuncPtr)(FSM **); </div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typedef</span> int (*TransitionFuncPtr)(<span class="keywordtype">void</span> *, <span class="keywordtype">int</span> *);</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typedef</span> int (*SelectNextStateFcnPtr)(<span class="keywordtype">void</span> *, <a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> *);</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a> *privateVars = calloc(1, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a>));</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> privateVars->numState = numState;</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> privateVars->defaultState = defaultState;</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> privateVars->curState = 0;</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> privateVars->nextState = 0;</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> privateVars->numChild = 0;</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> privateVars->preloader.isReady = 0;</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> privateVars->fcns.duringActionTable = calloc(numState, <span class="keyword">sizeof</span>(StateFuncPtr));</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> privateVars->fcns.enterActionTable = calloc(numState, <span class="keyword">sizeof</span>(StateFuncPtr));</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> privateVars->fcns.exitActionTable = calloc(numState, <span class="keyword">sizeof</span>(StateFuncPtr));</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> privateVars->fcns.selectNextState = calloc(numState, <span class="keyword">sizeof</span>(SelectNextStateFcnPtr));</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> privateVars->fcns.transitionTable = calloc(numState * numState, <span class="keyword">sizeof</span>(TransitionFuncPtr));</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> privateVars->fcns.transitionGeneralAction = calloc(1, <span class="keyword">sizeof</span>(StateFuncPtr));</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> privateVars->fcns.childFSMStepTable = calloc(numState * numState, <span class="keyword">sizeof</span>(ChildFSMStepFuncPtr));</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> privateVars;</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>}</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="a_f_s_m__private_8h_html_a51a08a9c63b45851707caacfafca8cf9"><div class="ttname"><a href="_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9">FSMPrivateVars</a></div><div class="ttdeci">struct FSMPrivateVars FSMPrivateVars</div><div class="ttdoc">基类状态机的私有变量和函数,子类不可直接访问</div></div>
|
||||
<div class="ttc" id="a_f_s_m__private_8h_html_a9116b0a24810b38fafae2fb986517432"><div class="ttname"><a href="_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432">FSMDataLoader</a></div><div class="ttdeci">struct FSMDataLoader FSMDataLoader</div></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html"><div class="ttname"><a href="_f_s_m__protected_8h.html">FSM_protected.h</a></div><div class="ttdoc">状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_data_loader_html"><div class="ttname"><a href="struct_f_s_m_data_loader.html">FSMDataLoader</a></div><div class="ttdef"><b>Definition</b> FSM_private.h:32</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_handler_html"><div class="ttname"><a href="struct_f_s_m_handler.html">FSMHandler</a></div><div class="ttdoc">状态处理函数集合,全部需要子类重新填充内容</div><div class="ttdef"><b>Definition</b> FSM_protected.h:67</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_private_vars_html"><div class="ttname"><a href="struct_f_s_m_private_vars.html">FSMPrivateVars</a></div><div class="ttdoc">基类状态机的私有变量和函数,子类不可直接访问</div><div class="ttdef"><b>Definition</b> FSM_private.h:45</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_private_vars_html_a4312b61c7165398d2415c0794ac1fa8c"><div class="ttname"><a href="struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c">FSMPrivateVars::nextState</a></div><div class="ttdeci">int nextState</div><div class="ttdef"><b>Definition</b> FSM_private.h:50</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_private_vars_html_a4cc735365b8c3946ff83d1984e2565fe"><div class="ttname"><a href="struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe">FSMPrivateVars::defaultState</a></div><div class="ttdeci">int defaultState</div><div class="ttdef"><b>Definition</b> FSM_private.h:47</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_private_vars_html_a71ba0d8bee3f15ed5a0dd92dda0e0ed1"><div class="ttname"><a href="struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1">FSMPrivateVars::preloader</a></div><div class="ttdeci">FSMDataLoader preloader</div><div class="ttdef"><b>Definition</b> FSM_private.h:58</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_private_vars_html_ab14d89d4db1639abfab4a24f05cca6a7"><div class="ttname"><a href="struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7">FSMPrivateVars::index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition</b> FSM_private.h:51</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_signals_html"><div class="ttname"><a href="struct_f_s_m_signals.html">FSMSignals</a></div><div class="ttdoc">状态机用的信号,protected子类可以访问</div><div class="ttdef"><b>Definition</b> FSM_protected.h:85</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></li><li class="navelem"><a class="el" href="_f_s_m__private_8h.html">FSM_private.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,230 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/baseFSM/FSM_protected.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('_f_s_m__protected_8h.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#define-members">Macros</a> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle"><div class="title">FSM_protected.h File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include "FSM_public.h"</code><br />
|
||||
</div>
|
||||
<p><a href="_f_s_m__protected_8h_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_s_m_handler.html">FSMHandler</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">状态处理函数集合,全部需要子类重新填充内容 <a href="struct_f_s_m_handler.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_s_m_signals.html">FSMSignals</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">状态机用的信号,protected子类可以访问 <a href="struct_f_s_m_signals.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_s_m_pure_vtbl.html">FSMPureVtbl</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">纯虚函数,子类必须重新实现,父类构造函数不会初始化 <a href="struct_f_s_m_pure_vtbl.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:addd5868b6424b70247fe4c8e5b7af29e" id="r_addd5868b6424b70247fe4c8e5b7af29e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#addd5868b6424b70247fe4c8e5b7af29e">Idle_Signal</a>   0</td></tr>
|
||||
<tr class="separator:addd5868b6424b70247fe4c8e5b7af29e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:a19064d5985c08b2ebbdfe2b27c6986ba" id="r_a19064d5985c08b2ebbdfe2b27c6986ba"><td class="memItemLeft" align="right" valign="top">typedef struct FSMHandler </td><td class="memItemRight" valign="bottom"><a class="el" href="#a19064d5985c08b2ebbdfe2b27c6986ba">FSMHandler</a></td></tr>
|
||||
<tr class="memdesc:a19064d5985c08b2ebbdfe2b27c6986ba"><td class="mdescLeft"> </td><td class="mdescRight">状态处理函数集合,全部需要子类重新填充内容 <br /></td></tr>
|
||||
<tr class="separator:a19064d5985c08b2ebbdfe2b27c6986ba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa8470b4675b81ea69519ae6222c77e3f" id="r_aa8470b4675b81ea69519ae6222c77e3f"><td class="memItemLeft" align="right" valign="top"><a id="aa8470b4675b81ea69519ae6222c77e3f" name="aa8470b4675b81ea69519ae6222c77e3f"></a>
|
||||
typedef struct FSMSignals </td><td class="memItemRight" valign="bottom"><b>FSMSignals</b></td></tr>
|
||||
<tr class="memdesc:aa8470b4675b81ea69519ae6222c77e3f"><td class="mdescLeft"> </td><td class="mdescRight">状态机用的信号,protected子类可以访问 <br /></td></tr>
|
||||
<tr class="separator:aa8470b4675b81ea69519ae6222c77e3f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5cfbf21b07540615b7ac4ea49a60b037" id="r_a5cfbf21b07540615b7ac4ea49a60b037"><td class="memItemLeft" align="right" valign="top"><a id="a5cfbf21b07540615b7ac4ea49a60b037" name="a5cfbf21b07540615b7ac4ea49a60b037"></a>
|
||||
typedef struct FSMPureVtbl </td><td class="memItemRight" valign="bottom"><b>FSMPureVtbl</b></td></tr>
|
||||
<tr class="memdesc:a5cfbf21b07540615b7ac4ea49a60b037"><td class="mdescLeft"> </td><td class="mdescRight">纯虚函数,子类必须重新实现,父类构造函数不会初始化 <br /></td></tr>
|
||||
<tr class="separator:a5cfbf21b07540615b7ac4ea49a60b037"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a9bab0f8eedb805136ee573eac09b6ebb" id="r_a9bab0f8eedb805136ee573eac09b6ebb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9bab0f8eedb805136ee573eac09b6ebb">stepBaseFSM</a> (FSM *pFSM)</td></tr>
|
||||
<tr class="memdesc:a9bab0f8eedb805136ee573eac09b6ebb"><td class="mdescLeft"> </td><td class="mdescRight">运行状态机,状态机框架的核心函数 <br /></td></tr>
|
||||
<tr class="separator:a9bab0f8eedb805136ee573eac09b6ebb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用 </p>
|
||||
<dl class="section author"><dt>Author</dt><dd>天神 (<a href="#" onclick="location.href='mai'+'lto:'+'dal'+'ao'+'shi'+'@s'+'tu.'+'xj'+'tu.'+'ed'+'u.c'+'n'; return false;">dalao<span class="obfuscator">.nosp@m.</span>shi@<span class="obfuscator">.nosp@m.</span>stu.x<span class="obfuscator">.nosp@m.</span>jtu.<span class="obfuscator">.nosp@m.</span>edu.c<span class="obfuscator">.nosp@m.</span>n</a>) </dd></dl>
|
||||
<dl class="section version"><dt>Version</dt><dd>2.1 </dd></dl>
|
||||
<dl class="section date"><dt>Date</dt><dd>2024-05-07</dd></dl>
|
||||
<dl class="section copyright"><dt>Copyright</dt><dd>天神创意无限公司 2024 </dd></dl>
|
||||
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a id="addd5868b6424b70247fe4c8e5b7af29e" name="addd5868b6424b70247fe4c8e5b7af29e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#addd5868b6424b70247fe4c8e5b7af29e">◆ </a></span>Idle_Signal</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define Idle_Signal   0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>啥意思? </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a id="a19064d5985c08b2ebbdfe2b27c6986ba" name="a19064d5985c08b2ebbdfe2b27c6986ba"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a19064d5985c08b2ebbdfe2b27c6986ba">◆ </a></span>FSMHandler</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct FSMHandler FSMHandler</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>状态处理函数集合,全部需要子类重新填充内容 </p>
|
||||
<p>这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a9bab0f8eedb805136ee573eac09b6ebb" name="a9bab0f8eedb805136ee573eac09b6ebb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9bab0f8eedb805136ee573eac09b6ebb">◆ </a></span>stepBaseFSM()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void stepBaseFSM </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">FSM *</td> <td class="paramname"><span class="paramname"><em>pFSM</em></span></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>运行状态机,状态机框架的核心函数 </p>
|
||||
<p>共分为三部首先判断是否有状态机切换, </p><dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">pFSM</td><td>状态机基类指针 </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></li><li class="navelem"><a class="el" href="_f_s_m__protected_8h.html">FSM_protected.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,11 @@
|
|||
var _f_s_m__protected_8h =
|
||||
[
|
||||
[ "FSMHandler", "struct_f_s_m_handler.html", "struct_f_s_m_handler" ],
|
||||
[ "FSMSignals", "struct_f_s_m_signals.html", "struct_f_s_m_signals" ],
|
||||
[ "FSMPureVtbl", "struct_f_s_m_pure_vtbl.html", "struct_f_s_m_pure_vtbl" ],
|
||||
[ "Idle_Signal", "_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e", null ],
|
||||
[ "FSMHandler", "_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba", null ],
|
||||
[ "FSMSignals", "_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f", null ],
|
||||
[ "FSMPureVtbl", "_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037", null ],
|
||||
[ "stepBaseFSM", "_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb", null ]
|
||||
];
|
|
@ -0,0 +1,265 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/baseFSM/FSM_protected.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('_f_s_m__protected_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">FSM_protected.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="_f_s_m__protected_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifndef __FSM_PROTECTED_H_</span></div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define __FSM_PROTECTED_H_</span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include "FSM_public.h"</span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">// #define DSP28377</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#ifdef DSP28377</span></div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor"> #define NDEBUG</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#else</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor"> #define FSM_LOG_ON</span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#ifdef FSM_LOG_ON</span></div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor"> #define FSM_LOG(...) printf(__VA_ARGS__)</span></div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#else</span></div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor"> #define FSM_LOG(...) ((void)0)</span></div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define during during</span></div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#define enter enter</span></div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#define exit exit</span></div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#define selectNextStateFcn(curstate) curstate##_##selectNextState</span></div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#define transitionHandler(curstate, nextstate) curstate##2##nextstate##Handler</span></div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#define actionFcn(action, curstate) curstate##_##action##Action</span></div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#define index(curstate, nextstate) (curstate*Count_State + nextstate)</span></div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define addSelectNextStateFcn(curstate) fcns->selectNextState[curstate] = (Avoid_WARNING_SelectNextState)selectNextStateFcn(curstate)</span></div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#define addStateActionFcn(type, state) fcns->type##ActionTable[state] = (Avoid_WARNING_State_Fcns)actionFcn(type, state)</span></div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#define addTransitionHandler(curstate, nextstate) fcns->transitionTable[index(curstate, nextstate)] = (Avoid_WARNING_Transition_Handler)transitionHandler(curstate, nextstate)</span></div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba"> 46</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a> <a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a>;</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">typedef</span> <span class="keyword">struct </span>FSM FSM;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f"> 48</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> <a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a>;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a> <a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a>;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="keyword">typedef</span> void (*Avoid_WARNING_State_Fcns)(<span class="keywordtype">void</span> *data, FSM **childFSM);</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keyword">typedef</span> void (*Avoid_WARNING_General_Handlers)(<span class="keywordtype">void</span> *data);</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="keyword">typedef</span> void (*Avoid_WARNING_Transition_Handler)(<span class="keywordtype">void</span> *data);</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">typedef</span> void (*Avoid_WARNING_Overrider_Fcns)(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">typedef</span> void (*Avoid_WARNING_ResetSignals_Fcns)(<a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a>* signals, <span class="keywordtype">void</span> *);</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keyword">typedef</span> void (*Avoid_WARNING_loadData_Fcns)(<span class="keywordtype">void</span>*);</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="keyword">typedef</span> int (*Avoid_WARNING_SelectNextState)(<span class="keywordtype">void</span> *data, <a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a>* signals);</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">typedef</span> void (*Avoid_WARNING_void_fcns)(<a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a> *fcns);</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||
<div class="foldopen" id="foldopen00067" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="struct_f_s_m_handler.html"> 67</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a>{</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451"> 68</a></span> int (**<a class="code hl_variable" href="struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451">selectNextState</a>)(<span class="keywordtype">void</span> *data, <a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a>* signals); </div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> void (**transitionTable)(<span class="keywordtype">void</span> *data);</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> void (*transitionGeneralAction)(<span class="keywordtype">void</span> *data);</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> void (**enterActionTable)(<span class="keywordtype">void</span> *data, FSM **cFSM);</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> void (**duringActionTable)(<span class="keywordtype">void</span> *data, FSM **cFSM);</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> void (**exitActionTable)(<span class="keywordtype">void</span> *data, FSM **cFSM);</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> void (**childFSMStepTable)(FSM **cFSM);</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>}<a class="code hl_typedef" href="_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba">FSMHandler</a>;</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
||||
<div class="foldopen" id="foldopen00084" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="struct_f_s_m_signals.html"> 84</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a></div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>{</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c"> 86</a></span> Uint16 <a class="code hl_variable" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">external</a>; </div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d"> 87</a></span> Uint16 <a class="code hl_variable" href="struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d">lastTriggeredSignal</a>; </div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>}<a class="code hl_typedef" href="_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f">FSMSignals</a>;</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e"> 89</a></span><span class="preprocessor">#define Idle_Signal 0 </span></div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">/* 纯虚函数,子类必须重新实现,父类构造函数不会初始化 */</span></div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
|
||||
<div class="foldopen" id="foldopen00099" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html"> 99</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_f_s_m_pure_vtbl.html">FSMPureVtbl</a> {</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// 状态机控制</span></div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d"> 101</a></span> void (*<a class="code hl_variable" href="struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d">setupHandler</a>)(<a class="code hl_struct" href="struct_f_s_m_handler.html">FSMHandler</a> *fcns); </div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1"> 103</a></span> void (*<a class="code hl_variable" href="struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1">initData</a>)(FSM *pFSM); </div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d"> 104</a></span> void (*<a class="code hl_variable" href="struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d">loadExternalData</a>)(<span class="keywordtype">void</span> *extData); </div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472"> 106</a></span> void (*<a class="code hl_variable" href="struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472">initDataLoader</a>)(FSM *pFSM); </div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8"> 108</a></span> void (*<a class="code hl_variable" href="struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8">initSignals</a>)(FSM *pFSM); </div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1"> 109</a></span> void (*<a class="code hl_variable" href="struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1">resetSignals</a>)(<a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> *signalRegs, <span class="keywordtype">void</span> *data); </div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037"> 110</a></span>}<a class="code hl_typedef" href="_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037">FSMPureVtbl</a>;</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment">/* 基类定义,纯虚类 */</span></div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="keyword">typedef</span> <span class="keyword">struct </span>FSM</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>{</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// public functions</span></div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> void (*step)(FSM *pFSM); <span class="comment">// 子类重新实现可以添加一些打印信息</span></div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> void (*reset)(FSM *pFSM); <span class="comment">// 子类重新实现可以添加一些打印信息</span></div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// protected</span></div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_struct" href="struct_f_s_m_pure_vtbl.html">FSMPureVtbl</a> pureVtbl;</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">void</span> *data;</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> signals;</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// private</span></div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_struct" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a>* privateVars; </div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>} FSM;</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">/* protected函数,子类能用外界用不了 */</span></div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="keywordtype">void</span> <a class="code hl_function" href="_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb">stepBaseFSM</a>(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="keywordtype">void</span> constructFSM(FSM* pFSM);</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>FSM* newBaseFSM(<span class="keywordtype">int</span> numState, <span class="keywordtype">int</span> defaultState);</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="keywordtype">void</span> resetBaseFSM(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment">/* 内联函数 */</span></div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> clearSignal(<a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> *signals, Uint16 signalFlag){</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> signals-><a class="code hl_variable" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">external</a> &= ~(1 << signalFlag);</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>}</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="keyword">static</span> <span class="keyword">inline</span> Uint16 getSignal(<a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> *signals, Uint16 signalFlag){</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">return</span> (signals-><a class="code hl_variable" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">external</a> >> signalFlag) & 1;</div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span>}</div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> clearAllSignals(<a class="code hl_struct" href="struct_f_s_m_signals.html">FSMSignals</a> *signals){</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> signals-><a class="code hl_variable" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">external</a> = 0;</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html_a19064d5985c08b2ebbdfe2b27c6986ba"><div class="ttname"><a href="_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba">FSMHandler</a></div><div class="ttdeci">struct FSMHandler FSMHandler</div><div class="ttdoc">状态处理函数集合,全部需要子类重新填充内容</div><div class="ttdef"><b>Definition</b> FSM_protected.h:46</div></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html_a5cfbf21b07540615b7ac4ea49a60b037"><div class="ttname"><a href="_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037">FSMPureVtbl</a></div><div class="ttdeci">struct FSMPureVtbl FSMPureVtbl</div><div class="ttdoc">纯虚函数,子类必须重新实现,父类构造函数不会初始化</div></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html_a9bab0f8eedb805136ee573eac09b6ebb"><div class="ttname"><a href="_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb">stepBaseFSM</a></div><div class="ttdeci">void stepBaseFSM(FSM *pFSM)</div><div class="ttdoc">运行状态机,状态机框架的核心函数</div><div class="ttdef"><b>Definition</b> FSM.c:62</div></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html_aa8470b4675b81ea69519ae6222c77e3f"><div class="ttname"><a href="_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f">FSMSignals</a></div><div class="ttdeci">struct FSMSignals FSMSignals</div><div class="ttdoc">状态机用的信号,protected子类可以访问</div><div class="ttdef"><b>Definition</b> FSM_protected.h:48</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_handler_html"><div class="ttname"><a href="struct_f_s_m_handler.html">FSMHandler</a></div><div class="ttdoc">状态处理函数集合,全部需要子类重新填充内容</div><div class="ttdef"><b>Definition</b> FSM_protected.h:67</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_handler_html_a934ff7d1a2f7714694b8a2927b5f8451"><div class="ttname"><a href="struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451">FSMHandler::selectNextState</a></div><div class="ttdeci">int(** selectNextState)(void *data, FSMSignals *signals)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:68</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_private_vars_html"><div class="ttname"><a href="struct_f_s_m_private_vars.html">FSMPrivateVars</a></div><div class="ttdoc">基类状态机的私有变量和函数,子类不可直接访问</div><div class="ttdef"><b>Definition</b> FSM_private.h:45</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html">FSMPureVtbl</a></div><div class="ttdoc">纯虚函数,子类必须重新实现,父类构造函数不会初始化</div><div class="ttdef"><b>Definition</b> FSM_protected.h:99</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html_a24fea698707e18e2d84385bfca118db1"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1">FSMPureVtbl::initData</a></div><div class="ttdeci">void(* initData)(FSM *pFSM)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:103</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html_a4973df3b86e460a458c9edf4699aa68d"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d">FSMPureVtbl::loadExternalData</a></div><div class="ttdeci">void(* loadExternalData)(void *extData)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:104</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html_a58c666f5941e07c4a6ef054f1250dbd8"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8">FSMPureVtbl::initSignals</a></div><div class="ttdeci">void(* initSignals)(FSM *pFSM)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:108</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html_a5fe3628ecfac4830ad9f64b1439fe57d"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d">FSMPureVtbl::setupHandler</a></div><div class="ttdeci">void(* setupHandler)(FSMHandler *fcns)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:101</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html_a65489698aee35862a265b30dff280ad1"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1">FSMPureVtbl::resetSignals</a></div><div class="ttdeci">void(* resetSignals)(FSMSignals *signalRegs, void *data)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:109</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_pure_vtbl_html_aebfd1efad93210ac02249a81159d1472"><div class="ttname"><a href="struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472">FSMPureVtbl::initDataLoader</a></div><div class="ttdeci">void(* initDataLoader)(FSM *pFSM)</div><div class="ttdef"><b>Definition</b> FSM_protected.h:106</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_signals_html"><div class="ttname"><a href="struct_f_s_m_signals.html">FSMSignals</a></div><div class="ttdoc">状态机用的信号,protected子类可以访问</div><div class="ttdef"><b>Definition</b> FSM_protected.h:85</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_signals_html_a0ed78b85dbee15c4928fc85546eaa10d"><div class="ttname"><a href="struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d">FSMSignals::lastTriggeredSignal</a></div><div class="ttdeci">Uint16 lastTriggeredSignal</div><div class="ttdef"><b>Definition</b> FSM_protected.h:87</div></div>
|
||||
<div class="ttc" id="astruct_f_s_m_signals_html_af67ec8fc1e3f46fda173b939dbe9116c"><div class="ttname"><a href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">FSMSignals::external</a></div><div class="ttdeci">Uint16 external</div><div class="ttdef"><b>Definition</b> FSM_protected.h:86</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></li><li class="navelem"><a class="el" href="_f_s_m__protected_8h.html">FSM_protected.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,164 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/baseFSM/FSM_public.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('_f_s_m__public_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">FSM_public.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * @Author: godcreator02 qq974980621@gmail.com</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> * @Date: 2024-04-20 18:52:14</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * @LastEditors: godcreator02 qq974980621@gmail.com</span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * @LastEditTime: 2024-04-23 21:51:55</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * @FilePath: \vscode\FSM_OOP\baseFSM\FSM_public.h</span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE</span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef __FSM_PUBLIC_H_</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#define __FSM_PUBLIC_H_</span></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Uint16;</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> Uint32;</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#define BASE_FSM(ptr) ((FSM *)(ptr))</span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#define BASE_PTR (FSM *)</span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">typedef</span> <span class="keyword">struct </span>FSM FSM;</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">/* -------------------------------- 避免警告的函数定义 ------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define Step(pFSM) _stepFSM((FSM *)pFSM)</span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM);</span></div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM)</span></div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM)</span></div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#define GetData(pFSM) _getData((FSM*)pFSM)</span></div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal)</span></div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keywordtype">void</span> _stepFSM(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">/* --------------------------------- 状态机信息获取 -------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keywordtype">int</span> getFSMCurState(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keywordtype">int</span> getFSMNextState(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keywordtype">void</span> setChildNum(FSM *pFSM, <span class="keywordtype">int</span> num);</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keywordtype">void</span> registerChildFSM(FSM *parent, FSM *child, <span class="keywordtype">int</span> index);</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">/* ------------------------------ Data和Signals ------------------------------ */</span></div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">const</span> <span class="keywordtype">void</span> *_getData(FSM* pFSM);</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keywordtype">void</span> _setSignal(FSM *pFSM, Uint16 signalFlag);</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">/* ---------------------------------- 预装载器 ---------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keywordtype">void</span> *_preloadIn(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="keywordtype">void</span> _preloaderGetReady(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keywordtype">int</span> _getPreloaderOverFlag(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keywordtype">void</span> _clearPreloaderOverFlag(FSM *pFSM);</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#endif</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></li><li class="navelem"><b>FSM_public.h</b></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,125 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Data Structures</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('annotated.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">Data Structures</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct__template_f_s_m_external_data.html" target="_self">_templateFSMExternalData</a></td><td class="desc">自定义外部数据 </td></tr>
|
||||
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct__template_f_s_m_inner_data.html" target="_self">_templateFSMInnerData</a></td><td class="desc">自定义内部数据 </td></tr>
|
||||
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_f_s_m_data_loader.html" target="_self">FSMDataLoader</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_f_s_m_handler.html" target="_self">FSMHandler</a></td><td class="desc">状态处理函数集合,全部需要子类重新填充内容 </td></tr>
|
||||
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_f_s_m_private_vars.html" target="_self">FSMPrivateVars</a></td><td class="desc">基类状态机的私有变量和函数,子类不可直接访问 </td></tr>
|
||||
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_f_s_m_pure_vtbl.html" target="_self">FSMPureVtbl</a></td><td class="desc">纯虚函数,子类必须重新实现,父类构造函数不会初始化 </td></tr>
|
||||
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_f_s_m_signals.html" target="_self">FSMSignals</a></td><td class="desc">状态机用的信号,protected子类可以访问 </td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
var annotated_dup =
|
||||
[
|
||||
[ "_templateFSMExternalData", "struct__template_f_s_m_external_data.html", null ],
|
||||
[ "_templateFSMInnerData", "struct__template_f_s_m_inner_data.html", null ],
|
||||
[ "FSMDataLoader", "struct_f_s_m_data_loader.html", null ],
|
||||
[ "FSMHandler", "struct_f_s_m_handler.html", "struct_f_s_m_handler" ],
|
||||
[ "FSMPrivateVars", "struct_f_s_m_private_vars.html", "struct_f_s_m_private_vars" ],
|
||||
[ "FSMPureVtbl", "struct_f_s_m_pure_vtbl.html", "struct_f_s_m_pure_vtbl" ],
|
||||
[ "FSMSignals", "struct_f_s_m_signals.html", "struct_f_s_m_signals" ]
|
||||
];
|
After Width: | Height: | Size: 676 B |
After Width: | Height: | Size: 635 B |
|
@ -0,0 +1,132 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/childtest/childFSM.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('child_f_s_m_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">childFSM.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef __CHILD_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define __CHILD_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#define ChildFSM_Input(pFSM) ((ChildFSMData *)_preloadIn((FSM *)pFSM))</span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_childFSMData</div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span>{</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> <span class="keywordtype">int</span> arrindex;</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span>}ChildFSMData;</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_ChildFSM ChildFSM;</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span>ChildFSM *createChildFSM();</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_b967bec748219e2f7c7f19a67051e0d6.html">childtest</a></li><li class="navelem"><b>childFSM.h</b></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,237 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/childtest/childFSM_private.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('child_f_s_m__private_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">childFSM_private.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef __CHILD_PRIVATE_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define __CHILD_PRIVATE_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include "<a class="code" href="_f_s_m__protected_8h.html">FSM_protected.h</a>"</span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "childFSM.h"</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> 继承基类</span></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_ChildFSM</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span>{ </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// 继承父类</span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> FSM base;</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span>}ChildFSM;</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> 状态和对应的 action, exit, during 函数</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">typedef</span> <span class="keyword">enum</span> _State</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> Idle,</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> D,</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> E,</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> Count_State,</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>} State;</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#define DEFAULT_STATE E</span></div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keywordtype">void</span> actionFcn(enter, D)()</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>{</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> FSM_LOG(<span class="stringliteral">" enterD "</span>);</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>}</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="keywordtype">void</span> actionFcn(during, D)()</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>{</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> FSM_LOG(<span class="stringliteral">" duringD "</span>);</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="keywordtype">void</span> actionFcn(exit, D)()</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>{</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> FSM_LOG(<span class="stringliteral">" exitD "</span>);</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>}</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keywordtype">void</span> actionFcn(enter, E)()</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>{</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> FSM_LOG(<span class="stringliteral">" enterE "</span>);</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>}</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keywordtype">void</span> actionFcn(during, E)()</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> FSM_LOG(<span class="stringliteral">" duringE "</span>);</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>}</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="keywordtype">void</span> actionFcn(exit, E)()</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>{</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> FSM_LOG(<span class="stringliteral">" exitE "</span>);</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> 事件和对应的转移函数</span></div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="keyword">typedef</span> <span class="keyword">enum</span> _Event{</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> Idle_Event,</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> Idle2D,</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> Idle2E,</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> D2E,</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> E2D,</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> Count_Event,</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>}Event;</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>State transitionHandler(Idle2D)()</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>{</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> FSM_LOG(<span class="stringliteral">" Idle2D "</span>);</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> D;</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>State transitionHandler(Idle2E)()</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>{</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> FSM_LOG(<span class="stringliteral">" Idle2E "</span>);</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> E;</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>}</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>State transitionHandler(D2E)()</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>{</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> FSM_LOG(<span class="stringliteral">" D2E "</span>);</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> E;</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>}</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>State transitionHandler(E2D)()</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>{</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> FSM_LOG(<span class="stringliteral">" E2D "</span>);</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> D;</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>}</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> 用户自定义事件选择逻辑—————————————————begin </span></div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment">*/</span></div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">char</span> *stateStr[] = {</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="stringliteral">"Idle"</span>,</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="stringliteral">"D"</span>,</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="stringliteral">"E"</span>,</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> };</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">char</span> *eventStr[] = {</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="stringliteral">"Idle"</span>,</div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="stringliteral">"Idle2D"</span>,</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="stringliteral">"Idle2E"</span>,</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="stringliteral">"D2E"</span>,</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="stringliteral">"E2D"</span>,</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>};</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="keyword">static</span> <span class="keywordtype">void</span> printFSM(ChildFSM* pFSM){</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> FSM_LOG(<span class="stringliteral">" \t\tChildFSM: "</span>);</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> FSM_LOG(<span class="stringliteral">"当前状态:%s, 当前事件:%s, 动作:"</span>, stateStr[getFSMCurState((FSM *)pFSM)], eventStr[getFSMCurEvent((FSM *)pFSM)]);</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>}</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html"><div class="ttname"><a href="_f_s_m__protected_8h.html">FSM_protected.h</a></div><div class="ttdoc">状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_b967bec748219e2f7c7f19a67051e0d6.html">childtest</a></li><li class="navelem"><b>childFSM_private.h</b></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,123 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Data Structure Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('classes.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">Data Structure Index</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="qindex"><a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter__">_</a></div>
|
||||
<div class="classindex">
|
||||
<dl class="classindex even">
|
||||
<dt class="alphachar"><a id="letter_F" name="letter_F">F</a></dt>
|
||||
<dd><a class="el" href="struct_f_s_m_data_loader.html">FSMDataLoader</a></dd><dd><a class="el" href="struct_f_s_m_handler.html">FSMHandler</a></dd><dd><a class="el" href="struct_f_s_m_private_vars.html">FSMPrivateVars</a></dd><dd><a class="el" href="struct_f_s_m_pure_vtbl.html">FSMPureVtbl</a></dd><dd><a class="el" href="struct_f_s_m_signals.html">FSMSignals</a></dd></dl>
|
||||
<dl class="classindex odd">
|
||||
<dt class="alphachar"><a id="letter__" name="letter__">_</a></dt>
|
||||
<dd><a class="el" href="struct__template_f_s_m_external_data.html">_templateFSMExternalData</a></dd><dd><a class="el" href="struct__template_f_s_m_inner_data.html">_templateFSMInnerData</a></dd></dl>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,61 @@
|
|||
/**
|
||||
|
||||
The code below is based on the Doxygen Awesome project, see
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 - 2022 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
let clipboard_title = "Copy to clipboard"
|
||||
let clipboard_icon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`
|
||||
let clipboard_successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>`
|
||||
let clipboard_successDuration = 1000
|
||||
|
||||
$(function() {
|
||||
if(navigator.clipboard) {
|
||||
const fragments = document.getElementsByClassName("fragment")
|
||||
for(const fragment of fragments) {
|
||||
const clipboard_div = document.createElement("div")
|
||||
clipboard_div.classList.add("clipboard")
|
||||
clipboard_div.innerHTML = clipboard_icon
|
||||
clipboard_div.title = clipboard_title
|
||||
$(clipboard_div).click(function() {
|
||||
const content = this.parentNode.cloneNode(true)
|
||||
// filter out line number and folded fragments from file listings
|
||||
content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() })
|
||||
let text = content.textContent
|
||||
// remove trailing newlines and trailing spaces from empty lines
|
||||
text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'')
|
||||
navigator.clipboard.writeText(text);
|
||||
this.classList.add("success")
|
||||
this.innerHTML = clipboard_successIcon
|
||||
window.setTimeout(() => { // switch back to normal icon after timeout
|
||||
this.classList.remove("success")
|
||||
this.innerHTML = clipboard_icon
|
||||
}, clipboard_successDuration);
|
||||
})
|
||||
fragment.insertBefore(clipboard_div, fragment.firstChild)
|
||||
}
|
||||
}
|
||||
})
|
After Width: | Height: | Size: 132 B |
|
@ -0,0 +1,58 @@
|
|||
/*!
|
||||
Cookie helper functions
|
||||
Copyright (c) 2023 Dimitri van Heesch
|
||||
Released under MIT license.
|
||||
*/
|
||||
let Cookie = {
|
||||
cookie_namespace: 'doxygen_',
|
||||
|
||||
readSetting(cookie,defVal) {
|
||||
if (window.chrome) {
|
||||
const val = localStorage.getItem(this.cookie_namespace+cookie) ||
|
||||
sessionStorage.getItem(this.cookie_namespace+cookie);
|
||||
if (val) return val;
|
||||
} else {
|
||||
let myCookie = this.cookie_namespace+cookie+"=";
|
||||
if (document.cookie) {
|
||||
const index = document.cookie.indexOf(myCookie);
|
||||
if (index != -1) {
|
||||
const valStart = index + myCookie.length;
|
||||
let valEnd = document.cookie.indexOf(";", valStart);
|
||||
if (valEnd == -1) {
|
||||
valEnd = document.cookie.length;
|
||||
}
|
||||
return document.cookie.substring(valStart, valEnd);
|
||||
}
|
||||
}
|
||||
}
|
||||
return defVal;
|
||||
},
|
||||
|
||||
writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
|
||||
if (window.chrome) {
|
||||
if (days==0) {
|
||||
sessionStorage.setItem(this.cookie_namespace+cookie,val);
|
||||
} else {
|
||||
localStorage.setItem(this.cookie_namespace+cookie,val);
|
||||
}
|
||||
} else {
|
||||
let date = new Date();
|
||||
date.setTime(date.getTime()+(days*24*60*60*1000));
|
||||
const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
|
||||
document.cookie = this.cookie_namespace + cookie + "=" +
|
||||
val + "; SameSite=Lax;" + expiration + "path=/";
|
||||
}
|
||||
},
|
||||
|
||||
eraseSetting(cookie) {
|
||||
if (window.chrome) {
|
||||
if (localStorage.getItem(this.cookie_namespace+cookie)) {
|
||||
localStorage.removeItem(this.cookie_namespace+cookie);
|
||||
} else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
|
||||
sessionStorage.removeItem(this.cookie_namespace+cookie);
|
||||
}
|
||||
} else {
|
||||
this.writeSetting(cookie,'',-1);
|
||||
}
|
||||
},
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Deprecated List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('deprecated.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div><div class="header">
|
||||
<div class="headertitle"><div class="title">Deprecated List</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><dl class="reflist">
|
||||
<dt>Global <a class="el" href="_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432">FSMDataLoader</a> </dt>
|
||||
<dd><a class="anchor" id="_deprecated000006"></a>预装载器弃用 </dd>
|
||||
<dt>Global <a class="el" href="struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1">FSMPrivateVars::preloader</a> </dt>
|
||||
<dd><a class="anchor" id="_deprecated000007"></a>弃用 </dd>
|
||||
<dt>Global <a class="el" href="struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472">FSMPureVtbl::initDataLoader</a> )(FSM *pFSM)</dt>
|
||||
<dd><a class="anchor" id="_deprecated000009"></a>和预装载器相关 </dd>
|
||||
<dt>Global <a class="el" href="struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d">FSMPureVtbl::loadExternalData</a> )(void *extData)</dt>
|
||||
<dd><a class="anchor" id="_deprecated000008"></a>暂时没用,后续可能考虑外部数据是否允许随时修改 </dd>
|
||||
</dl>
|
||||
</div></div><!-- contents -->
|
||||
</div><!-- PageDoc -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,123 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/template Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('dir_7883619b7fc78d5d5f504b4a82c84a2d.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">template Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
|
||||
Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="template_f_s_m_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>templateFSM.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="template_f_s_m__private_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>templateFSM_private.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_7883619b7fc78d5d5f504b4a82c84a2d.html">template</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,5 @@
|
|||
var dir_7883619b7fc78d5d5f504b4a82c84a2d =
|
||||
[
|
||||
[ "templateFSM.h", "template_f_s_m_8h_source.html", null ],
|
||||
[ "templateFSM_private.h", "template_f_s_m__private_8h_source.html", null ]
|
||||
];
|
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/baseFSM Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('dir_80fe18a48ef62b4daee0a25030c2866c.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">baseFSM Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
|
||||
Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="_f_s_m__private_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_f_s_m__private_8h.html">FSM_private.h</a></td></tr>
|
||||
<tr class="memdesc:_f_s_m__private_8h"><td class="mdescLeft"> </td><td class="mdescRight">状态机框架的私有变量,只能在状态机框架内使用。 <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="_f_s_m__protected_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_f_s_m__protected_8h.html">FSM_protected.h</a></td></tr>
|
||||
<tr class="memdesc:_f_s_m__protected_8h"><td class="mdescLeft"> </td><td class="mdescRight">状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用 <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="_f_s_m__public_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>FSM_public.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,6 @@
|
|||
var dir_80fe18a48ef62b4daee0a25030c2866c =
|
||||
[
|
||||
[ "FSM_private.h", "_f_s_m__private_8h.html", "_f_s_m__private_8h" ],
|
||||
[ "FSM_protected.h", "_f_s_m__protected_8h.html", "_f_s_m__protected_8h" ],
|
||||
[ "FSM_public.h", "_f_s_m__public_8h_source.html", null ]
|
||||
];
|
|
@ -0,0 +1,123 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/keytest Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('dir_8a682e2342309b53ef6d16f9472268bd.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">keytest Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
|
||||
Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="key_f_s_m_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>keyFSM.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="key_f_s_m__private_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>keyFSM_private.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_8a682e2342309b53ef6d16f9472268bd.html">keytest</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,5 @@
|
|||
var dir_8a682e2342309b53ef6d16f9472268bd =
|
||||
[
|
||||
[ "keyFSM.h", "key_f_s_m_8h_source.html", null ],
|
||||
[ "keyFSM_private.h", "key_f_s_m__private_8h_source.html", null ]
|
||||
];
|
|
@ -0,0 +1,125 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/childtest Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('dir_b967bec748219e2f7c7f19a67051e0d6.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">childtest Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
|
||||
Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="child_f_s_m_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>childFSM.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="child_f_s_m__private_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>childFSM_private.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="parent_f_s_m_8h_source.html"><span class="icondoc"></span></a> </td><td class="memItemRight" valign="bottom"><b>parentFSM.h</b></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_b967bec748219e2f7c7f19a67051e0d6.html">childtest</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,6 @@
|
|||
var dir_b967bec748219e2f7c7f19a67051e0d6 =
|
||||
[
|
||||
[ "childFSM.h", "child_f_s_m_8h_source.html", null ],
|
||||
[ "childFSM_private.h", "child_f_s_m__private_8h_source.html", null ],
|
||||
[ "parentFSM.h", "parent_f_s_m_8h_source.html", null ]
|
||||
];
|
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('dir_d39bfbf75725f6289f30e50b2f1305f4.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">FSM_OOP Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
|
||||
Directories</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span> </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html">baseFSM</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span> </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_b967bec748219e2f7c7f19a67051e0d6.html">childtest</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span> </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8a682e2342309b53ef6d16f9472268bd.html">keytest</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span> </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_7883619b7fc78d5d5f504b4a82c84a2d.html">template</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,7 @@
|
|||
var dir_d39bfbf75725f6289f30e50b2f1305f4 =
|
||||
[
|
||||
[ "baseFSM", "dir_80fe18a48ef62b4daee0a25030c2866c.html", "dir_80fe18a48ef62b4daee0a25030c2866c" ],
|
||||
[ "childtest", "dir_b967bec748219e2f7c7f19a67051e0d6.html", "dir_b967bec748219e2f7c7f19a67051e0d6" ],
|
||||
[ "keytest", "dir_8a682e2342309b53ef6d16f9472268bd.html", "dir_8a682e2342309b53ef6d16f9472268bd" ],
|
||||
[ "template", "dir_7883619b7fc78d5d5f504b4a82c84a2d.html", "dir_7883619b7fc78d5d5f504b4a82c84a2d" ]
|
||||
];
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
||||
<g style="fill:#4665A2">
|
||||
<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
|
||||
</g>
|
||||
<g style="fill:#D8DFEE;stroke-width:0">
|
||||
<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
|
||||
<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
||||
<g style="fill:#C4CFE5">
|
||||
<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
|
||||
</g>
|
||||
<g style="fill:#4665A2;stroke-width:0">
|
||||
<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
|
||||
<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<title>Validator / crawler helper</title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
</head>
|
||||
<body>
|
||||
<a href="_f_s_m__private_8h_source.html"/>
|
||||
<a href="_f_s_m__protected_8h_source.html"/>
|
||||
<a href="_f_s_m__public_8h_source.html"/>
|
||||
<a href="child_f_s_m_8h_source.html"/>
|
||||
<a href="child_f_s_m__private_8h_source.html"/>
|
||||
<a href="parent_f_s_m_8h_source.html"/>
|
||||
<a href="key_f_s_m_8h_source.html"/>
|
||||
<a href="key_f_s_m__private_8h_source.html"/>
|
||||
<a href="template_f_s_m_8h_source.html"/>
|
||||
<a href="template_f_s_m__private_8h_source.html"/>
|
||||
<a href="_f_s_m__private_8h.html"/>
|
||||
<a href="_f_s_m__protected_8h.html"/>
|
||||
<a href="deprecated.html"/>
|
||||
<a href="struct__template_f_s_m_external_data.html"/>
|
||||
<a href="struct__template_f_s_m_inner_data.html"/>
|
||||
<a href="struct_f_s_m_data_loader.html"/>
|
||||
<a href="struct_f_s_m_handler.html"/>
|
||||
<a href="struct_f_s_m_private_vars.html"/>
|
||||
<a href="struct_f_s_m_pure_vtbl.html"/>
|
||||
<a href="struct_f_s_m_signals.html"/>
|
||||
<a href="dir_80fe18a48ef62b4daee0a25030c2866c.html"/>
|
||||
<a href="dir_b967bec748219e2f7c7f19a67051e0d6.html"/>
|
||||
<a href="dir_d39bfbf75725f6289f30e50b2f1305f4.html"/>
|
||||
<a href="dir_8a682e2342309b53ef6d16f9472268bd.html"/>
|
||||
<a href="dir_7883619b7fc78d5d5f504b4a82c84a2d.html"/>
|
||||
<a href="index.html"/>
|
||||
<a href="doxygen_crawl.html"/>
|
||||
<a href="pages.html"/>
|
||||
<a href="annotated.html"/>
|
||||
<a href="classes.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="functions_vars.html"/>
|
||||
<a href="files.html"/>
|
||||
<a href="globals.html"/>
|
||||
<a href="globals.html"/>
|
||||
<a href="globals.html"/>
|
||||
<a href="globals_func.html"/>
|
||||
<a href="globals_type.html"/>
|
||||
<a href="globals_defs.html"/>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,194 @@
|
|||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
|
||||
let dynsection = {
|
||||
|
||||
// helper function
|
||||
updateStripes : function() {
|
||||
$('table.directory tr').
|
||||
removeClass('even').filter(':visible:even').addClass('even');
|
||||
$('table.directory tr').
|
||||
removeClass('odd').filter(':visible:odd').addClass('odd');
|
||||
},
|
||||
|
||||
toggleVisibility : function(linkObj) {
|
||||
const base = $(linkObj).attr('id');
|
||||
const summary = $('#'+base+'-summary');
|
||||
const content = $('#'+base+'-content');
|
||||
const trigger = $('#'+base+'-trigger');
|
||||
const src=$(trigger).attr('src');
|
||||
if (content.is(':visible')===true) {
|
||||
content.hide();
|
||||
summary.show();
|
||||
$(linkObj).addClass('closed').removeClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
content.show();
|
||||
summary.hide();
|
||||
$(linkObj).removeClass('closed').addClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
toggleLevel : function(level) {
|
||||
$('table.directory tr').each(function() {
|
||||
const l = this.id.split('_').length-1;
|
||||
const i = $('#img'+this.id.substring(3));
|
||||
const a = $('#arr'+this.id.substring(3));
|
||||
if (l<level+1) {
|
||||
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
|
||||
a.html('▼');
|
||||
$(this).show();
|
||||
} else if (l==level+1) {
|
||||
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
|
||||
a.html('►');
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
this.updateStripes();
|
||||
},
|
||||
|
||||
toggleFolder : function(id) {
|
||||
// the clicked row
|
||||
const currentRow = $('#row_'+id);
|
||||
|
||||
// all rows after the clicked row
|
||||
const rows = currentRow.nextAll("tr");
|
||||
|
||||
const re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||
|
||||
// only match elements AFTER this one (can't hide elements before)
|
||||
const childRows = rows.filter(function() { return this.id.match(re); });
|
||||
|
||||
// first row is visible we are HIDING
|
||||
if (childRows.filter(':first').is(':visible')===true) {
|
||||
// replace down arrow by right arrow for current row
|
||||
const currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
currentRowSpans.filter(".arrow").html('►');
|
||||
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
|
||||
} else { // we are SHOWING
|
||||
// replace right arrow by down arrow for current row
|
||||
const currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
|
||||
currentRowSpans.filter(".arrow").html('▼');
|
||||
// replace down arrows by right arrows for child rows
|
||||
const childRowsSpans = childRows.find("span");
|
||||
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
childRowsSpans.filter(".arrow").html('►');
|
||||
childRows.show(); //show all children
|
||||
}
|
||||
this.updateStripes();
|
||||
},
|
||||
|
||||
toggleInherit : function(id) {
|
||||
const rows = $('tr.inherit.'+id);
|
||||
const img = $('tr.inherit_header.'+id+' img');
|
||||
const src = $(img).attr('src');
|
||||
if (rows.filter(':first').is(':visible')===true) {
|
||||
rows.css('display','none');
|
||||
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
let codefold = {
|
||||
opened : true,
|
||||
|
||||
// in case HTML_COLORSTYLE is LIGHT or DARK the vars will be replaced, so we write them out explicitly and use double quotes
|
||||
plusImg: [ "var(--fold-plus-image)", "var(--fold-plus-image-relpath)" ],
|
||||
minusImg: [ "var(--fold-minus-image)", "var(--fold-minus-image-relpath)" ],
|
||||
|
||||
// toggle all folding blocks
|
||||
toggle_all : function(relPath) {
|
||||
if (this.opened) {
|
||||
$('#fold_all').css('background-image',this.plusImg[relPath]);
|
||||
$('div[id^=foldopen]').hide();
|
||||
$('div[id^=foldclosed]').show();
|
||||
} else {
|
||||
$('#fold_all').css('background-image',this.minusImg[relPath]);
|
||||
$('div[id^=foldopen]').show();
|
||||
$('div[id^=foldclosed]').hide();
|
||||
}
|
||||
this.opened=!this.opened;
|
||||
},
|
||||
|
||||
// toggle single folding block
|
||||
toggle : function(id) {
|
||||
$('#foldopen'+id).toggle();
|
||||
$('#foldclosed'+id).toggle();
|
||||
},
|
||||
|
||||
init : function(relPath) {
|
||||
$('span[class=lineno]').css({
|
||||
'padding-right':'4px',
|
||||
'margin-right':'2px',
|
||||
'display':'inline-block',
|
||||
'width':'54px',
|
||||
'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%'
|
||||
});
|
||||
// add global toggle to first line
|
||||
$('span[class=lineno]:first').append('<span class="fold" id="fold_all" '+
|
||||
'onclick="javascript:codefold.toggle_all('+relPath+');" '+
|
||||
'style="background-image:'+this.minusImg[relPath]+';"></span>');
|
||||
// add vertical lines to other rows
|
||||
$('span[class=lineno]').not(':eq(0)').append('<span class="fold"></span>');
|
||||
// add toggle controls to lines with fold divs
|
||||
$('div[class=foldopen]').each(function() {
|
||||
// extract specific id to use
|
||||
const id = $(this).attr('id').replace('foldopen','');
|
||||
// extract start and end foldable fragment attributes
|
||||
const start = $(this).attr('data-start');
|
||||
const end = $(this).attr('data-end');
|
||||
// replace normal fold span with controls for the first line of a foldable fragment
|
||||
$(this).find('span[class=fold]:first').replaceWith('<span class="fold" '+
|
||||
'onclick="javascript:codefold.toggle(\''+id+'\');" '+
|
||||
'style="background-image:'+codefold.minusImg[relPath]+';"></span>');
|
||||
// append div for folded (closed) representation
|
||||
$(this).after('<div id="foldclosed'+id+'" class="foldclosed" style="display:none;"></div>');
|
||||
// extract the first line from the "open" section to represent closed content
|
||||
const line = $(this).children().first().clone();
|
||||
// remove any glow that might still be active on the original line
|
||||
$(line).removeClass('glow');
|
||||
if (start) {
|
||||
// if line already ends with a start marker (e.g. trailing {), remove it
|
||||
$(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),''));
|
||||
}
|
||||
// replace minus with plus symbol
|
||||
$(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]);
|
||||
// append ellipsis
|
||||
$(line).append(' '+start+'<a href="javascript:codefold.toggle(\''+id+'\')">…</a>'+end);
|
||||
// insert constructed line into closed div
|
||||
$('#foldclosed'+id).html(line);
|
||||
});
|
||||
},
|
||||
};
|
||||
/* @license-end */
|
|
@ -0,0 +1,133 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: File List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('files.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">File List</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
|
||||
<div class="levels">[detail level <span onclick="javascript:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.toggleLevel(2);">2</span><span onclick="javascript:dynsection.toggleLevel(3);">3</span>]</div><table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="dynsection.toggleFolder('0_')">▼</span><span id="img_0_" class="iconfopen" onclick="dynsection.toggleFolder('0_')"> </span><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html" target="_self">FSM_OOP</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_0_" class="arrow" onclick="dynsection.toggleFolder('0_0_')">▼</span><span id="img_0_0_" class="iconfopen" onclick="dynsection.toggleFolder('0_0_')"> </span><a class="el" href="dir_80fe18a48ef62b4daee0a25030c2866c.html" target="_self">baseFSM</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_f_s_m__private_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_f_s_m__private_8h.html" target="_self">FSM_private.h</a></td><td class="desc">状态机框架的私有变量,只能在状态机框架内使用。 </td></tr>
|
||||
<tr id="row_0_0_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_f_s_m__protected_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_f_s_m__protected_8h.html" target="_self">FSM_protected.h</a></td><td class="desc">状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用 </td></tr>
|
||||
<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_f_s_m__public_8h_source.html"><span class="icondoc"></span></a><b>FSM_public.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_1_" class="arrow" onclick="dynsection.toggleFolder('0_1_')">▼</span><span id="img_0_1_" class="iconfopen" onclick="dynsection.toggleFolder('0_1_')"> </span><a class="el" href="dir_b967bec748219e2f7c7f19a67051e0d6.html" target="_self">childtest</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="child_f_s_m_8h_source.html"><span class="icondoc"></span></a><b>childFSM.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_1_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="child_f_s_m__private_8h_source.html"><span class="icondoc"></span></a><b>childFSM_private.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="parent_f_s_m_8h_source.html"><span class="icondoc"></span></a><b>parentFSM.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_2_" class="arrow" onclick="dynsection.toggleFolder('0_2_')">▼</span><span id="img_0_2_" class="iconfopen" onclick="dynsection.toggleFolder('0_2_')"> </span><a class="el" href="dir_8a682e2342309b53ef6d16f9472268bd.html" target="_self">keytest</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="key_f_s_m_8h_source.html"><span class="icondoc"></span></a><b>keyFSM.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_2_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="key_f_s_m__private_8h_source.html"><span class="icondoc"></span></a><b>keyFSM_private.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_3_" class="arrow" onclick="dynsection.toggleFolder('0_3_')">▼</span><span id="img_0_3_" class="iconfopen" onclick="dynsection.toggleFolder('0_3_')"> </span><a class="el" href="dir_7883619b7fc78d5d5f504b4a82c84a2d.html" target="_self">template</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_3_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="template_f_s_m_8h_source.html"><span class="icondoc"></span></a><b>templateFSM.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_3_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="template_f_s_m__private_8h_source.html"><span class="icondoc"></span></a><b>templateFSM_private.h</b></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
var files_dup =
|
||||
[
|
||||
[ "FSM_OOP", "dir_d39bfbf75725f6289f30e50b2f1305f4.html", "dir_d39bfbf75725f6289f30e50b2f1305f4" ]
|
||||
];
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
||||
<g style="fill:#4665A2;">
|
||||
<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
|
||||
</g>
|
||||
<g style="fill:#D8DFEE;stroke-width:0;">
|
||||
<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
||||
<g style="fill:#C4CFE5;">
|
||||
<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
|
||||
</g>
|
||||
<g style="fill:#4665A2;stroke-width:0;">
|
||||
<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
||||
<g style="fill:#4665A2;">
|
||||
<path
|
||||
d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"
|
||||
id="path2" />
|
||||
</g>
|
||||
<g style="fill:#D8DFEE;stroke-width:0;">
|
||||
<path
|
||||
d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z"
|
||||
id="path199" /><path
|
||||
d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z"
|
||||
id="path201" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
||||
<g style="fill:#C4CFE5;">
|
||||
<path d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"/>
|
||||
</g>
|
||||
<g style="fill:#4665A2;stroke-width:0;">
|
||||
<path d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z" />
|
||||
<path d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,126 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Data Fields</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('functions.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
|
||||
<li>defaultState : <a class="el" href="struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe">FSMPrivateVars</a></li>
|
||||
<li>external : <a class="el" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">FSMSignals</a></li>
|
||||
<li>index : <a class="el" href="struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7">FSMPrivateVars</a></li>
|
||||
<li>initData : <a class="el" href="struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1">FSMPureVtbl</a></li>
|
||||
<li>initDataLoader : <a class="el" href="struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472">FSMPureVtbl</a></li>
|
||||
<li>initSignals : <a class="el" href="struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8">FSMPureVtbl</a></li>
|
||||
<li>lastTriggeredSignal : <a class="el" href="struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d">FSMSignals</a></li>
|
||||
<li>loadExternalData : <a class="el" href="struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d">FSMPureVtbl</a></li>
|
||||
<li>nextState : <a class="el" href="struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c">FSMPrivateVars</a></li>
|
||||
<li>preloader : <a class="el" href="struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1">FSMPrivateVars</a></li>
|
||||
<li>resetSignals : <a class="el" href="struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1">FSMPureVtbl</a></li>
|
||||
<li>selectNextState : <a class="el" href="struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451">FSMHandler</a></li>
|
||||
<li>setupHandler : <a class="el" href="struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d">FSMPureVtbl</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,126 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Data Fields - Variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('functions_vars.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented variables with links to the struct/union documentation for each field:</div><ul>
|
||||
<li>defaultState : <a class="el" href="struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe">FSMPrivateVars</a></li>
|
||||
<li>external : <a class="el" href="struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c">FSMSignals</a></li>
|
||||
<li>index : <a class="el" href="struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7">FSMPrivateVars</a></li>
|
||||
<li>initData : <a class="el" href="struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1">FSMPureVtbl</a></li>
|
||||
<li>initDataLoader : <a class="el" href="struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472">FSMPureVtbl</a></li>
|
||||
<li>initSignals : <a class="el" href="struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8">FSMPureVtbl</a></li>
|
||||
<li>lastTriggeredSignal : <a class="el" href="struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d">FSMSignals</a></li>
|
||||
<li>loadExternalData : <a class="el" href="struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d">FSMPureVtbl</a></li>
|
||||
<li>nextState : <a class="el" href="struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c">FSMPrivateVars</a></li>
|
||||
<li>preloader : <a class="el" href="struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1">FSMPrivateVars</a></li>
|
||||
<li>resetSignals : <a class="el" href="struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1">FSMPureVtbl</a></li>
|
||||
<li>selectNextState : <a class="el" href="struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451">FSMHandler</a></li>
|
||||
<li>setupHandler : <a class="el" href="struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d">FSMPureVtbl</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,120 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('globals.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div><ul>
|
||||
<li>FSMDataLoader : <a class="el" href="_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432">FSM_private.h</a></li>
|
||||
<li>FSMHandler : <a class="el" href="_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba">FSM_private.h</a>, <a class="el" href="_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba">FSM_protected.h</a></li>
|
||||
<li>FSMPrivateVars : <a class="el" href="_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9">FSM_private.h</a></li>
|
||||
<li>FSMPureVtbl : <a class="el" href="_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037">FSM_protected.h</a></li>
|
||||
<li>FSMSignals : <a class="el" href="_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f">FSM_private.h</a>, <a class="el" href="_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f">FSM_protected.h</a></li>
|
||||
<li>Idle_Signal : <a class="el" href="_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e">FSM_protected.h</a></li>
|
||||
<li>stepBaseFSM() : <a class="el" href="_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb">FSM_protected.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,114 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('globals_defs.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented macros with links to the documentation:</div><ul>
|
||||
<li>Idle_Signal : <a class="el" href="_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e">FSM_protected.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,114 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('globals_func.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented functions with links to the documentation:</div><ul>
|
||||
<li>stepBaseFSM() : <a class="el" href="_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb">FSM_protected.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,118 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('globals_type.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented typedefs with links to the documentation:</div><ul>
|
||||
<li>FSMDataLoader : <a class="el" href="_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432">FSM_private.h</a></li>
|
||||
<li>FSMHandler : <a class="el" href="_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba">FSM_private.h</a>, <a class="el" href="_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba">FSM_protected.h</a></li>
|
||||
<li>FSMPrivateVars : <a class="el" href="_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9">FSM_private.h</a></li>
|
||||
<li>FSMPureVtbl : <a class="el" href="_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037">FSM_protected.h</a></li>
|
||||
<li>FSMSignals : <a class="el" href="_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f">FSM_private.h</a>, <a class="el" href="_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f">FSM_protected.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Main Page</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('index.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">状态机框架 Documentation</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<ul><li><a href="index.html"><span>Main Page</span></a>
|
||||
</li><li><a href="pages.html"><span>Related Pages</span></a>
|
||||
</li><li><a href="annotated.html"><span>Data Structures</span></a>
|
||||
<ul><li><a href="annotated.html"><span>Data Structures</span></a>
|
||||
</li><li><a href="classes.html"><span>Data Structure Index</span></a>
|
||||
</li><li><a href="functions.html"><span>Data Fields</span></a>
|
||||
</li></ul>
|
||||
</li><li><a href="files.html"><span>Files</span></a>
|
||||
<ul><li><a href="files.html"><span>File List</span></a>
|
||||
</li><li><a href="globals.html"><span>Globals</span></a>
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
<a href="doxygen_crawl.html"/>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,170 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/keytest/keyFSM.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('key_f_s_m_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">keyFSM.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef __KEY_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define __KEY_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#define KeyFSM_Input(pFSM) (KeyIn *)_preloadIn((FSM *)pFSM)</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="keyword">typedef</span> <span class="keyword">enum</span> _keyIn{</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> pUp,</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> pDown,</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span>}KeyIn;</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">typedef</span> <span class="keyword">enum</span> _keyOut{</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> Idle,</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> Down,</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> Hold,</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> Down_2times,</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> Down_3times,</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span>}KeyOut;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">char</span> *keyStr[] = </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>{</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="stringliteral">"Idle"</span>,</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="stringliteral">"Down"</span>,</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="stringliteral">"Hold"</span>,</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="stringliteral">"Down_2times"</span>,</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="stringliteral">"Down_3times"</span>,</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>};</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_keyFSMExternalData</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>{</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> KeyIn in;</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>}KeyFSMExternalData;</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_keyFSMInternalData</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>{</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">int</span> countDelay;</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">int</span> countMultiDown;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> KeyOut out;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}KeyFSMInternalData;</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_keyFSMData</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>{</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> KeyFSMExternalData external;</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> KeyFSMInternalData internal;</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}KeyFSMData;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_KeyFSM KeyFSM;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>KeyFSM *createKeyFSM();</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#endif</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_8a682e2342309b53ef6d16f9472268bd.html">keytest</a></li><li class="navelem"><b>keyFSM.h</b></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,393 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/keytest/keyFSM_private.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('key_f_s_m__private_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">keyFSM_private.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef __KEY_PRIVATE_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define __KEY_PRIVATE_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include "<a class="code" href="_f_s_m__protected_8h.html">FSM_protected.h</a>"</span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "keyFSM.h"</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <assert.h></span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">extern</span> KeyIn keystat;</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> 继承基类</span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_KeyFSM</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span>{ </div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// 继承父类</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> FSM base;</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span>}KeyFSM;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> 状态和对应的 action, exit, during 函数</span></div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">typedef</span> <span class="keyword">enum</span> _State</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> Idle_State,</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> Waiting,</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> DownDebouncing,</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> Downing,</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> Holding,</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> HoldUpDebouncing,</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> UpDebouncing,</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> MultiDownWaiting,</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> MultiDowning,</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> MultiDownDebouncing,</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> Count_State,</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>} State;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define DEFAULT_STATE Waiting</span></div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">/* 下一个状态选择函数 */</span></div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">static</span> State selectNextStateFcn(Waiting)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">if</span>(data->external.in == Down){</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> FSM_LOG(<span class="stringliteral">" 物理按键按下 "</span>);</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> DownDebouncing;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>}</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">static</span> State selectNextStateFcn(DownDebouncing)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">if</span>(data->external.in == pUp){</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> FSM_LOG(<span class="stringliteral">" 物理按键松开 "</span>);</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> Waiting;</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data->internal.countDelay == 5){</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> Downing;</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>}</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="keyword">static</span> State selectNextStateFcn(Downing)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span>(data->external.in == pUp){</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> FSM_LOG(<span class="stringliteral">" 物理按键松开 "</span>);</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> UpDebouncing;</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data->internal.countDelay == 10){</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> Holding;</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>}</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="keyword">static</span> State selectNextStateFcn(Holding)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">if</span>(data->external.in == pUp){</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> FSM_LOG(<span class="stringliteral">" 物理按键松开 "</span>);</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> HoldUpDebouncing;</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>}</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keyword">static</span> State selectNextStateFcn(HoldUpDebouncing)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">if</span>(data->external.in == Down){</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> FSM_LOG(<span class="stringliteral">" 物理按键按下 "</span>);</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> Holding;</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data->internal.countDelay == 5){</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">return</span> Waiting;</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> }</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keyword">static</span> State selectNextStateFcn(UpDebouncing)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">if</span>(data->external.in == Down){</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> FSM_LOG(<span class="stringliteral">" 物理按键按下 "</span>);</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">if</span>(data->internal.countMultiDown){</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> MultiDowning;</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> }</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">else</span>{</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> Downing;</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data->internal.countDelay == 5){</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> MultiDownWaiting;</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> }</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>}</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keyword">static</span> State selectNextStateFcn(MultiDownWaiting)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span>(data->external.in == Down){</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> FSM_LOG(<span class="stringliteral">" 物理按键按下 "</span>);</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> MultiDownDebouncing;</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> }</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data->internal.countDelay == 5){</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">return</span> Waiting;</div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span>}</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="keyword">static</span> State selectNextStateFcn(MultiDowning)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span>(data->external.in == pUp){</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> FSM_LOG(<span class="stringliteral">" 物理按键松开 "</span>);</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">return</span> UpDebouncing;</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>}</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="keyword">static</span> State selectNextStateFcn(MultiDownDebouncing)(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">if</span>(data->external.in == pUp){</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> FSM_LOG(<span class="stringliteral">" 物理按键松开 "</span>);</div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> MultiDownWaiting;</div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> }</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data->internal.countDelay == 5){</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span> MultiDowning;</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span> Idle_State;</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span>}</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment">/* 对应的 action, exit, during 函数 */</span></div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(enter, Waiting)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> data->internal.out = Idle;</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> data->internal.countDelay = 0;</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> data->internal.countMultiDown = 0;</div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span>}</div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, DownDebouncing)(KeyFSMData* data)</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span>{</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> FSM_LOG(<span class="stringliteral">" during开启消抖 "</span>);</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>}</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, Downing)(KeyFSMData* data)</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>{</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> data->internal.out = Idle;</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span>}</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, UpDebouncing)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> FSM_LOG(<span class="stringliteral">" during松开消抖 "</span>);</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span>}</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, Holding)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> data->internal.out = Idle;</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span>(data->internal.countDelay == 2){</div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> data->internal.out = Hold;</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> data->internal.countDelay = 0;</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> }</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span>}</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(exit, Holding)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> data->internal.out = Idle;</div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span>}</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> </div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, MultiDownWaiting)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> FSM_LOG(<span class="stringliteral">" during多击等待 "</span>);</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span>}</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
|
||||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
|
||||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, HoldUpDebouncing)(KeyFSMData* data)</div>
|
||||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span>{</div>
|
||||
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span>}</div>
|
||||
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
|
||||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
|
||||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="keyword">static</span> <span class="keywordtype">void</span> actionFcn(during, MultiDownDebouncing)(KeyFSMData* data)</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span>{</div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> data->internal.countDelay++;</div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>}</div>
|
||||
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
|
||||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
|
||||
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="comment">/* 转移函数 */</span></div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment">/* -------------------------------------------------------------------------- */</span></div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="keywordtype">void</span> transitionGeneralAction(KeyFSMData *data){</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> data->internal.countDelay = 0;</div>
|
||||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span>}</div>
|
||||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
|
||||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="keyword">static</span> State transitionHandler(DownDebouncing, Downing)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> data->internal.out = Down;</div>
|
||||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
|
||||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="keyword">static</span> State transitionHandler(UpDebouncing, MultiDownWaiting)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> data->internal.out = Idle;</div>
|
||||
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> data->internal.countMultiDown++;</div>
|
||||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span>}</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
|
||||
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="keyword">static</span> State transitionHandler(MultiDownDebouncing, MultiDowning)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">switch</span> (data->internal.countMultiDown + 1)</div>
|
||||
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> {</div>
|
||||
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">case</span> 2:</div>
|
||||
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> data->internal.out = Down_2times;</div>
|
||||
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">case</span> 3:</div>
|
||||
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> data->internal.out = Down_3times;</div>
|
||||
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
|
||||
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">default</span>:</div>
|
||||
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> printf(<span class="stringliteral">"reach MultiDown Limit!\n"</span>);</div>
|
||||
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> }</div>
|
||||
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> FSM_LOG(<span class="stringliteral">" 多击%d "</span>, data->internal.countMultiDown+1);</div>
|
||||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
|
||||
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
|
||||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
|
||||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="keyword">static</span> State transitionHandler(Downing, Holding)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> data->internal.out = Hold;</div>
|
||||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span>}</div>
|
||||
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
|
||||
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="keyword">static</span> State transitionHandler(MultiDownWaiting, Waiting)(KeyFSMData* data){</div>
|
||||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> data->internal.countMultiDown = 0;</div>
|
||||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>}</div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
|
||||
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
|
||||
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="comment">/* </span></div>
|
||||
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="comment"> 用户自定义事件选择逻辑—————————————————begin </span></div>
|
||||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="comment">*/</span></div>
|
||||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">char</span> *stateStr[] = {</div>
|
||||
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="stringliteral">"Idle"</span>,</div>
|
||||
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="stringliteral">"Waiting"</span>,</div>
|
||||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="stringliteral">"DownDebouncing"</span>,</div>
|
||||
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="stringliteral">"Downing"</span>,</div>
|
||||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="stringliteral">"Holding"</span>,</div>
|
||||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="stringliteral">"HoldUpDebouncing"</span>,</div>
|
||||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="stringliteral">"UpDebouncing"</span>,</div>
|
||||
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="stringliteral">"MultiDownWaiting"</span>,</div>
|
||||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="stringliteral">"MultiDowning"</span>,</div>
|
||||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="stringliteral">"MultiDownDebouncing"</span>,</div>
|
||||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> };</div>
|
||||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
|
||||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="keyword">static</span> <span class="keywordtype">void</span> printFSM(KeyFSM* pFSM){</div>
|
||||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> KeyFSMData* data = pFSM->base.data;</div>
|
||||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> FSM_LOG(<span class="stringliteral">"KeyFSM: "</span>);</div>
|
||||
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> FSM_LOG(<span class="stringliteral">"%d, 当前状态:%s, \t上一个下次事件:%s \t转移:"</span>, data->internal.countDelay, stateStr[getFSMCurState((FSM *)pFSM)], stateStr[getFSMNextState((FSM *)pFSM)]);</div>
|
||||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span>}</div>
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
|
||||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="a_f_s_m__protected_8h_html"><div class="ttname"><a href="_f_s_m__protected_8h.html">FSM_protected.h</a></div><div class="ttdoc">状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_8a682e2342309b53ef6d16f9472268bd.html">keytest</a></li><li class="navelem"><b>keyFSM_private.h</b></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 5.5 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
|
||||
<rect style="fill:#fcfcfc;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
|
||||
<rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 582 B |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
|
||||
<rect style="fill:#000000;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
|
||||
<rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 582 B |
After Width: | Height: | Size: 153 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 114 B |
|
@ -0,0 +1,149 @@
|
|||
#nav-tree .children_ul {
|
||||
margin:0;
|
||||
padding:4px;
|
||||
}
|
||||
|
||||
#nav-tree ul {
|
||||
list-style:none outside none;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree li {
|
||||
white-space:nowrap;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree .plus {
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
#nav-tree .selected {
|
||||
background-image: url('tab_a.png');
|
||||
background-repeat:repeat-x;
|
||||
color: var(--nav-text-active-color);
|
||||
text-shadow: var(--nav-text-active-shadow);
|
||||
}
|
||||
|
||||
#nav-tree .selected .arrow {
|
||||
color: var(--nav-arrow-selected-color);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
#nav-tree img {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border:0px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#nav-tree a {
|
||||
text-decoration:none;
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
#nav-tree .label {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
font: 12px var(--font-family-nav);
|
||||
}
|
||||
|
||||
#nav-tree .label a {
|
||||
padding:2px;
|
||||
}
|
||||
|
||||
#nav-tree .selected a {
|
||||
text-decoration:none;
|
||||
color:var(--nav-text-active-color);
|
||||
}
|
||||
|
||||
#nav-tree .children_ul {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree .item {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree {
|
||||
padding: 0px 0px;
|
||||
font-size:14px;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#doc-content {
|
||||
overflow:auto;
|
||||
display:block;
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
-webkit-overflow-scrolling : touch; /* iOS 5+ */
|
||||
}
|
||||
|
||||
#side-nav {
|
||||
padding:0 6px 0 0;
|
||||
margin: 0px;
|
||||
display:block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
width: $width;
|
||||
overflow : hidden;
|
||||
}
|
||||
|
||||
.ui-resizable .ui-resizable-handle {
|
||||
display:block;
|
||||
}
|
||||
|
||||
.ui-resizable-e {
|
||||
background-image:var(--nav-splitbar-image);
|
||||
background-size:100%;
|
||||
background-repeat:repeat-y;
|
||||
background-attachment: scroll;
|
||||
cursor:ew-resize;
|
||||
height:100%;
|
||||
right:0;
|
||||
top:0;
|
||||
width:6px;
|
||||
}
|
||||
|
||||
.ui-resizable-handle {
|
||||
display:none;
|
||||
font-size:0.1px;
|
||||
position:absolute;
|
||||
z-index:1;
|
||||
}
|
||||
|
||||
#nav-tree-contents {
|
||||
margin: 6px 0px 0px 0px;
|
||||
}
|
||||
|
||||
#nav-tree {
|
||||
background-repeat:repeat-x;
|
||||
background-color: var(--nav-background-color);
|
||||
-webkit-overflow-scrolling : touch; /* iOS 5+ */
|
||||
}
|
||||
|
||||
#nav-sync {
|
||||
position:absolute;
|
||||
top:5px;
|
||||
right:24px;
|
||||
z-index:0;
|
||||
}
|
||||
|
||||
#nav-sync img {
|
||||
opacity:0.3;
|
||||
}
|
||||
|
||||
#nav-sync img:hover {
|
||||
opacity:0.9;
|
||||
}
|
||||
|
||||
@media print
|
||||
{
|
||||
#nav-tree { display: none; }
|
||||
div.ui-resizable-handle { display: none; position: relative; }
|
||||
}
|
||||
|
|
@ -0,0 +1,482 @@
|
|||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
|
||||
function initNavTree(toroot,relpath) {
|
||||
let navTreeSubIndices = [];
|
||||
const ARROW_DOWN = '▼';
|
||||
const ARROW_RIGHT = '►';
|
||||
const NAVPATH_COOKIE_NAME = ''+'navpath';
|
||||
|
||||
const getData = function(varName) {
|
||||
const i = varName.lastIndexOf('/');
|
||||
const n = i>=0 ? varName.substring(i+1) : varName;
|
||||
return eval(n.replace(/-/g,'_'));
|
||||
}
|
||||
|
||||
const stripPath = function(uri) {
|
||||
return uri.substring(uri.lastIndexOf('/')+1);
|
||||
}
|
||||
|
||||
const stripPath2 = function(uri) {
|
||||
const i = uri.lastIndexOf('/');
|
||||
const s = uri.substring(i+1);
|
||||
const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
|
||||
return m ? uri.substring(i-6) : s;
|
||||
}
|
||||
|
||||
const hashValue = function() {
|
||||
return $(location).attr('hash').substring(1).replace(/[^\w-]/g,'');
|
||||
}
|
||||
|
||||
const hashUrl = function() {
|
||||
return '#'+hashValue();
|
||||
}
|
||||
|
||||
const pathName = function() {
|
||||
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, '');
|
||||
}
|
||||
|
||||
const storeLink = function(link) {
|
||||
if (!$("#nav-sync").hasClass('sync')) {
|
||||
Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0);
|
||||
}
|
||||
}
|
||||
|
||||
const deleteLink = function() {
|
||||
Cookie.eraseSetting(NAVPATH_COOKIE_NAME);
|
||||
}
|
||||
|
||||
const cachedLink = function() {
|
||||
return Cookie.readSetting(NAVPATH_COOKIE_NAME,'');
|
||||
}
|
||||
|
||||
const getScript = function(scriptName,func) {
|
||||
const head = document.getElementsByTagName("head")[0];
|
||||
const script = document.createElement('script');
|
||||
script.id = scriptName;
|
||||
script.type = 'text/javascript';
|
||||
script.onload = func;
|
||||
script.src = scriptName+'.js';
|
||||
head.appendChild(script);
|
||||
}
|
||||
|
||||
const createIndent = function(o,domNode,node) {
|
||||
let level=-1;
|
||||
let n = node;
|
||||
while (n.parentNode) { level++; n=n.parentNode; }
|
||||
if (node.childrenData) {
|
||||
const imgNode = document.createElement("span");
|
||||
imgNode.className = 'arrow';
|
||||
imgNode.style.paddingLeft=(16*level).toString()+'px';
|
||||
imgNode.innerHTML=ARROW_RIGHT;
|
||||
node.plus_img = imgNode;
|
||||
node.expandToggle = document.createElement("a");
|
||||
node.expandToggle.href = "javascript:void(0)";
|
||||
node.expandToggle.onclick = function() {
|
||||
if (node.expanded) {
|
||||
$(node.getChildrenUL()).slideUp("fast");
|
||||
node.plus_img.innerHTML=ARROW_RIGHT;
|
||||
node.expanded = false;
|
||||
} else {
|
||||
expandNode(o, node, false, true);
|
||||
}
|
||||
}
|
||||
node.expandToggle.appendChild(imgNode);
|
||||
domNode.appendChild(node.expandToggle);
|
||||
} else {
|
||||
let span = document.createElement("span");
|
||||
span.className = 'arrow';
|
||||
span.style.width = 16*(level+1)+'px';
|
||||
span.innerHTML = ' ';
|
||||
domNode.appendChild(span);
|
||||
}
|
||||
}
|
||||
|
||||
let animationInProgress = false;
|
||||
|
||||
const gotoAnchor = function(anchor,aname) {
|
||||
let pos, docContent = $('#doc-content');
|
||||
let ancParent = $(anchor.parent());
|
||||
if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') ||
|
||||
ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') ||
|
||||
ancParent.is(':header')) {
|
||||
pos = ancParent.position().top;
|
||||
} else if (anchor.position()) {
|
||||
pos = anchor.position().top;
|
||||
}
|
||||
if (pos) {
|
||||
const dcOffset = docContent.offset().top;
|
||||
const dcHeight = docContent.height();
|
||||
const dcScrHeight = docContent[0].scrollHeight
|
||||
const dcScrTop = docContent.scrollTop();
|
||||
let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop));
|
||||
animationInProgress = true;
|
||||
docContent.animate({
|
||||
scrollTop: pos + dcScrTop - dcOffset
|
||||
},Math.max(50,Math.min(500,dist)),function() {
|
||||
window.location.href=aname;
|
||||
animationInProgress=false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const newNode = function(o, po, text, link, childrenData, lastNode) {
|
||||
const node = {
|
||||
children : [],
|
||||
childrenData : childrenData,
|
||||
depth : po.depth + 1,
|
||||
relpath : po.relpath,
|
||||
isLast : lastNode,
|
||||
li : document.createElement("li"),
|
||||
parentNode : po,
|
||||
itemDiv : document.createElement("div"),
|
||||
labelSpan : document.createElement("span"),
|
||||
label : document.createTextNode(text),
|
||||
expanded : false,
|
||||
childrenUL : null,
|
||||
getChildrenUL : function() {
|
||||
if (!this.childrenUL) {
|
||||
this.childrenUL = document.createElement("ul");
|
||||
this.childrenUL.className = "children_ul";
|
||||
this.childrenUL.style.display = "none";
|
||||
this.li.appendChild(node.childrenUL);
|
||||
}
|
||||
return node.childrenUL;
|
||||
},
|
||||
};
|
||||
|
||||
node.itemDiv.className = "item";
|
||||
node.labelSpan.className = "label";
|
||||
createIndent(o,node.itemDiv,node);
|
||||
node.itemDiv.appendChild(node.labelSpan);
|
||||
node.li.appendChild(node.itemDiv);
|
||||
|
||||
const a = document.createElement("a");
|
||||
node.labelSpan.appendChild(a);
|
||||
po.getChildrenUL().appendChild(node.li);
|
||||
a.appendChild(node.label);
|
||||
if (link) {
|
||||
let url;
|
||||
if (link.substring(0,1)=='^') {
|
||||
url = link.substring(1);
|
||||
link = url;
|
||||
} else {
|
||||
url = node.relpath+link;
|
||||
}
|
||||
a.className = stripPath(link.replace('#',':'));
|
||||
if (link.indexOf('#')!=-1) {
|
||||
const aname = '#'+link.split('#')[1];
|
||||
const srcPage = stripPath(pathName());
|
||||
const targetPage = stripPath(link.split('#')[0]);
|
||||
a.href = srcPage!=targetPage ? url : aname;
|
||||
a.onclick = function() {
|
||||
storeLink(link);
|
||||
aPPar = $(a).parent().parent();
|
||||
if (!aPPar.hasClass('selected')) {
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
aPPar.addClass('selected');
|
||||
aPPar.attr('id','selected');
|
||||
}
|
||||
const anchor = $(aname);
|
||||
gotoAnchor(anchor,aname);
|
||||
};
|
||||
} else {
|
||||
a.href = url;
|
||||
a.onclick = () => storeLink(link);
|
||||
}
|
||||
} else if (childrenData != null) {
|
||||
a.className = "nolink";
|
||||
a.href = "javascript:void(0)";
|
||||
a.onclick = node.expandToggle.onclick;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
const showRoot = function() {
|
||||
const headerHeight = $("#top").height();
|
||||
const footerHeight = $("#nav-path").height();
|
||||
const windowHeight = $(window).height() - headerHeight - footerHeight;
|
||||
(function() { // retry until we can scroll to the selected item
|
||||
try {
|
||||
const navtree=$('#nav-tree');
|
||||
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
|
||||
} catch (err) {
|
||||
setTimeout(arguments.callee, 0);
|
||||
}
|
||||
})();
|
||||
}
|
||||
|
||||
const expandNode = function(o, node, imm, setFocus) {
|
||||
if (node.childrenData && !node.expanded) {
|
||||
if (typeof(node.childrenData)==='string') {
|
||||
const varName = node.childrenData;
|
||||
getScript(node.relpath+varName,function() {
|
||||
node.childrenData = getData(varName);
|
||||
expandNode(o, node, imm, setFocus);
|
||||
});
|
||||
} else {
|
||||
if (!node.childrenVisited) {
|
||||
getNode(o, node);
|
||||
}
|
||||
$(node.getChildrenUL()).slideDown("fast");
|
||||
node.plus_img.innerHTML = ARROW_DOWN;
|
||||
node.expanded = true;
|
||||
if (setFocus) {
|
||||
$(node.expandToggle).focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const glowEffect = function(n,duration) {
|
||||
n.addClass('glow').delay(duration).queue(function(next) {
|
||||
$(this).removeClass('glow');next();
|
||||
});
|
||||
}
|
||||
|
||||
const highlightAnchor = function() {
|
||||
const aname = hashUrl();
|
||||
const anchor = $(aname);
|
||||
if (anchor.parent().attr('class')=='memItemLeft') {
|
||||
let rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
|
||||
glowEffect(rows.children(),300); // member without details
|
||||
} else if (anchor.parent().attr('class')=='fieldname') {
|
||||
glowEffect(anchor.parent().parent(),1000); // enum value
|
||||
} else if (anchor.parent().attr('class')=='fieldtype') {
|
||||
glowEffect(anchor.parent().parent(),1000); // struct field
|
||||
} else if (anchor.parent().is(":header")) {
|
||||
glowEffect(anchor.parent(),1000); // section header
|
||||
} else {
|
||||
glowEffect(anchor.next(),1000); // normal member
|
||||
}
|
||||
gotoAnchor(anchor,aname);
|
||||
}
|
||||
|
||||
const selectAndHighlight = function(hash,n) {
|
||||
let a;
|
||||
if (hash) {
|
||||
const link=stripPath(pathName())+':'+hash.substring(1);
|
||||
a=$('.item a[class$="'+link+'"]');
|
||||
}
|
||||
if (a && a.length) {
|
||||
a.parent().parent().addClass('selected');
|
||||
a.parent().parent().attr('id','selected');
|
||||
highlightAnchor();
|
||||
} else if (n) {
|
||||
$(n.itemDiv).addClass('selected');
|
||||
$(n.itemDiv).attr('id','selected');
|
||||
}
|
||||
let topOffset=5;
|
||||
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
|
||||
topOffset+=25;
|
||||
}
|
||||
$('#nav-sync').css('top',topOffset+'px');
|
||||
showRoot();
|
||||
}
|
||||
|
||||
const showNode = function(o, node, index, hash) {
|
||||
if (node && node.childrenData) {
|
||||
if (typeof(node.childrenData)==='string') {
|
||||
const varName = node.childrenData;
|
||||
getScript(node.relpath+varName,function() {
|
||||
node.childrenData = getData(varName);
|
||||
showNode(o,node,index,hash);
|
||||
});
|
||||
} else {
|
||||
if (!node.childrenVisited) {
|
||||
getNode(o, node);
|
||||
}
|
||||
$(node.getChildrenUL()).css({'display':'block'});
|
||||
node.plus_img.innerHTML = ARROW_DOWN;
|
||||
node.expanded = true;
|
||||
const n = node.children[o.breadcrumbs[index]];
|
||||
if (index+1<o.breadcrumbs.length) {
|
||||
showNode(o,n,index+1,hash);
|
||||
} else if (typeof(n.childrenData)==='string') {
|
||||
const varName = n.childrenData;
|
||||
getScript(n.relpath+varName,function() {
|
||||
n.childrenData = getData(varName);
|
||||
node.expanded=false;
|
||||
showNode(o,node,index,hash); // retry with child node expanded
|
||||
});
|
||||
} else {
|
||||
const rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
|
||||
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
|
||||
expandNode(o, n, true, false);
|
||||
}
|
||||
selectAndHighlight(hash,n);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
selectAndHighlight(hash);
|
||||
}
|
||||
}
|
||||
|
||||
const removeToInsertLater = function(element) {
|
||||
const parentNode = element.parentNode;
|
||||
const nextSibling = element.nextSibling;
|
||||
parentNode.removeChild(element);
|
||||
return function() {
|
||||
if (nextSibling) {
|
||||
parentNode.insertBefore(element, nextSibling);
|
||||
} else {
|
||||
parentNode.appendChild(element);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const getNode = function(o, po) {
|
||||
const insertFunction = removeToInsertLater(po.li);
|
||||
po.childrenVisited = true;
|
||||
const l = po.childrenData.length-1;
|
||||
for (let i in po.childrenData) {
|
||||
const nodeData = po.childrenData[i];
|
||||
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], i==l);
|
||||
}
|
||||
insertFunction();
|
||||
}
|
||||
|
||||
const gotoNode = function(o,subIndex,root,hash,relpath) {
|
||||
const nti = navTreeSubIndices[subIndex][root+hash];
|
||||
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
|
||||
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
|
||||
navTo(o,NAVTREE[0][1],"",relpath);
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
}
|
||||
if (o.breadcrumbs) {
|
||||
o.breadcrumbs.unshift(0); // add 0 for root node
|
||||
showNode(o, o.node, 0, hash);
|
||||
}
|
||||
}
|
||||
|
||||
const navTo = function(o,root,hash,relpath) {
|
||||
const link = cachedLink();
|
||||
if (link) {
|
||||
const parts = link.split('#');
|
||||
root = parts[0];
|
||||
hash = parts.length>1 ? '#'+parts[1].replace(/[^\w-]/g,'') : '';
|
||||
}
|
||||
if (hash.match(/^#l\d+$/)) {
|
||||
const anchor=$('a[name='+hash.substring(1)+']');
|
||||
glowEffect(anchor.parent(),1000); // line number
|
||||
hash=''; // strip line number anchors
|
||||
}
|
||||
const url=root+hash;
|
||||
let i=-1;
|
||||
while (NAVTREEINDEX[i+1]<=url) i++;
|
||||
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
|
||||
if (navTreeSubIndices[i]) {
|
||||
gotoNode(o,i,root,hash,relpath)
|
||||
} else {
|
||||
getScript(relpath+'navtreeindex'+i,function() {
|
||||
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
|
||||
if (navTreeSubIndices[i]) {
|
||||
gotoNode(o,i,root,hash,relpath);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const showSyncOff = function(n,relpath) {
|
||||
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
|
||||
}
|
||||
|
||||
const showSyncOn = function(n,relpath) {
|
||||
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
|
||||
}
|
||||
|
||||
const o = {
|
||||
toroot : toroot,
|
||||
node : {
|
||||
childrenData : NAVTREE,
|
||||
children : [],
|
||||
childrenUL : document.createElement("ul"),
|
||||
getChildrenUL : function() { return this.childrenUL },
|
||||
li : document.getElementById("nav-tree-contents"),
|
||||
depth : 0,
|
||||
relpath : relpath,
|
||||
expanded : false,
|
||||
isLast : true,
|
||||
plus_img : document.createElement("span"),
|
||||
},
|
||||
};
|
||||
o.node.li.appendChild(o.node.childrenUL);
|
||||
o.node.plus_img.className = 'arrow';
|
||||
o.node.plus_img.innerHTML = ARROW_RIGHT;
|
||||
|
||||
const navSync = $('#nav-sync');
|
||||
if (cachedLink()) {
|
||||
showSyncOff(navSync,relpath);
|
||||
navSync.removeClass('sync');
|
||||
} else {
|
||||
showSyncOn(navSync,relpath);
|
||||
}
|
||||
|
||||
navSync.click(() => {
|
||||
const navSync = $('#nav-sync');
|
||||
if (navSync.hasClass('sync')) {
|
||||
navSync.removeClass('sync');
|
||||
showSyncOff(navSync,relpath);
|
||||
storeLink(stripPath2(pathName())+hashUrl());
|
||||
} else {
|
||||
navSync.addClass('sync');
|
||||
showSyncOn(navSync,relpath);
|
||||
deleteLink();
|
||||
}
|
||||
});
|
||||
|
||||
navTo(o,toroot,hashUrl(),relpath);
|
||||
showRoot();
|
||||
|
||||
$(window).bind('hashchange', () => {
|
||||
if (window.location.hash && window.location.hash.length>1) {
|
||||
let a;
|
||||
if ($(location).attr('hash')) {
|
||||
const clslink=stripPath(pathName())+':'+hashValue();
|
||||
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
|
||||
}
|
||||
if (a==null || !$(a).parent().parent().hasClass('selected')) {
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
}
|
||||
const link=stripPath2(pathName());
|
||||
navTo(o,link,hashUrl(),relpath);
|
||||
} else if (!animationInProgress) {
|
||||
$('#doc-content').scrollTop(0);
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
navTo(o,toroot,hashUrl(),relpath);
|
||||
}
|
||||
});
|
||||
|
||||
$("div.toc a[href]").click(function(e) {
|
||||
e.preventDefault();
|
||||
const aname = $(this).attr("href");
|
||||
gotoAnchor($(aname),aname);
|
||||
});
|
||||
}
|
||||
/* @license-end */
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
var NAVTREE =
|
||||
[
|
||||
[ "状态机框架", "index.html", [
|
||||
[ "Deprecated List", "deprecated.html", null ],
|
||||
[ "Data Structures", "annotated.html", [
|
||||
[ "Data Structures", "annotated.html", "annotated_dup" ],
|
||||
[ "Data Structure Index", "classes.html", null ],
|
||||
[ "Data Fields", "functions.html", [
|
||||
[ "All", "functions.html", null ],
|
||||
[ "Variables", "functions_vars.html", null ]
|
||||
] ]
|
||||
] ],
|
||||
[ "Files", "files.html", [
|
||||
[ "File List", "files.html", "files_dup" ],
|
||||
[ "Globals", "globals.html", [
|
||||
[ "All", "globals.html", null ],
|
||||
[ "Functions", "globals_func.html", null ],
|
||||
[ "Typedefs", "globals_type.html", null ],
|
||||
[ "Macros", "globals_defs.html", null ]
|
||||
] ]
|
||||
] ]
|
||||
] ]
|
||||
];
|
||||
|
||||
var NAVTREEINDEX =
|
||||
[
|
||||
"_f_s_m__private_8h.html"
|
||||
];
|
||||
|
||||
var SYNCONMSG = 'click to disable panel synchronisation';
|
||||
var SYNCOFFMSG = 'click to enable panel synchronisation';
|
|
@ -0,0 +1,61 @@
|
|||
var NAVTREEINDEX0 =
|
||||
{
|
||||
"_f_s_m__private_8h.html":[2,0,0,0,0],
|
||||
"_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba":[2,0,0,0,0,2],
|
||||
"_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9":[2,0,0,0,0,5],
|
||||
"_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432":[2,0,0,0,0,4],
|
||||
"_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f":[2,0,0,0,0,3],
|
||||
"_f_s_m__private_8h_source.html":[2,0,0,0,0],
|
||||
"_f_s_m__protected_8h.html":[2,0,0,0,1],
|
||||
"_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba":[2,0,0,0,1,4],
|
||||
"_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037":[2,0,0,0,1,6],
|
||||
"_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb":[2,0,0,0,1,7],
|
||||
"_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f":[2,0,0,0,1,5],
|
||||
"_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e":[2,0,0,0,1,3],
|
||||
"_f_s_m__protected_8h_source.html":[2,0,0,0,1],
|
||||
"_f_s_m__public_8h_source.html":[2,0,0,0,2],
|
||||
"annotated.html":[1,0],
|
||||
"child_f_s_m_8h_source.html":[2,0,0,1,0],
|
||||
"child_f_s_m__private_8h_source.html":[2,0,0,1,1],
|
||||
"classes.html":[1,1],
|
||||
"deprecated.html":[0],
|
||||
"dir_7883619b7fc78d5d5f504b4a82c84a2d.html":[2,0,0,3],
|
||||
"dir_80fe18a48ef62b4daee0a25030c2866c.html":[2,0,0,0],
|
||||
"dir_8a682e2342309b53ef6d16f9472268bd.html":[2,0,0,2],
|
||||
"dir_b967bec748219e2f7c7f19a67051e0d6.html":[2,0,0,1],
|
||||
"dir_d39bfbf75725f6289f30e50b2f1305f4.html":[2,0,0],
|
||||
"files.html":[2,0],
|
||||
"functions.html":[1,2,0],
|
||||
"functions_vars.html":[1,2,1],
|
||||
"globals.html":[2,1,0],
|
||||
"globals_defs.html":[2,1,3],
|
||||
"globals_func.html":[2,1,1],
|
||||
"globals_type.html":[2,1,2],
|
||||
"index.html":[],
|
||||
"key_f_s_m_8h_source.html":[2,0,0,2,0],
|
||||
"key_f_s_m__private_8h_source.html":[2,0,0,2,1],
|
||||
"pages.html":[],
|
||||
"parent_f_s_m_8h_source.html":[2,0,0,1,2],
|
||||
"struct__template_f_s_m_external_data.html":[1,0,0],
|
||||
"struct__template_f_s_m_inner_data.html":[1,0,1],
|
||||
"struct_f_s_m_data_loader.html":[1,0,2],
|
||||
"struct_f_s_m_handler.html":[1,0,3],
|
||||
"struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451":[1,0,3,0],
|
||||
"struct_f_s_m_private_vars.html":[1,0,4],
|
||||
"struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c":[1,0,4,1],
|
||||
"struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe":[1,0,4,0],
|
||||
"struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1":[1,0,4,3],
|
||||
"struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7":[1,0,4,2],
|
||||
"struct_f_s_m_pure_vtbl.html":[1,0,5],
|
||||
"struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1":[1,0,5,1],
|
||||
"struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d":[1,0,5,2],
|
||||
"struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8":[1,0,5,4],
|
||||
"struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d":[1,0,5,0],
|
||||
"struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1":[1,0,5,5],
|
||||
"struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472":[1,0,5,3],
|
||||
"struct_f_s_m_signals.html":[1,0,6],
|
||||
"struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d":[1,0,6,1],
|
||||
"struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c":[1,0,6,0],
|
||||
"template_f_s_m_8h_source.html":[2,0,0,3,0],
|
||||
"template_f_s_m__private_8h_source.html":[2,0,0,3,1]
|
||||
};
|
After Width: | Height: | Size: 123 B |
|
@ -0,0 +1,119 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: Related Pages</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('pages.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">Related Pages</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,130 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.10.0"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>状态机框架: FSM_OOP/childtest/parentFSM.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
|
||||
<td id="projectalign">
|
||||
<div id="projectname">状态机框架<span id="projectnumber"> 0.1alpha</span>
|
||||
</div>
|
||||
<div id="projectbrief">by 天神</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.10.0 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){initNavTree('parent_f_s_m_8h_source.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">parentFSM.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef __PARENT_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define __PARENT_FSM_H_</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#define ParentFSM_Input(pFSM) ((ParentFSMData *)_preloadIn((FSM *)pFSM))</span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_parentFSMData</div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span>{</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> <span class="keywordtype">int</span> arrindex;</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span>}ParentFSMData;</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_ParentFSM ParentFSM;</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span>ParentFSM *createParentFSM();</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#endif</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d39bfbf75725f6289f30e50b2f1305f4.html">FSM_OOP</a></li><li class="navelem"><a class="el" href="dir_b967bec748219e2f7c7f19a67051e0d6.html">childtest</a></li><li class="navelem"><b>parentFSM.h</b></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
|
||||
<rect style="fill:#fcfcfc;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
|
||||
<rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
|
||||
<rect style="fill:#808080;stroke-width:0" width="15.874998" height="52.916668" x="44.979168" y="26.458332" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 696 B |
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
|
||||
<rect style="fill:#000000;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
|
||||
<rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
|
||||
<rect style="fill:#808080;stroke-width:0" width="15.874998" height="52.916668" x="44.979168" y="26.458332" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 696 B |
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
|
||||
function initResizable() {
|
||||
let sidenav,navtree,content,header,footer,barWidth=6;
|
||||
const RESIZE_COOKIE_NAME = ''+'width';
|
||||
|
||||
function resizeWidth() {
|
||||
const sidenavWidth = $(sidenav).outerWidth();
|
||||
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||
footer.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||
}
|
||||
Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth);
|
||||
}
|
||||
|
||||
function restoreWidth(navWidth) {
|
||||
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||
footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||
}
|
||||
sidenav.css({width:navWidth + "px"});
|
||||
}
|
||||
|
||||
function resizeHeight() {
|
||||
const headerHeight = header.outerHeight();
|
||||
const footerHeight = footer.outerHeight();
|
||||
const windowHeight = $(window).height();
|
||||
let contentHeight,navtreeHeight,sideNavHeight;
|
||||
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
|
||||
contentHeight = windowHeight - headerHeight - footerHeight;
|
||||
navtreeHeight = contentHeight;
|
||||
sideNavHeight = contentHeight;
|
||||
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
|
||||
contentHeight = windowHeight - footerHeight;
|
||||
navtreeHeight = windowHeight - headerHeight;
|
||||
sideNavHeight = windowHeight;
|
||||
}
|
||||
content.css({height:contentHeight + "px"});
|
||||
navtree.css({height:navtreeHeight + "px"});
|
||||
sidenav.css({height:sideNavHeight + "px"});
|
||||
if (location.hash.slice(1)) {
|
||||
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
|
||||
}
|
||||
}
|
||||
|
||||
function collapseExpand() {
|
||||
let newWidth;
|
||||
if (sidenav.width()>0) {
|
||||
newWidth=0;
|
||||
} else {
|
||||
const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250);
|
||||
newWidth = (width>250 && width<$(window).width()) ? width : 250;
|
||||
}
|
||||
restoreWidth(newWidth);
|
||||
const sidenavWidth = $(sidenav).outerWidth();
|
||||
Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth);
|
||||
}
|
||||
|
||||
header = $("#top");
|
||||
sidenav = $("#side-nav");
|
||||
content = $("#doc-content");
|
||||
navtree = $("#nav-tree");
|
||||
footer = $("#nav-path");
|
||||
$(".side-nav-resizable").resizable({resize: () => resizeWidth() });
|
||||
$(sidenav).resizable({ minWidth: 0 });
|
||||
$(window).resize(() => resizeHeight());
|
||||
const device = navigator.userAgent.toLowerCase();
|
||||
const touch_device = device.match(/(iphone|ipod|ipad|android)/);
|
||||
if (touch_device) { /* wider split bar for touch only devices */
|
||||
$(sidenav).css({ paddingRight:'20px' });
|
||||
$('.ui-resizable-e').css({ width:'20px' });
|
||||
$('#nav-sync').css({ right:'34px' });
|
||||
barWidth=20;
|
||||
}
|
||||
const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250);
|
||||
if (width) { restoreWidth(width); } else { resizeWidth(); }
|
||||
resizeHeight();
|
||||
const url = location.href;
|
||||
const i=url.indexOf("#");
|
||||
if (i>=0) window.location.hash=url.substr(i);
|
||||
const _preventDefault = (evt) => evt.preventDefault();
|
||||
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
|
||||
$(".ui-resizable-handle").dblclick(collapseExpand);
|
||||
$(window).on('load',resizeHeight);
|
||||
}
|
||||
/* @license-end */
|
|
@ -0,0 +1,5 @@
|
|||
var searchData=
|
||||
[
|
||||
['_5ftemplatefsmexternaldata_0',['_templateFSMExternalData',['../struct__template_f_s_m_external_data.html',1,'']]],
|
||||
['_5ftemplatefsminnerdata_1',['_templateFSMInnerData',['../struct__template_f_s_m_inner_data.html',1,'']]]
|
||||
];
|
|
@ -0,0 +1,5 @@
|
|||
var searchData=
|
||||
[
|
||||
['defaultstate_0',['defaultState',['../struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe',1,'FSMPrivateVars']]],
|
||||
['deprecated_20list_1',['Deprecated List',['../deprecated.html',1,'']]]
|
||||
];
|
|
@ -0,0 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['external_0',['external',['../struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c',1,'FSMSignals']]]
|
||||
];
|
|
@ -0,0 +1,10 @@
|
|||
var searchData=
|
||||
[
|
||||
['fsm_5fprivate_2eh_0',['FSM_private.h',['../_f_s_m__private_8h.html',1,'']]],
|
||||
['fsm_5fprotected_2eh_1',['FSM_protected.h',['../_f_s_m__protected_8h.html',1,'']]],
|
||||
['fsmdataloader_2',['FSMDataLoader',['../struct_f_s_m_data_loader.html',1,'FSMDataLoader'],['../_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432',1,'FSMDataLoader: FSM_private.h']]],
|
||||
['fsmhandler_3',['FSMHandler',['../struct_f_s_m_handler.html',1,'FSMHandler'],['../_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba',1,'FSMHandler: FSM_private.h'],['../_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba',1,'FSMHandler: FSM_protected.h']]],
|
||||
['fsmprivatevars_4',['FSMPrivateVars',['../struct_f_s_m_private_vars.html',1,'FSMPrivateVars'],['../_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9',1,'FSMPrivateVars: FSM_private.h']]],
|
||||
['fsmpurevtbl_5',['FSMPureVtbl',['../struct_f_s_m_pure_vtbl.html',1,'FSMPureVtbl'],['../_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037',1,'FSMPureVtbl: FSM_protected.h']]],
|
||||
['fsmsignals_6',['FSMSignals',['../struct_f_s_m_signals.html',1,'FSMSignals'],['../_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f',1,'FSMSignals: FSM_private.h'],['../_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f',1,'FSMSignals: FSM_protected.h']]]
|
||||
];
|
|
@ -0,0 +1,8 @@
|
|||
var searchData=
|
||||
[
|
||||
['idle_5fsignal_0',['Idle_Signal',['../_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e',1,'FSM_protected.h']]],
|
||||
['index_1',['index',['../struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7',1,'FSMPrivateVars']]],
|
||||
['initdata_2',['initData',['../struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1',1,'FSMPureVtbl']]],
|
||||
['initdataloader_3',['initDataLoader',['../struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472',1,'FSMPureVtbl']]],
|
||||
['initsignals_4',['initSignals',['../struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8',1,'FSMPureVtbl']]]
|
||||
];
|
|
@ -0,0 +1,6 @@
|
|||
var searchData=
|
||||
[
|
||||
['lasttriggeredsignal_0',['lastTriggeredSignal',['../struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d',1,'FSMSignals']]],
|
||||
['list_1',['Deprecated List',['../deprecated.html',1,'']]],
|
||||
['loadexternaldata_2',['loadExternalData',['../struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d',1,'FSMPureVtbl']]]
|
||||
];
|
|
@ -0,0 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['nextstate_0',['nextState',['../struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c',1,'FSMPrivateVars']]]
|
||||
];
|
|
@ -0,0 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['preloader_0',['preloader',['../struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1',1,'FSMPrivateVars']]]
|
||||
];
|
|
@ -0,0 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['resetsignals_0',['resetSignals',['../struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1',1,'FSMPureVtbl']]]
|
||||
];
|
|
@ -0,0 +1,6 @@
|
|||
var searchData=
|
||||
[
|
||||
['selectnextstate_0',['selectNextState',['../struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451',1,'FSMHandler']]],
|
||||
['setuphandler_1',['setupHandler',['../struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d',1,'FSMPureVtbl']]],
|
||||
['stepbasefsm_2',['stepBaseFSM',['../_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'FSM.c']]]
|
||||
];
|
|
@ -0,0 +1,5 @@
|
|||
var searchData=
|
||||
[
|
||||
['_5ftemplatefsmexternaldata_0',['_templateFSMExternalData',['../struct__template_f_s_m_external_data.html',1,'']]],
|
||||
['_5ftemplatefsminnerdata_1',['_templateFSMInnerData',['../struct__template_f_s_m_inner_data.html',1,'']]]
|
||||
];
|
|
@ -0,0 +1,8 @@
|
|||
var searchData=
|
||||
[
|
||||
['fsmdataloader_0',['FSMDataLoader',['../struct_f_s_m_data_loader.html',1,'']]],
|
||||
['fsmhandler_1',['FSMHandler',['../struct_f_s_m_handler.html',1,'']]],
|
||||
['fsmprivatevars_2',['FSMPrivateVars',['../struct_f_s_m_private_vars.html',1,'']]],
|
||||
['fsmpurevtbl_3',['FSMPureVtbl',['../struct_f_s_m_pure_vtbl.html',1,'']]],
|
||||
['fsmsignals_4',['FSMSignals',['../struct_f_s_m_signals.html',1,'']]]
|
||||
];
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 11 11"
|
||||
height="11"
|
||||
width="11"
|
||||
id="svg2"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs6" />
|
||||
<path
|
||||
id="path12"
|
||||
d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
|
||||
style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
|
||||
</svg>
|
After Width: | Height: | Size: 947 B |
|
@ -0,0 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['idle_5fsignal_0',['Idle_Signal',['../_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e',1,'FSM_protected.h']]]
|
||||
];
|
|
@ -0,0 +1,5 @@
|
|||
var searchData=
|
||||
[
|
||||
['fsm_5fprivate_2eh_0',['FSM_private.h',['../_f_s_m__private_8h.html',1,'']]],
|
||||
['fsm_5fprotected_2eh_1',['FSM_protected.h',['../_f_s_m__protected_8h.html',1,'']]]
|
||||
];
|
|
@ -0,0 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['stepbasefsm_0',['stepBaseFSM',['../_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'FSM.c']]]
|
||||
];
|