From 71eef74d4146f20c7d51b3cb40082e2ba5e5a77d Mon Sep 17 00:00:00 2001 From: godcreator02 Date: Tue, 7 May 2024 16:45:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99=E4=BA=86=E4=B8=80=E5=A0=86=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vscode/FSM_OOP/baseFSM/FSM.c | 19 +- vscode/FSM_OOP/baseFSM/FSM_private.h | 20 +- vscode/FSM_OOP/baseFSM/FSM_protected.h | 21 +- vscode/FSM_OOP/baseFSM/FSM_public.h | 29 +- vscode/FSM_OOP/template/templateFSM.c | 49 +- vscode/FSM_OOP/template/templateFSM.h | 12 + vscode/FSM_OOP/template/templateFSM_private.h | 22 +- vscode/manual/html/_f_s_m_8c.html | 338 +++ vscode/manual/html/_f_s_m_8c.js | 10 + vscode/manual/html/_f_s_m__private_8h.html | 69 +- vscode/manual/html/_f_s_m__private_8h.js | 3 +- .../html/_f_s_m__private_8h_source.html | 155 +- vscode/manual/html/_f_s_m__protected_8h.html | 28 +- .../html/_f_s_m__protected_8h_source.html | 176 +- vscode/manual/html/_f_s_m__public_8h.html | 364 +++ vscode/manual/html/_f_s_m__public_8h.js | 13 + .../manual/html/_f_s_m__public_8h_source.html | 95 +- vscode/manual/html/annotated.html | 14 +- vscode/manual/html/annotated_dup.js | 6 +- vscode/manual/html/classes.html | 6 +- vscode/manual/html/deprecated.html | 34 +- .../dir_7883619b7fc78d5d5f504b4a82c84a2d.html | 9 +- .../dir_7883619b7fc78d5d5f504b4a82c84a2d.js | 5 +- .../dir_80fe18a48ef62b4daee0a25030c2866c.html | 4 +- .../dir_80fe18a48ef62b4daee0a25030c2866c.js | 3 +- vscode/manual/html/doxygen_crawl.html | 46 +- vscode/manual/html/files.html | 28 +- vscode/manual/html/functions.html | 15 +- vscode/manual/html/functions_vars.html | 15 +- vscode/manual/html/globals.html | 80 +- vscode/manual/html/globals_defs.html | 8 + vscode/manual/html/globals_enum.html | 115 + vscode/manual/html/globals_eval.html | 116 + vscode/manual/html/globals_func.html | 16 +- vscode/manual/html/globals_type.html | 3 + vscode/manual/html/navtreedata.js | 4 +- vscode/manual/html/navtreeindex0.js | 128 +- vscode/manual/html/search/all_0.js | 7 +- vscode/manual/html/search/all_1.js | 3 +- vscode/manual/html/search/all_2.js | 7 +- vscode/manual/html/search/all_3.js | 11 +- vscode/manual/html/search/all_4.js | 7 +- vscode/manual/html/search/all_5.js | 13 +- vscode/manual/html/search/all_6.js | 3 +- vscode/manual/html/search/all_7.js | 7 +- vscode/manual/html/search/all_8.js | 4 +- vscode/manual/html/search/all_9.js | 7 +- vscode/manual/html/search/all_a.js | 6 + vscode/manual/html/search/all_b.js | 4 + vscode/manual/html/search/all_c.js | 12 + vscode/manual/html/search/all_d.js | 12 + vscode/manual/html/search/classes_0.js | 7 +- vscode/manual/html/search/classes_1.js | 7 +- vscode/manual/html/search/defines_0.js | 2 +- vscode/manual/html/search/defines_1.js | 4 + vscode/manual/html/search/defines_2.js | 5 + vscode/manual/html/search/defines_3.js | 4 + vscode/manual/html/search/defines_4.js | 4 + vscode/manual/html/search/defines_5.js | 5 + vscode/manual/html/search/defines_6.js | 4 + vscode/manual/html/search/enums_0.js | 4 + vscode/manual/html/search/enums_1.js | 4 + vscode/manual/html/search/enumvalues_0.js | 4 + vscode/manual/html/search/enumvalues_1.js | 4 + vscode/manual/html/search/enumvalues_2.js | 4 + vscode/manual/html/search/files_0.js | 6 +- vscode/manual/html/search/files_1.js | 6 + vscode/manual/html/search/functions_0.js | 5 +- vscode/manual/html/search/functions_1.js | 4 + vscode/manual/html/search/functions_2.js | 5 + vscode/manual/html/search/functions_3.js | 4 + vscode/manual/html/search/functions_4.js | 4 + vscode/manual/html/search/functions_5.js | 4 + vscode/manual/html/search/functions_6.js | 4 + vscode/manual/html/search/functions_7.js | 7 + vscode/manual/html/search/searchdata.js | 30 +- vscode/manual/html/search/typedefs_1.js | 4 + vscode/manual/html/search/typedefs_2.js | 5 + vscode/manual/html/search/variables_0.js | 2 +- vscode/manual/html/search/variables_1.js | 4 +- vscode/manual/html/search/variables_2.js | 6 +- vscode/manual/html/search/variables_3.js | 4 +- vscode/manual/html/search/variables_4.js | 2 +- vscode/manual/html/search/variables_5.js | 5 +- vscode/manual/html/search/variables_6.js | 3 +- vscode/manual/html/search/variables_7.js | 5 +- vscode/manual/html/search/variables_8.js | 4 + vscode/manual/html/search/variables_9.js | 4 + vscode/manual/html/search/variables_a.js | 5 + vscode/manual/html/search/variables_b.js | 5 + vscode/manual/html/struct_f_s_m_handler.html | 104 +- vscode/manual/html/struct_f_s_m_handler.js | 8 +- .../html/struct_f_s_m_private_vars.html | 87 +- .../manual/html/struct_f_s_m_private_vars.js | 5 + .../manual/html/struct_f_s_m_pure_vtbl.html | 14 +- vscode/manual/html/struct_f_s_m_pure_vtbl.js | 2 +- vscode/manual/html/struct_f_s_m_signals.html | 13 +- vscode/manual/html/struct_f_s_m_signals.js | 2 +- .../struct_template_f_s_m_external_data.html | 122 + .../struct_template_f_s_m_inner_data.html | 122 + vscode/manual/html/template_f_s_m_8c.html | 377 +++ vscode/manual/html/template_f_s_m_8c.js | 10 + vscode/manual/html/template_f_s_m_8h.html | 234 ++ vscode/manual/html/template_f_s_m_8h.js | 12 + .../manual/html/template_f_s_m_8h_source.html | 107 +- .../html/template_f_s_m__private_8h.html | 195 ++ .../manual/html/template_f_s_m__private_8h.js | 9 + .../template_f_s_m__private_8h_source.html | 289 +- vscode/manual/latex/_f_s_m_8c.tex | 145 + vscode/manual/latex/_f_s_m__private_8h.tex | 47 +- .../latex/_f_s_m__private_8h_source.tex | 129 +- vscode/manual/latex/_f_s_m__protected_8h.tex | 17 +- .../latex/_f_s_m__protected_8h_source.tex | 139 +- vscode/manual/latex/_f_s_m__public_8h.tex | 149 + .../manual/latex/_f_s_m__public_8h_source.tex | 91 +- vscode/manual/latex/annotated.tex | 4 +- vscode/manual/latex/deprecated.tex | 58 +- vscode/manual/latex/files.tex | 8 +- vscode/manual/latex/refman.tex | 9 +- vscode/manual/latex/struct_f_s_m_handler.tex | 53 +- .../latex/struct_f_s_m_private_vars.tex | 52 +- .../manual/latex/struct_f_s_m_pure_vtbl.tex | 10 +- vscode/manual/latex/struct_f_s_m_signals.tex | 16 +- .../struct_template_f_s_m_external_data.tex | 15 + .../struct_template_f_s_m_inner_data.tex | 15 + vscode/manual/latex/template_f_s_m_8c.tex | 151 + vscode/manual/latex/template_f_s_m_8h.tex | 103 + .../manual/latex/template_f_s_m_8h_source.tex | 92 +- .../latex/template_f_s_m__private_8h.tex | 79 + .../template_f_s_m__private_8h_source.tex | 279 +- vscode/manual/rtf/refman.rtf | 2491 +++++++++++++---- 131 files changed, 6711 insertions(+), 1533 deletions(-) create mode 100644 vscode/manual/html/_f_s_m_8c.html create mode 100644 vscode/manual/html/_f_s_m_8c.js create mode 100644 vscode/manual/html/_f_s_m__public_8h.html create mode 100644 vscode/manual/html/_f_s_m__public_8h.js create mode 100644 vscode/manual/html/globals_enum.html create mode 100644 vscode/manual/html/globals_eval.html create mode 100644 vscode/manual/html/search/all_a.js create mode 100644 vscode/manual/html/search/all_b.js create mode 100644 vscode/manual/html/search/all_c.js create mode 100644 vscode/manual/html/search/all_d.js create mode 100644 vscode/manual/html/search/defines_1.js create mode 100644 vscode/manual/html/search/defines_2.js create mode 100644 vscode/manual/html/search/defines_3.js create mode 100644 vscode/manual/html/search/defines_4.js create mode 100644 vscode/manual/html/search/defines_5.js create mode 100644 vscode/manual/html/search/defines_6.js create mode 100644 vscode/manual/html/search/enums_0.js create mode 100644 vscode/manual/html/search/enums_1.js create mode 100644 vscode/manual/html/search/enumvalues_0.js create mode 100644 vscode/manual/html/search/enumvalues_1.js create mode 100644 vscode/manual/html/search/enumvalues_2.js create mode 100644 vscode/manual/html/search/files_1.js create mode 100644 vscode/manual/html/search/functions_1.js create mode 100644 vscode/manual/html/search/functions_2.js create mode 100644 vscode/manual/html/search/functions_3.js create mode 100644 vscode/manual/html/search/functions_4.js create mode 100644 vscode/manual/html/search/functions_5.js create mode 100644 vscode/manual/html/search/functions_6.js create mode 100644 vscode/manual/html/search/functions_7.js create mode 100644 vscode/manual/html/search/typedefs_1.js create mode 100644 vscode/manual/html/search/typedefs_2.js create mode 100644 vscode/manual/html/search/variables_8.js create mode 100644 vscode/manual/html/search/variables_9.js create mode 100644 vscode/manual/html/search/variables_a.js create mode 100644 vscode/manual/html/search/variables_b.js create mode 100644 vscode/manual/html/struct_template_f_s_m_external_data.html create mode 100644 vscode/manual/html/struct_template_f_s_m_inner_data.html create mode 100644 vscode/manual/html/template_f_s_m_8c.html create mode 100644 vscode/manual/html/template_f_s_m_8c.js create mode 100644 vscode/manual/html/template_f_s_m_8h.html create mode 100644 vscode/manual/html/template_f_s_m_8h.js create mode 100644 vscode/manual/html/template_f_s_m__private_8h.html create mode 100644 vscode/manual/html/template_f_s_m__private_8h.js create mode 100644 vscode/manual/latex/_f_s_m_8c.tex create mode 100644 vscode/manual/latex/_f_s_m__public_8h.tex create mode 100644 vscode/manual/latex/struct_template_f_s_m_external_data.tex create mode 100644 vscode/manual/latex/struct_template_f_s_m_inner_data.tex create mode 100644 vscode/manual/latex/template_f_s_m_8c.tex create mode 100644 vscode/manual/latex/template_f_s_m_8h.tex create mode 100644 vscode/manual/latex/template_f_s_m__private_8h.tex diff --git a/vscode/FSM_OOP/baseFSM/FSM.c b/vscode/FSM_OOP/baseFSM/FSM.c index aaac323..7acf10d 100644 --- a/vscode/FSM_OOP/baseFSM/FSM.c +++ b/vscode/FSM_OOP/baseFSM/FSM.c @@ -1,3 +1,14 @@ +/** + * @file FSM.c + * @author 天神 (dalaoshi@stu.xjtu.edu.cn) + * @brief + * @version 2.1 + * @date 2024-05-07 + * + * @copyright 天神创意无限公司 2024 + * + */ + #include #include #include @@ -8,10 +19,6 @@ #include "FSM_public.h" - - - - /* -------------------------------------------------------------------------- */ /* private函数 */ /* -------------------------------------------------------------------------- */ @@ -50,10 +57,6 @@ static inline void preload(FSM* pFSM){ pFSM->privateVars->preloader.isReady = 0; } } - - - - /* -------------------------------------------------------------------------- */ /* protected */ diff --git a/vscode/FSM_OOP/baseFSM/FSM_private.h b/vscode/FSM_OOP/baseFSM/FSM_private.h index 40c98ae..8531d7d 100644 --- a/vscode/FSM_OOP/baseFSM/FSM_private.h +++ b/vscode/FSM_OOP/baseFSM/FSM_private.h @@ -2,6 +2,7 @@ * @file FSM_private.h * @author 天神 (dalaoshi@stu.xjtu.edu.cn) * @brief 状态机框架的私有变量,只能在状态机框架内使用。 + * @details 基类私有变量对子类和外界隐藏实现,通过指针进行访问。 * @version 2.1 * @date 2024-05-07 * @@ -43,22 +44,31 @@ typedef struct FSMDataLoader */ typedef struct FSMPrivateVars { - int numState; + int numState; /**< 状态数量 */ int defaultState; /**< Idle状态不能停留,必须指定一个初始状态 */ - int curState; + int curState; /**< 当前状态 */ int nextState; /**< nextState为Idle代表状态机不发生变化 */ int index; /**< 状态转移函数表对应的标号 */ - FSMHandler fcns; + FSMHandler fcns; /**< 状态函数表 */ - int numChild; - FSM **childFSM; + int numChild; /**< @deprecated 和子状态机相关的暂时弃用 */ + FSM **childFSM; /**< @deprecated 和子状态机相关的暂时弃用 */ FSMDataLoader preloader; /**< @deprecated 弃用 */ }FSMPrivateVars; + + +/** + * @brief 仅在FSM.c中调用,新建私有变量并分配空间 + * + * @param numState + * @param defaultState + * @return FSMPrivateVars* + */ FSMPrivateVars* newFMSPrivateVars(int numState, int defaultState){ typedef void (*StateFuncPtr)(void *); typedef void (*ChildFSMStepFuncPtr)(FSM **); diff --git a/vscode/FSM_OOP/baseFSM/FSM_protected.h b/vscode/FSM_OOP/baseFSM/FSM_protected.h index 5f7fd30..de926b7 100644 --- a/vscode/FSM_OOP/baseFSM/FSM_protected.h +++ b/vscode/FSM_OOP/baseFSM/FSM_protected.h @@ -60,33 +60,34 @@ typedef void (*Avoid_WARNING_void_fcns)(FSMHandler *fcns); /** * @brief 状态处理函数集合,全部需要子类重新填充内容 - * @details 这个结构体暴露给FSM.protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, + * @details 这个结构体是私有变量,子状态机和外界都不该访问。但是写在FSM_protect.h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, * 有点麻烦 * */ typedef struct FSMHandler{ int (**selectNextState)(void *data, FSMSignals* signals); /**< 每个状态配置的状态选择函数 */ - void (**transitionTable)(void *data); - void (*transitionGeneralAction)(void *data); + void (**transitionTable)(void *data); /**< 状态转移函数表 */ + void (*transitionGeneralAction)(void *data); /**< 通用状态转移函数,不论有没有独立的状态转移函数都会执行 */ - void (**enterActionTable)(void *data, FSM **cFSM); - void (**duringActionTable)(void *data, FSM **cFSM); - void (**exitActionTable)(void *data, FSM **cFSM); + void (**enterActionTable)(void *data, FSM **cFSM); /**< 进入状态时运行的函数,和plecs对标 */ + void (**duringActionTable)(void *data, FSM **cFSM); /**< 状态不变时运行的函数,和plecs对标 */ + void (**exitActionTable)(void *data, FSM **cFSM); /**< 状态退出时运行的函数,和plecs对标 */ - void (**childFSMStepTable)(FSM **cFSM); + void (**childFSMStepTable)(FSM **cFSM); /**< @deprecated 子状态机暂时弃用 */ }FSMHandler; /** * @brief 状态机用的信号,protected子类可以访问 - * + * @details 外部只能通过SetSignal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 + * 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。 */ typedef struct FSMSignals { Uint16 all; /**< 外部信号 */ - Uint16 lastTriggeredSignal; /**< 上一次触发的外部信号 */ + Uint16 lastTriggeredSignal; /**< 上一次触发的外部信号,用于信号清除 */ }FSMSignals; -#define Idle_Signal 0 /**< 啥意思? */ +#define Idle_Signal 0 /**< 清空上次触发信号,占用第一个信号位 */ /* -------------------------------------------------------------------------- */ /* 纯虚函数,子类必须重新实现,父类构造函数不会初始化 */ diff --git a/vscode/FSM_OOP/baseFSM/FSM_public.h b/vscode/FSM_OOP/baseFSM/FSM_public.h index 1d025fe..60d03c3 100644 --- a/vscode/FSM_OOP/baseFSM/FSM_public.h +++ b/vscode/FSM_OOP/baseFSM/FSM_public.h @@ -1,10 +1,12 @@ -/* - * @Author: godcreator02 qq974980621@gmail.com - * @Date: 2024-04-20 18:52:14 - * @LastEditors: godcreator02 qq974980621@gmail.com - * @LastEditTime: 2024-04-23 21:51:55 - * @FilePath: \vscode\FSM_OOP\baseFSM\FSM_public.h - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE +/** + * @file FSM_public.h + * @author 天神 (dalaoshi@stu.xjtu.edu.cn) + * @brief + * @version 2.1 + * @date 2024-05-07 + * + * @copyright 天神创意无限公司 2024 + * */ #ifndef __FSM_PUBLIC_H_ #define __FSM_PUBLIC_H_ @@ -25,14 +27,15 @@ typedef struct FSMPublicFcns }FSMPublicFcns; /* -------------------------------- 避免警告的函数定义 ------------------------------- */ -#define Step(pFSM) _stepFSM((FSM *)pFSM) -#define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM); -#define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM) -#define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM) -#define GetData(pFSM) _getData((FSM*)pFSM) -#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) +#define Step(pFSM) _stepFSM((FSM *)pFSM) /**< 外界调用这个 */ +#define GetData(pFSM) _getData((FSM*)pFSM) /**< 外界调用这个 */ +#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) /**< 外界调用这个 */ +#define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM); /**< @deprecated */ +#define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM) /**< @deprecated */ +#define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM) /**< @deprecated */ + void _stepFSM(FSM *pFSM); /* --------------------------------- 状态机信息获取 -------------------------------- */ diff --git a/vscode/FSM_OOP/template/templateFSM.c b/vscode/FSM_OOP/template/templateFSM.c index 16498c3..85efd52 100644 --- a/vscode/FSM_OOP/template/templateFSM.c +++ b/vscode/FSM_OOP/template/templateFSM.c @@ -1,3 +1,14 @@ +/** + * @file templateFSM.c + * @author 天神 (dalaoshi@stu.xjtu.edu.cn) + * @brief 重新实现几个必须实现的函数,并赋值到父类指针里 + * @version 2.1 + * @date 2024-05-07 + * + * @copyright 天神创意无限公司 2024 + * + */ + #include #include #include @@ -9,13 +20,24 @@ /* -------------------------------------------------------------------------- */ /* 纯虚函数,允许调用privateVars */ /* -------------------------------------------------------------------------- */ + +/** + * @brief + * @deprecated 暂时没用,后续考虑data是否需要加锁再说 + * @param data 主要是外部数据 + */ static void loadExternalData(TemplateFSMData *data){ // 必须重新实现 data->external.arrindex = arrindex; data->external.x = x; } - +/** + * @brief 根据条件重置信号 + * @details 清除被响应信号和所有小于被响应信号优先级的信号,具体可以参考notion + * @param signals 状态机接收到的信号 + * @param data 状态机数据 + */ static void resetSignals(FSMSignals *signals, TemplateFSMData *data){ // 必须重新实现 switch (signals->lastTriggeredSignal) @@ -29,7 +51,11 @@ static void resetSignals(FSMSignals *signals, TemplateFSMData *data){ // 必 } } - +/** + * @brief 给所有内部、外部数据分配堆空间 + * + * @param pFSM + */ static void initData(TemplateFSM *pFSM){ // 必须重新实现 TemplateFSMData *data = (TemplateFSMData *)malloc(sizeof(TemplateFSMData)); @@ -50,7 +76,7 @@ static void initData(TemplateFSM *pFSM){ // 必须重新实现 /** * @brief - * @deprecated + * @deprecated 弃用 * @param pFSM */ static void initDataLoader(TemplateFSM *pFSM){ // 必须重新实现 @@ -58,6 +84,12 @@ static void initDataLoader(TemplateFSM *pFSM){ // 必须重新实现 // pFSM->base.privateVars->preloader.size = sizeof(TemplateFSMExternalData); } + +/** + * @brief 设置状态选择函数、状态内函数和状态转移函数 + * + * @param fcns 状态机函数表 + */ static void setupHandler(FSMHandler* fcns){ // 必须重新实现 /* ------------------------------- 添加下一个状态选择函数 ------------------------------ */ addSelectNextStateFcn(D); @@ -84,6 +116,11 @@ static void setupHandler(FSMHandler* fcns){ // 必须重新实现 /* -------------------------------------------------------------------------- */ /* 其他重新实现的函数,父类已有实现,实现多态 */ /* -------------------------------------------------------------------------- */ +/** + * @brief 重新实现基类的step函数,添加一些打印信息 + * + * @param pFSM 子类状态机指针 + */ static void step(TemplateFSM* pFSM){ printFSM(pFSM); stepBaseFSM(BASE_FSM(pFSM)); @@ -97,6 +134,12 @@ static void step(TemplateFSM* pFSM){ /* -------------------------------------------------------------------------- */ /* 子类构造函数 */ /* -------------------------------------------------------------------------- */ + +/** + * @brief Create a Template FSM object + * @details 子类状态机细节对外隐藏,外部只能访问基类的公有函数来操作子类变量 + * @return TemplateFSM* + */ TemplateFSM *createTemplateFSM(){ TemplateFSM *pFSM; pFSM = (TemplateFSM *)newBaseFSM(Count_State, DEFAULT_STATE); diff --git a/vscode/FSM_OOP/template/templateFSM.h b/vscode/FSM_OOP/template/templateFSM.h index 5c8e9c1..74966c1 100644 --- a/vscode/FSM_OOP/template/templateFSM.h +++ b/vscode/FSM_OOP/template/templateFSM.h @@ -1,3 +1,14 @@ +/** + * @file templateFSM.h + * @author 天神 (dalaoshi@stu.xjtu.edu.cn) + * @brief 对外暴露接口,外部可以设置状态机的信号 + * @version 2.1 + * @date 2024-05-07 + * + * @copyright 天神创意无限公司 2024 + * + */ + #ifndef __TEMPLATE_FSM_H_ #define __TEMPLATE_FSM_H_ @@ -11,6 +22,7 @@ /* -------------------------------------------------------------------------- */ /** * @brief 自定义外部信号,目前最多15个 + * @details 因为是Unint16存储的信号位 * */ enum TemplateFSMSignals{ diff --git a/vscode/FSM_OOP/template/templateFSM_private.h b/vscode/FSM_OOP/template/templateFSM_private.h index 9b30b58..04ae135 100644 --- a/vscode/FSM_OOP/template/templateFSM_private.h +++ b/vscode/FSM_OOP/template/templateFSM_private.h @@ -1,3 +1,14 @@ +/** + * @file templateFSM_private.h + * @author 天神 (dalaoshi@stu.xjtu.edu.cn) + * @brief 用来声明状态、状态函数等。这个文件只能被templateFSM.c引用一次! + * @version 2.1 + * @date 2024-05-07 + * + * @copyright 天神创意无限公司 2024 + * + */ + #ifdef __TEMPLATE_PRIVATE_FSM_H_ #error This file can only be included once!!! @@ -26,15 +37,20 @@ typedef struct TemplateFSM /* -------------------------------------------------------------------------- */ /* 状态定义 */ /* -------------------------------------------------------------------------- */ + +/** + * @brief 状态机内状态定义,Idle和Count_State必须占据开头和结尾两个位置 + * + */ typedef enum _State { - Idle, + Idle, /**< 必须在开头,并且枚举值=0 */ D, E, - Count_State, + Count_State, /**< 必须在结尾,用来统计状态数量 */ } State; -#define DEFAULT_STATE E +#define DEFAULT_STATE E /**< 默认状态,Idle状态会先跳转到默认状态 */ /* -------------------------------------------------------------------------- */ /* 下一个状态选择函数 */ diff --git a/vscode/manual/html/_f_s_m_8c.html b/vscode/manual/html/_f_s_m_8c.html new file mode 100644 index 0000000..5b036a0 --- /dev/null +++ b/vscode/manual/html/_f_s_m_8c.html @@ -0,0 +1,338 @@ + + + + + + + +状态机框架: FSM_OOP/baseFSM/FSM.c File Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
状态机框架 0.1alpha +
+
by 天神
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
FSM.c File Reference
+
+
+
#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
+#include "FSM_private.h"
+#include "FSM_protected.h"
+#include "FSM_public.h"
+
+ + + + + + + + + + + + + + + + + +

+Functions

static void setNextState (FSM *pFSM)
 设置下一个状态,里面的子状态机暂时没用到
 
static void preload (FSM *pFSM)
 
void stepBaseFSM (FSM *pFSM)
 运行状态机,状态机框架的核心函数
 
void * _preloadIn (FSM *pFSM)
 
void _preloaderGetReady (FSM *pFSM)
 
int _getPreloaderOverFlag (FSM *pFSM)
 
void _clearPreloaderOverFlag (FSM *pFSM)
 
+

Detailed Description

+
Author
天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
+
Version
2.1
+
Date
2024-05-07
+ +

Function Documentation

+ +

◆ setNextState()

+ +
+
+ + + + + +
+ + + + + + + +
static void setNextState (FSM * pFSM)
+
+inlinestatic
+
+ +

设置下一个状态,里面的子状态机暂时没用到

+
Parameters
+ + +
pFSM状态机变量的基类指针
+
+
+ +
+
+ +

◆ preload()

+ +
+
+ + + + + +
+ + + + + + + +
static void preload (FSM * pFSM)
+
+inlinestatic
+
+
Deprecated
去掉了所有和预装载器相关的内容
+
Parameters
+ + +
pFSM
+
+
+ +
+
+ +

◆ stepBaseFSM()

+ +
+
+ + + + + + + +
void stepBaseFSM (FSM * pFSM)
+
+ +

运行状态机,状态机框架的核心函数

+

共分为三部首先判断是否有状态机切换,

Parameters
+ + +
pFSM状态机基类指针
+
+
+ +
+
+ +

◆ _preloadIn()

+ +
+
+ + + + + + + +
void * _preloadIn (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+
Returns
void*
+ +
+
+ +

◆ _preloaderGetReady()

+ +
+
+ + + + + + + +
void _preloaderGetReady (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+ +
+
+ +

◆ _getPreloaderOverFlag()

+ +
+
+ + + + + + + +
int _getPreloaderOverFlag (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+
Returns
int
+ +
+
+ +

◆ _clearPreloaderOverFlag()

+ +
+
+ + + + + + + +
void _clearPreloaderOverFlag (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+ +
+
+
+
+ + + + diff --git a/vscode/manual/html/_f_s_m_8c.js b/vscode/manual/html/_f_s_m_8c.js new file mode 100644 index 0000000..54e0961 --- /dev/null +++ b/vscode/manual/html/_f_s_m_8c.js @@ -0,0 +1,10 @@ +var _f_s_m_8c = +[ + [ "setNextState", "_f_s_m_8c.html#a6b596586b33f46c312a7088e8352d226", null ], + [ "preload", "_f_s_m_8c.html#a7fc6a4715e8cbd7660788fd9c59cb417", null ], + [ "stepBaseFSM", "_f_s_m_8c.html#a9bab0f8eedb805136ee573eac09b6ebb", null ], + [ "_preloadIn", "_f_s_m_8c.html#a9c285ac5bbad90b0b04de18d393cf4ce", null ], + [ "_preloaderGetReady", "_f_s_m_8c.html#a6e2a8d16f390efeaecc8938ec8f2e728", null ], + [ "_getPreloaderOverFlag", "_f_s_m_8c.html#a704103961964dbb8582b59fd161a3348", null ], + [ "_clearPreloaderOverFlag", "_f_s_m_8c.html#aad909acd21e17b8073d5d9dfb8892ccb", null ] +]; \ No newline at end of file diff --git a/vscode/manual/html/_f_s_m__private_8h.html b/vscode/manual/html/_f_s_m__private_8h.html index e06ac50..f2a04d3 100644 --- a/vscode/manual/html/_f_s_m__private_8h.html +++ b/vscode/manual/html/_f_s_m__private_8h.html @@ -101,7 +101,8 @@ $(function(){initNavTree('_f_s_m__private_8h.html',''); initResizable(); });
FSM_private.h File Reference
@@ -126,9 +127,8 @@ Typedefs typedef struct FSMHandler FSMHandler  状态处理函数集合,全部需要子类重新填充内容
  - -typedef struct FSMSignals FSMSignals - 状态机用的信号,protected子类可以访问
+typedef struct FSMSignals FSMSignals + 状态机用的信号,protected子类可以访问
  typedef struct FSMDataLoader FSMDataLoader   @@ -136,11 +136,17 @@ typedef struct FSMSignals  typedef struct FSMPrivateVars FSMPrivateVars  基类状态机的私有变量和函数,子类不可直接访问
  + + + + +

+Functions

FSMPrivateVarsnewFMSPrivateVars (int numState, int defaultState)
 仅在FSM.c中调用,新建私有变量并分配空间
 

Detailed Description

状态机框架的私有变量,只能在状态机框架内使用。

-
Author
天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
-
Version
2.1
+
Author
天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
+

基类私有变量对子类和外界隐藏实现,通过指针进行访问。

Version
2.1
Date
2024-05-07

Typedef Documentation

@@ -157,7 +163,24 @@ typedef struct FSMPrivateVars 

状态处理函数集合,全部需要子类重新填充内容

-

这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦

+

这个结构体是私有变量,子状态机和外界都不该访问。但是写在FSM_protect.h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦

+ +
+
+ +

◆ FSMSignals

+ +
+
+ + + + +
typedef struct FSMSignals FSMSignals
+
+ +

状态机用的信号,protected子类可以访问

+

外部只能通过SetSignal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。

@@ -174,6 +197,38 @@ typedef struct FSMPrivateVars 
Deprecated
预装载器弃用
+
+ +

Function Documentation

+ +

◆ newFMSPrivateVars()

+ +
+
+ + + + + + + + + + + +
FSMPrivateVars * newFMSPrivateVars (int numState,
int defaultState )
+
+ +

仅在FSM.c中调用,新建私有变量并分配空间

+
Parameters
+ + + +
numState
defaultState
+
+
+
Returns
FSMPrivateVars*
+
diff --git a/vscode/manual/html/_f_s_m__private_8h.js b/vscode/manual/html/_f_s_m__private_8h.js index 7ccdaf0..a3cd8e7 100644 --- a/vscode/manual/html/_f_s_m__private_8h.js +++ b/vscode/manual/html/_f_s_m__private_8h.js @@ -5,5 +5,6 @@ var _f_s_m__private_8h = [ "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 ] + [ "FSMPrivateVars", "_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9", null ], + [ "newFMSPrivateVars", "_f_s_m__private_8h.html#ac817972fed8a0babe2356c890f960e75", null ] ]; \ No newline at end of file diff --git a/vscode/manual/html/_f_s_m__private_8h_source.html b/vscode/manual/html/_f_s_m__private_8h_source.html index f722555..bf62d82 100644 --- a/vscode/manual/html/_f_s_m__private_8h_source.html +++ b/vscode/manual/html/_f_s_m__private_8h_source.html @@ -103,88 +103,95 @@ $(function(){initNavTree('_f_s_m__private_8h_source.html',''); initResizable();
Go to the documentation of this file.
1
-
13#ifndef __FSM_PRIVATE_H_
-
14#define __FSM_PRIVATE_H_
-
15
-
16#include <string.h>
-
17#include "FSM_protected.h"
-
18
-
19typedef struct FSMHandler FSMHandler;
-
20typedef struct FSM FSM;
-
21typedef struct FSMSignals FSMSignals;
-
22
-
23/* -------------------------------------------------------------------------- */
-
24/* private数据类型 */
-
25/* -------------------------------------------------------------------------- */
-
-
31typedef struct FSMDataLoader
-
32{
-
33 void *shadowData;
-
34 int isReady;
-
35 int isOverflow;
-
36 size_t size;
- +
14#ifndef __FSM_PRIVATE_H_
+
15#define __FSM_PRIVATE_H_
+
16
+
17#include <string.h>
+
18#include "FSM_protected.h"
+
19
+
20typedef struct FSMHandler FSMHandler;
+
21typedef struct FSM FSM;
+
22typedef struct FSMSignals FSMSignals;
+
23
+
24/* -------------------------------------------------------------------------- */
+
25/* private数据类型 */
+
26/* -------------------------------------------------------------------------- */
+
+
32typedef struct FSMDataLoader
+
33{
+
34 void *shadowData;
+
35 int isReady;
+
36 int isOverflow;
+
37 size_t size;
+
-
38
39
-
-
44typedef struct FSMPrivateVars
-
45{
-
46 int numState;
- -
49 int curState;
- -
51 int index;
-
53 FSMHandler fcns;
-
54
-
55 int numChild;
-
56 FSM **childFSM;
-
57
- - +
40
+ -
61
-
62FSMPrivateVars* newFMSPrivateVars(int numState, int defaultState){
-
63 typedef void (*StateFuncPtr)(void *);
-
64 typedef void (*ChildFSMStepFuncPtr)(FSM **);
-
65 typedef int (*TransitionFuncPtr)(void *, int *);
-
66 typedef int (*SelectNextStateFcnPtr)(void *, FSMSignals *);
-
67
-
68 FSMPrivateVars *privateVars = calloc(1, sizeof(FSMPrivateVars));
-
69 privateVars->numState = numState;
-
70 privateVars->defaultState = defaultState;
-
71 privateVars->curState = 0;
-
72 privateVars->nextState = 0;
-
73 privateVars->numChild = 0;
-
74
-
75 privateVars->preloader.isReady = 0;
-
76
-
77 privateVars->fcns.duringActionTable = calloc(numState, sizeof(StateFuncPtr));
-
78 privateVars->fcns.enterActionTable = calloc(numState, sizeof(StateFuncPtr));
-
79 privateVars->fcns.exitActionTable = calloc(numState, sizeof(StateFuncPtr));
-
80
-
81 privateVars->fcns.selectNextState = calloc(numState, sizeof(SelectNextStateFcnPtr));
-
82 privateVars->fcns.transitionTable = calloc(numState * numState, sizeof(TransitionFuncPtr));
-
83 privateVars->fcns.transitionGeneralAction = calloc(1, sizeof(StateFuncPtr));
+
62
+
63
+
64
+
+
72FSMPrivateVars* newFMSPrivateVars(int numState, int defaultState){
+
73 typedef void (*StateFuncPtr)(void *);
+
74 typedef void (*ChildFSMStepFuncPtr)(FSM **);
+
75 typedef int (*TransitionFuncPtr)(void *, int *);
+
76 typedef int (*SelectNextStateFcnPtr)(void *, FSMSignals *);
+
77
+
78 FSMPrivateVars *privateVars = calloc(1, sizeof(FSMPrivateVars));
+
79 privateVars->numState = numState;
+
80 privateVars->defaultState = defaultState;
+
81 privateVars->curState = 0;
+
82 privateVars->nextState = 0;
+
83 privateVars->numChild = 0;
84
-
85 privateVars->fcns.childFSMStepTable = calloc(numState * numState, sizeof(ChildFSMStepFuncPtr));
-
86
-
87 return privateVars;
-
88
-
89}
-
90
-
91#endif
+
85 privateVars->preloader.isReady = 0;
+
86
+
87 privateVars->fcns.duringActionTable = calloc(numState, sizeof(StateFuncPtr));
+
88 privateVars->fcns.enterActionTable = calloc(numState, sizeof(StateFuncPtr));
+
89 privateVars->fcns.exitActionTable = calloc(numState, sizeof(StateFuncPtr));
+
90
+
91 privateVars->fcns.selectNextState = calloc(numState, sizeof(SelectNextStateFcnPtr));
+
92 privateVars->fcns.transitionTable = calloc(numState * numState, sizeof(TransitionFuncPtr));
+
93 privateVars->fcns.transitionGeneralAction = calloc(1, sizeof(StateFuncPtr));
+
94
+
95 privateVars->fcns.childFSMStepTable = calloc(numState * numState, sizeof(ChildFSMStepFuncPtr));
+
96
+
97 return privateVars;
+
98}
+
+
99
+
100#endif
struct FSMPrivateVars FSMPrivateVars
基类状态机的私有变量和函数,子类不可直接访问
struct FSMDataLoader FSMDataLoader
+
FSMPrivateVars * newFMSPrivateVars(int numState, int defaultState)
仅在FSM.c中调用,新建私有变量并分配空间
Definition FSM_private.h:72
状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
-
Definition FSM_private.h:32
+
Definition FSM_private.h:33
状态处理函数集合,全部需要子类重新填充内容
Definition FSM_protected.h:67
-
基类状态机的私有变量和函数,子类不可直接访问
Definition FSM_private.h:45
-
int nextState
Definition FSM_private.h:50
-
int defaultState
Definition FSM_private.h:47
-
FSMDataLoader preloader
Definition FSM_private.h:58
-
int index
Definition FSM_private.h:51
-
状态机用的信号,protected子类可以访问
Definition FSM_protected.h:85
+
基类状态机的私有变量和函数,子类不可直接访问
Definition FSM_private.h:46
+
int curState
Definition FSM_private.h:50
+
FSMHandler fcns
Definition FSM_private.h:54
+
int nextState
Definition FSM_private.h:51
+
int defaultState
Definition FSM_private.h:48
+
FSMDataLoader preloader
Definition FSM_private.h:59
+
int numState
Definition FSM_private.h:47
+
int index
Definition FSM_private.h:52
+
int numChild
Definition FSM_private.h:56
+
FSM ** childFSM
Definition FSM_private.h:57
+
状态机用的信号,protected子类可以访问
Definition FSM_protected.h:86
diff --git a/vscode/manual/html/_f_s_m__protected_8h.html b/vscode/manual/html/_f_s_m__protected_8h.html index 8bf3b07..0724d72 100644 --- a/vscode/manual/html/_f_s_m__protected_8h.html +++ b/vscode/manual/html/_f_s_m__protected_8h.html @@ -110,7 +110,7 @@ $(function(){initNavTree('_f_s_m__protected_8h.html',''); initResizable(); });

状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用 More...

-
#include "FSM_public.h"
+
#include "FSM_public.h"

Go to the source code of this file.

@@ -136,9 +136,8 @@ Typedefs - - + + @@ -169,7 +168,7 @@ Functions
typedef struct FSMHandler FSMHandler
 状态处理函数集合,全部需要子类重新填充内容
 
-typedef struct FSMSignals FSMSignals
 状态机用的信号,protected子类可以访问
typedef struct FSMSignals FSMSignals
 状态机用的信号,protected子类可以访问
 
typedef struct FSMPureVtbl FSMPureVtbl
-

啥意思?

+

清空上次触发信号,占用第一个信号位

@@ -187,7 +186,24 @@ Functions

状态处理函数集合,全部需要子类重新填充内容

-

这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦

+

这个结构体是私有变量,子状态机和外界都不该访问。但是写在FSM_protect.h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦

+ +
+ + +

◆ FSMSignals

+ +
+
+ + + + +
typedef struct FSMSignals FSMSignals
+
+ +

状态机用的信号,protected子类可以访问

+

外部只能通过SetSignal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。

diff --git a/vscode/manual/html/_f_s_m__protected_8h_source.html b/vscode/manual/html/_f_s_m__protected_8h_source.html index 540407e..e9e322b 100644 --- a/vscode/manual/html/_f_s_m__protected_8h_source.html +++ b/vscode/manual/html/_f_s_m__protected_8h_source.html @@ -106,7 +106,7 @@ $(function(){initNavTree('_f_s_m__protected_8h_source.html',''); initResizable()
12#ifndef __FSM_PROTECTED_H_
13#define __FSM_PROTECTED_H_
14
-
15#include "FSM_public.h"
+
15#include "FSM_public.h"
16
17// #define DSP28377
18#ifdef DSP28377
@@ -142,116 +142,120 @@ $(function(){initNavTree('_f_s_m__protected_8h_source.html',''); initResizable()
48typedef struct FSMSignals FSMSignals;
49typedef struct FSMPrivateVars FSMPrivateVars;
50
-
51typedef void (*Avoid_WARNING_State_Fcns)(void *data, FSM **childFSM);
+
51typedef void (*Avoid_WARNING_State_Fcns)(void *data, FSM **childFSM);
52typedef void (*Avoid_WARNING_General_Handlers)(void *data);
53typedef void (*Avoid_WARNING_Transition_Handler)(void *data);
54typedef void (*Avoid_WARNING_Overrider_Fcns)(FSM *pFSM);
55typedef void (*Avoid_WARNING_ResetSignals_Fcns)(FSMSignals* signals, void *);
56typedef void (*Avoid_WARNING_loadData_Fcns)(void*);
57typedef int (*Avoid_WARNING_SelectNextState)(void *data, FSMSignals* signals);
-
58typedef void (*Avoid_WARNING_void_fcns)(FSMHandler *fcns);
+
58typedef void (*Avoid_WARNING_void_fcns)(FSMHandler *fcns);
59
60
67typedef struct FSMHandler{
68 int (**selectNextState)(void *data, FSMSignals* signals);
-
70 void (**transitionTable)(void *data);
-
71 void (*transitionGeneralAction)(void *data);
-
72
-
73 void (**enterActionTable)(void *data, FSM **cFSM);
-
74 void (**duringActionTable)(void *data, FSM **cFSM);
-
75 void (**exitActionTable)(void *data, FSM **cFSM);
-
76
-
77 void (**childFSMStepTable)(FSM **cFSM);
+
70 void (**transitionTable)(void *data);
+
71 void (*transitionGeneralAction)(void *data);
+
73 void (**enterActionTable)(void *data, FSM **cFSM);
+
74 void (**duringActionTable)(void *data, FSM **cFSM);
+
75 void (**exitActionTable)(void *data, FSM **cFSM);
+
77 void (**childFSMStepTable)(FSM **cFSM);
79
-
-
84typedef struct FSMSignals
-
85{
-
86 Uint16 external;
- - +
+
85typedef struct FSMSignals
+
86{
+
87 Uint16 all;
+ +
-
89#define Idle_Signal 0
-
91/* -------------------------------------------------------------------------- */
-
92/* 纯虚函数,子类必须重新实现,父类构造函数不会初始化 */
-
93/* -------------------------------------------------------------------------- */
-
94
-
-
99typedef struct FSMPureVtbl {
-
100 // 状态机控制
-
101 void (*setupHandler)(FSMHandler *fcns);
-
103 void (*initData)(FSM *pFSM);
-
104 void (*loadExternalData)(void *extData);
-
106 void (*initDataLoader)(FSM *pFSM);
-
108 void (*initSignals)(FSM *pFSM);
-
109 void (*resetSignals)(FSMSignals *signalRegs, void *data);
- +
90#define Idle_Signal 0
+
92/* -------------------------------------------------------------------------- */
+
93/* 纯虚函数,子类必须重新实现,父类构造函数不会初始化 */
+
94/* -------------------------------------------------------------------------- */
+
95
+
+
100typedef struct FSMPureVtbl {
+
101 // 状态机控制
+
102 void (*setupHandler)(FSMHandler *fcns);
+
104 void (*initData)(FSM *pFSM);
+
105 void (*loadExternalData)(void *extData);
+
107 void (*initDataLoader)(FSM *pFSM);
+
109 void (*initSignals)(FSM *pFSM);
+
110 void (*resetSignals)(FSMSignals *signals, void *data);
+
-
111
112
113
-
114/* -------------------------------------------------------------------------- */
-
115/* 基类定义,纯虚类 */
-
116/* -------------------------------------------------------------------------- */
-
117typedef struct FSM
-
118{
-
119 // public functions
-
120 void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
-
121 void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
-
122
-
123 // protected
-
124 FSMPureVtbl pureVtbl;
-
125
-
126 void *data;
-
127 FSMSignals signals;
-
128 // private
-
129 FSMPrivateVars* privateVars;
-
130} FSM;
-
131
-
132
+
114
+
115/* -------------------------------------------------------------------------- */
+
116/* 基类定义,纯虚类 */
+
117/* -------------------------------------------------------------------------- */
+
118typedef struct FSM
+
119{
+
120 FSMPublicFcns publicFcns;
+
121 // protected
+
122 FSMPureVtbl pureVtbl;
+
123
+
124 void *data;
+
125 FSMSignals signals;
+
126 // private
+
127 FSMPrivateVars* privateVars;
+
128} FSM;
+
129
+
130
+
131/* -------------------------------------------------------------------------- */
+
132/* protected函数,子类能用外界用不了 */
133/* -------------------------------------------------------------------------- */
-
134/* protected函数,子类能用外界用不了 */
-
135/* -------------------------------------------------------------------------- */
-
136void stepBaseFSM(FSM *pFSM);
-
137void constructFSM(FSM* pFSM);
-
138FSM* newBaseFSM(int numState, int defaultState);
-
139void resetBaseFSM(FSM *pFSM);
-
140
-
141
+
134void stepBaseFSM(FSM *pFSM);
+
135void constructFSM(FSM* pFSM);
+
136FSM* newBaseFSM(int numState, int defaultState);
+
137void resetBaseFSM(FSM *pFSM);
+
138
+
139
+
140/* -------------------------------------------------------------------------- */
+
141/* 内联函数 */
142/* -------------------------------------------------------------------------- */
-
143/* 内联函数 */
-
144/* -------------------------------------------------------------------------- */
-
145static inline void clearSignal(FSMSignals *signals, Uint16 signalFlag){
-
146 signals->external &= ~(1 << signalFlag);
-
147}
-
148static inline Uint16 getSignal(FSMSignals *signals, Uint16 signalFlag){
-
149 return (signals->external >> signalFlag) & 1;
-
150}
-
151static inline void clearAllSignals(FSMSignals *signals){
-
152 signals->external = 0;
-
153}
-
154
-
155
-
156#endif
+
143static inline void clearSignal(FSMSignals *signals, Uint16 signalFlag){
+
144 signals->all &= ~(1 << signalFlag);
+
145}
+
146static inline Uint16 getSignal(FSMSignals *signals, Uint16 signalFlag){
+
147 return (signals->all >> signalFlag) & 1;
+
148}
+
149static inline void clearAllSignals(FSMSignals *signals){
+
150 signals->all = 0;
+
151}
+
152
+
153
+
154#endif
struct FSMHandler FSMHandler
状态处理函数集合,全部需要子类重新填充内容
Definition FSM_protected.h:46
struct FSMPureVtbl FSMPureVtbl
纯虚函数,子类必须重新实现,父类构造函数不会初始化
-
void stepBaseFSM(FSM *pFSM)
运行状态机,状态机框架的核心函数
Definition FSM.c:62
+
void stepBaseFSM(FSM *pFSM)
运行状态机,状态机框架的核心函数
Definition FSM.c:78
struct FSMSignals FSMSignals
状态机用的信号,protected子类可以访问
Definition FSM_protected.h:48
+
状态处理函数集合,全部需要子类重新填充内容
Definition FSM_protected.h:67
+
void(** exitActionTable)(void *data, FSM **cFSM)
Definition FSM_protected.h:75
int(** selectNextState)(void *data, FSMSignals *signals)
Definition FSM_protected.h:68
-
基类状态机的私有变量和函数,子类不可直接访问
Definition FSM_private.h:45
-
纯虚函数,子类必须重新实现,父类构造函数不会初始化
Definition FSM_protected.h:99
-
void(* initData)(FSM *pFSM)
Definition FSM_protected.h:103
-
void(* loadExternalData)(void *extData)
Definition FSM_protected.h:104
-
void(* initSignals)(FSM *pFSM)
Definition FSM_protected.h:108
-
void(* setupHandler)(FSMHandler *fcns)
Definition FSM_protected.h:101
-
void(* resetSignals)(FSMSignals *signalRegs, void *data)
Definition FSM_protected.h:109
-
void(* initDataLoader)(FSM *pFSM)
Definition FSM_protected.h:106
-
状态机用的信号,protected子类可以访问
Definition FSM_protected.h:85
-
Uint16 lastTriggeredSignal
Definition FSM_protected.h:87
-
Uint16 external
Definition FSM_protected.h:86
+
void(** childFSMStepTable)(FSM **cFSM)
Definition FSM_protected.h:77
+
void(** enterActionTable)(void *data, FSM **cFSM)
Definition FSM_protected.h:73
+
void(* transitionGeneralAction)(void *data)
Definition FSM_protected.h:71
+
void(** transitionTable)(void *data)
Definition FSM_protected.h:70
+
void(** duringActionTable)(void *data, FSM **cFSM)
Definition FSM_protected.h:74
+
基类状态机的私有变量和函数,子类不可直接访问
Definition FSM_private.h:46
+
FSMHandler fcns
Definition FSM_private.h:54
+
FSM ** childFSM
Definition FSM_private.h:57
+
纯虚函数,子类必须重新实现,父类构造函数不会初始化
Definition FSM_protected.h:100
+
void(* initData)(FSM *pFSM)
Definition FSM_protected.h:104
+
void(* loadExternalData)(void *extData)
Definition FSM_protected.h:105
+
void(* initSignals)(FSM *pFSM)
Definition FSM_protected.h:109
+
void(* setupHandler)(FSMHandler *fcns)
Definition FSM_protected.h:102
+
void(* resetSignals)(FSMSignals *signals, void *data)
Definition FSM_protected.h:110
+
void(* initDataLoader)(FSM *pFSM)
Definition FSM_protected.h:107
+
状态机用的信号,protected子类可以访问
Definition FSM_protected.h:86
+
Uint16 lastTriggeredSignal
Definition FSM_protected.h:88
+
Uint16 all
Definition FSM_protected.h:87
diff --git a/vscode/manual/html/_f_s_m__public_8h.html b/vscode/manual/html/_f_s_m__public_8h.html new file mode 100644 index 0000000..93f4763 --- /dev/null +++ b/vscode/manual/html/_f_s_m__public_8h.html @@ -0,0 +1,364 @@ + + + + + + + +状态机框架: FSM_OOP/baseFSM/FSM_public.h File Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
状态机框架 0.1alpha +
+
by 天神
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
FSM_public.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Macros

#define Step(pFSM)   _stepFSM((FSM *)pFSM)
 
#define GetData(pFSM)   _getData((FSM*)pFSM)
 
#define SetSignal(pFSM, signal)   _setSignal((FSM*)pFSM, signal)
 
#define PreloaderGetReady(pFSM)   _preloaderGetReady((FSM *)pFSM);
 
#define GetPreloaderOverFlag(pFSM)   _getPreloaderOverFlag((FSM *)pFSM)
 
#define ClearPreloaderOverFlag(pFSM)   _clearPreloaderOverFlag((FSM *)pFSM)
 
+ + + + + + + + + +

+Functions

void * _preloadIn (FSM *pFSM)
 
void _preloaderGetReady (FSM *pFSM)
 
int _getPreloaderOverFlag (FSM *pFSM)
 
void _clearPreloaderOverFlag (FSM *pFSM)
 
+

Detailed Description

+
Author
天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
+
Version
2.1
+
Date
2024-05-07
+ +

Macro Definition Documentation

+ +

◆ Step

+ +
+
+ + + + + + + +
#define Step( pFSM)   _stepFSM((FSM *)pFSM)
+
+

外界调用这个

+ +
+
+ +

◆ GetData

+ +
+
+ + + + + + + +
#define GetData( pFSM)   _getData((FSM*)pFSM)
+
+

外界调用这个

+ +
+
+ +

◆ SetSignal

+ +
+
+ + + + + + + + + + + +
#define SetSignal( pFSM,
signal )   _setSignal((FSM*)pFSM, signal)
+
+

外界调用这个

+ +
+
+ +

◆ PreloaderGetReady

+ +
+
+ + + + + + + +
#define PreloaderGetReady( pFSM)   _preloaderGetReady((FSM *)pFSM);
+
+
+ +

◆ GetPreloaderOverFlag

+ +
+
+ + + + + + + +
#define GetPreloaderOverFlag( pFSM)   _getPreloaderOverFlag((FSM *)pFSM)
+
+
+ +

◆ ClearPreloaderOverFlag

+ +
+
+ + + + + + + +
#define ClearPreloaderOverFlag( pFSM)   _clearPreloaderOverFlag((FSM *)pFSM)
+
+
+

Function Documentation

+ +

◆ _preloadIn()

+ +
+
+ + + + + + + +
void * _preloadIn (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+
Returns
void*
+ +
+
+ +

◆ _preloaderGetReady()

+ +
+
+ + + + + + + +
void _preloaderGetReady (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+ +
+
+ +

◆ _getPreloaderOverFlag()

+ +
+
+ + + + + + + +
int _getPreloaderOverFlag (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+
Returns
int
+ +
+
+ +

◆ _clearPreloaderOverFlag()

+ +
+
+ + + + + + + +
void _clearPreloaderOverFlag (FSM * pFSM)
+
+
Deprecated
弃用
+
Parameters
+ + +
pFSM
+
+
+ +
+
+
+
+ + + + diff --git a/vscode/manual/html/_f_s_m__public_8h.js b/vscode/manual/html/_f_s_m__public_8h.js new file mode 100644 index 0000000..dda7504 --- /dev/null +++ b/vscode/manual/html/_f_s_m__public_8h.js @@ -0,0 +1,13 @@ +var _f_s_m__public_8h = +[ + [ "Step", "_f_s_m__public_8h.html#a6cea0d8653df195e4325754c662be6a4", null ], + [ "GetData", "_f_s_m__public_8h.html#a336c6a01ee8af1e00bd175553788ec63", null ], + [ "SetSignal", "_f_s_m__public_8h.html#aee4d6cf9b551102cbb7cb2f3e1e65377", null ], + [ "PreloaderGetReady", "_f_s_m__public_8h.html#aa4b1ff528d718db75faeba03a845fe46", null ], + [ "GetPreloaderOverFlag", "_f_s_m__public_8h.html#aef66ec3c44c151b23fbc98c10c514d32", null ], + [ "ClearPreloaderOverFlag", "_f_s_m__public_8h.html#ac11e3ebda7ba02fc42ac5de33fcfd148", null ], + [ "_preloadIn", "_f_s_m__public_8h.html#a9c285ac5bbad90b0b04de18d393cf4ce", null ], + [ "_preloaderGetReady", "_f_s_m__public_8h.html#a6e2a8d16f390efeaecc8938ec8f2e728", null ], + [ "_getPreloaderOverFlag", "_f_s_m__public_8h.html#a704103961964dbb8582b59fd161a3348", null ], + [ "_clearPreloaderOverFlag", "_f_s_m__public_8h.html#aad909acd21e17b8073d5d9dfb8892ccb", null ] +]; \ No newline at end of file diff --git a/vscode/manual/html/_f_s_m__public_8h_source.html b/vscode/manual/html/_f_s_m__public_8h_source.html index 44a859b..d8ec380 100644 --- a/vscode/manual/html/_f_s_m__public_8h_source.html +++ b/vscode/manual/html/_f_s_m__public_8h_source.html @@ -102,61 +102,62 @@ $(function(){initNavTree('_f_s_m__public_8h_source.html',''); initResizable(); }
FSM_public.h
-
1/*
-
2 * @Author: godcreator02 qq974980621@gmail.com
-
3 * @Date: 2024-04-20 18:52:14
-
4 * @LastEditors: godcreator02 qq974980621@gmail.com
-
5 * @LastEditTime: 2024-04-23 21:51:55
-
6 * @FilePath: \vscode\FSM_OOP\baseFSM\FSM_public.h
-
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-
8 */
-
9#ifndef __FSM_PUBLIC_H_
-
10#define __FSM_PUBLIC_H_
-
11
-
12typedef unsigned int Uint16;
-
13typedef unsigned long Uint32;
-
14
-
15#define BASE_FSM(ptr) ((FSM *)(ptr))
-
16#define BASE_PTR (FSM *)
-
17
-
18typedef struct FSM FSM;
+Go to the documentation of this file.
1
+
11#ifndef __FSM_PUBLIC_H_
+
12#define __FSM_PUBLIC_H_
+
13
+
14typedef unsigned int Uint16;
+
15typedef unsigned long Uint32;
+
16
+
17#define BASE_FSM(ptr) ((FSM *)(ptr))
+
18#define BASE_PTR (FSM *)
19
-
20/* -------------------------------- 避免警告的函数定义 ------------------------------- */
-
21#define Step(pFSM) _stepFSM((FSM *)pFSM)
-
22#define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM);
-
23#define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM)
-
24#define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM)
-
25#define GetData(pFSM) _getData((FSM*)pFSM)
-
26#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal)
-
27
+
20typedef struct FSM FSM;
+
21
+
22typedef struct FSMPublicFcns
+
23{
+
24 void (*step)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
+
25 void (*reset)(FSM *pFSM); // 子类重新实现可以添加一些打印信息
+
26
+
27}FSMPublicFcns;
28
-
29
-
30void _stepFSM(FSM *pFSM);
-
31/* --------------------------------- 状态机信息获取 -------------------------------- */
-
32int getFSMCurState(FSM *pFSM);
-
33int getFSMNextState(FSM *pFSM);
-
34void setChildNum(FSM *pFSM, int num);
-
35void registerChildFSM(FSM *parent, FSM *child, int index);
-
36
-
37/* ------------------------------ Data和Signals ------------------------------ */
-
38const void *_getData(FSM* pFSM);
-
39void _setSignal(FSM *pFSM, Uint16 signalFlag);
-
40
-
41/* ---------------------------------- 预装载器 ---------------------------------- */
-
42void *_preloadIn(FSM *pFSM);
-
43void _preloaderGetReady(FSM *pFSM);
-
44int _getPreloaderOverFlag(FSM *pFSM);
-
45void _clearPreloaderOverFlag(FSM *pFSM);
+
29/* -------------------------------- 避免警告的函数定义 ------------------------------- */
+
30#define Step(pFSM) _stepFSM((FSM *)pFSM)
+
31#define GetData(pFSM) _getData((FSM*)pFSM)
+
32#define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal)
+
35#define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM);
+
36#define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM)
+
37#define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM)
+
40void _stepFSM(FSM *pFSM);
+
41/* --------------------------------- 状态机信息获取 -------------------------------- */
+
42int getFSMCurState(FSM *pFSM);
+
43int getFSMNextState(FSM *pFSM);
+
44void setChildNum(FSM *pFSM, int num);
+
45void registerChildFSM(FSM *parent, FSM *child, int index);
46
-
47
-
48
-
49#endif
+
47/* ------------------------------ Data和Signals ------------------------------ */
+
48const void *_getData(FSM* pFSM);
+
49void _setSignal(FSM *pFSM, Uint16 signalFlag);
+
50
+
51/* ---------------------------------- 预装载器 ---------------------------------- */
+
52void *_preloadIn(FSM *pFSM);
+
53void _preloaderGetReady(FSM *pFSM);
+
54int _getPreloaderOverFlag(FSM *pFSM);
+
55void _clearPreloaderOverFlag(FSM *pFSM);
+
56
+
57
+
58
+
59#endif
+
void _preloaderGetReady(FSM *pFSM)
Definition FSM.c:179
+
int _getPreloaderOverFlag(FSM *pFSM)
Definition FSM.c:192
+
void * _preloadIn(FSM *pFSM)
Definition FSM.c:170
+
void _clearPreloaderOverFlag(FSM *pFSM)
Definition FSM.c:201
diff --git a/vscode/manual/html/annotated.html b/vscode/manual/html/annotated.html index 8f7afec..8373c3f 100644 --- a/vscode/manual/html/annotated.html +++ b/vscode/manual/html/annotated.html @@ -104,13 +104,13 @@ $(function(){initNavTree('annotated.html',''); initResizable(); });
Here are the data structures with brief descriptions:
- - - - - - - + + + + + + +
 C_templateFSMExternalData自定义外部数据
 C_templateFSMInnerData自定义内部数据
 CFSMDataLoader
 CFSMHandler状态处理函数集合,全部需要子类重新填充内容
 CFSMPrivateVars基类状态机的私有变量和函数,子类不可直接访问
 CFSMPureVtbl纯虚函数,子类必须重新实现,父类构造函数不会初始化
 CFSMSignals状态机用的信号,protected子类可以访问
 CFSMDataLoader
 CFSMHandler状态处理函数集合,全部需要子类重新填充内容
 CFSMPrivateVars基类状态机的私有变量和函数,子类不可直接访问
 CFSMPureVtbl纯虚函数,子类必须重新实现,父类构造函数不会初始化
 CFSMSignals状态机用的信号,protected子类可以访问
 CTemplateFSMExternalData自定义外部数据
 CTemplateFSMInnerData自定义内部数据
diff --git a/vscode/manual/html/annotated_dup.js b/vscode/manual/html/annotated_dup.js index 15d8eac..1567f67 100644 --- a/vscode/manual/html/annotated_dup.js +++ b/vscode/manual/html/annotated_dup.js @@ -1,10 +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" ] + [ "FSMSignals", "struct_f_s_m_signals.html", "struct_f_s_m_signals" ], + [ "TemplateFSMExternalData", "struct_template_f_s_m_external_data.html", null ], + [ "TemplateFSMInnerData", "struct_template_f_s_m_inner_data.html", null ] ]; \ No newline at end of file diff --git a/vscode/manual/html/classes.html b/vscode/manual/html/classes.html index d206d67..765ff6f 100644 --- a/vscode/manual/html/classes.html +++ b/vscode/manual/html/classes.html @@ -102,14 +102,14 @@ $(function(){initNavTree('classes.html',''); initResizable(); });
Data Structure Index
diff --git a/vscode/manual/html/deprecated.html b/vscode/manual/html/deprecated.html index 696e1c6..154d62a 100644 --- a/vscode/manual/html/deprecated.html +++ b/vscode/manual/html/deprecated.html @@ -103,14 +103,42 @@ $(function(){initNavTree('deprecated.html',''); initResizable(); });
+
Global _clearPreloaderOverFlag (FSM *pFSM)
+
弃用
+
Global _getPreloaderOverFlag (FSM *pFSM)
+
弃用
+
Global _preloaderGetReady (FSM *pFSM)
+
弃用
+
Global _preloadIn (FSM *pFSM)
+
弃用
+
Global ClearPreloaderOverFlag (pFSM)
+
Global FSMDataLoader
预装载器弃用
+
Global FSMHandler::childFSMStepTable )(FSM **cFSM)
+
子状态机暂时弃用
+
Global FSMPrivateVars::childFSM
+
和子状态机相关的暂时弃用
+
Global FSMPrivateVars::numChild
+
和子状态机相关的暂时弃用
Global FSMPrivateVars::preloader
-
弃用
+
弃用
Global FSMPureVtbl::initDataLoader )(FSM *pFSM)
-
和预装载器相关
+
和预装载器相关
Global FSMPureVtbl::loadExternalData )(void *extData)
-
暂时没用,后续可能考虑外部数据是否允许随时修改
+
暂时没用,后续可能考虑外部数据是否允许随时修改
+
Global GetPreloaderOverFlag (pFSM)
+
+
Global initDataLoader (TemplateFSM *pFSM)
+
弃用
+
Global loadExternalData (TemplateFSMData *data)
+
暂时没用,后续考虑data是否需要加锁再说
+
Global preload (FSM *pFSM)
+
去掉了所有和预装载器相关的内容
+
Global PreloaderGetReady (pFSM)
+
+
Global TemplateFSM_Input (pFSM)
+
暂时弃用
diff --git a/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.html b/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.html index 6785645..0398ed7 100644 --- a/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.html +++ b/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.html @@ -105,9 +105,14 @@ $(function(){initNavTree('dir_7883619b7fc78d5d5f504b4a82c84a2d.html',''); initRe - + + - + + + + +

Files

 templateFSM.h
 templateFSM.c
 重新实现几个必须实现的函数,并赋值到父类指针里
 
 templateFSM_private.h
 templateFSM.h
 对外暴露接口,外部可以设置状态机的信号
 
 templateFSM_private.h
 用来声明状态、状态函数等。这个文件只能被templateFSM.c引用一次!
 
diff --git a/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.js b/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.js index e94787e..bba3ee0 100644 --- a/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.js +++ b/vscode/manual/html/dir_7883619b7fc78d5d5f504b4a82c84a2d.js @@ -1,5 +1,6 @@ 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 ] + [ "templateFSM.c", "template_f_s_m_8c.html", "template_f_s_m_8c" ], + [ "templateFSM.h", "template_f_s_m_8h.html", "template_f_s_m_8h" ], + [ "templateFSM_private.h", "template_f_s_m__private_8h.html", "template_f_s_m__private_8h" ] ]; \ No newline at end of file diff --git a/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.html b/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.html index 015fc37..5adab5f 100644 --- a/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.html +++ b/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.html @@ -105,13 +105,15 @@ $(function(){initNavTree('dir_80fe18a48ef62b4daee0a25030c2866c.html',''); initRe + + - +

Files

 FSM.c
 
 FSM_private.h
 状态机框架的私有变量,只能在状态机框架内使用。
 
 FSM_protected.h
 状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
 
 FSM_public.h
 FSM_public.h
 
diff --git a/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.js b/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.js index 0dd91db..ea9e86c 100644 --- a/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.js +++ b/vscode/manual/html/dir_80fe18a48ef62b4daee0a25030c2866c.js @@ -1,6 +1,7 @@ var dir_80fe18a48ef62b4daee0a25030c2866c = [ + [ "FSM.c", "_f_s_m_8c.html", "_f_s_m_8c" ], [ "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 ] + [ "FSM_public.h", "_f_s_m__public_8h.html", "_f_s_m__public_8h" ] ]; \ No newline at end of file diff --git a/vscode/manual/html/doxygen_crawl.html b/vscode/manual/html/doxygen_crawl.html index 4b5cd2f..2922be6 100644 --- a/vscode/manual/html/doxygen_crawl.html +++ b/vscode/manual/html/doxygen_crawl.html @@ -18,16 +18,21 @@ + + + + + - - + + @@ -46,6 +51,14 @@ + + + + + + + + @@ -58,8 +71,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vscode/manual/html/files.html b/vscode/manual/html/files.html index 801697e..b53554a 100644 --- a/vscode/manual/html/files.html +++ b/vscode/manual/html/files.html @@ -106,19 +106,21 @@ $(function(){initNavTree('files.html',''); initResizable(); });
[detail level 123]
- - - - - - - - - - - - - + + + + + + + + + + + + + + +
  FSM_OOP
  baseFSM
 FSM_private.h状态机框架的私有变量,只能在状态机框架内使用。
 FSM_protected.h状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
 FSM_public.h
  childtest
 childFSM.h
 childFSM_private.h
 parentFSM.h
  keytest
 keyFSM.h
 keyFSM_private.h
  template
 templateFSM.h
 templateFSM_private.h
 FSM.c
 FSM_private.h状态机框架的私有变量,只能在状态机框架内使用。
 FSM_protected.h状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
 FSM_public.h
  childtest
 childFSM.h
 childFSM_private.h
 parentFSM.h
  keytest
 keyFSM.h
 keyFSM_private.h
  template
 templateFSM.c重新实现几个必须实现的函数,并赋值到父类指针里
 templateFSM.h对外暴露接口,外部可以设置状态机的信号
 templateFSM_private.h用来声明状态、状态函数等。这个文件只能被templateFSM.c引用一次!
diff --git a/vscode/manual/html/functions.html b/vscode/manual/html/functions.html index 8c35a68..aa6da96 100644 --- a/vscode/manual/html/functions.html +++ b/vscode/manual/html/functions.html @@ -100,8 +100,15 @@ $(function(){initNavTree('functions.html',''); initResizable(); });
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
diff --git a/vscode/manual/html/functions_vars.html b/vscode/manual/html/functions_vars.html index a8da8f5..b56cfb5 100644 --- a/vscode/manual/html/functions_vars.html +++ b/vscode/manual/html/functions_vars.html @@ -100,8 +100,15 @@ $(function(){initNavTree('functions_vars.html',''); initResizable(); });
Here is a list of all documented variables with links to the struct/union documentation for each field:
diff --git a/vscode/manual/html/globals.html b/vscode/manual/html/globals.html index 283a48c..ec07545 100644 --- a/vscode/manual/html/globals.html +++ b/vscode/manual/html/globals.html @@ -99,14 +99,90 @@ $(function(){initNavTree('globals.html',''); initResizable(); });
-
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
diff --git a/vscode/manual/html/globals_defs.html b/vscode/manual/html/globals_defs.html index df332dd..195f67e 100644 --- a/vscode/manual/html/globals_defs.html +++ b/vscode/manual/html/globals_defs.html @@ -100,7 +100,15 @@ $(function(){initNavTree('globals_defs.html',''); initResizable(); });
Here is a list of all documented macros with links to the documentation:
diff --git a/vscode/manual/html/globals_enum.html b/vscode/manual/html/globals_enum.html new file mode 100644 index 0000000..75c54cb --- /dev/null +++ b/vscode/manual/html/globals_enum.html @@ -0,0 +1,115 @@ + + + + + + + +状态机框架: Globals + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
状态机框架 0.1alpha +
+
by 天神
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented enums with links to the documentation:
+
+
+ + + + diff --git a/vscode/manual/html/globals_eval.html b/vscode/manual/html/globals_eval.html new file mode 100644 index 0000000..d5c253f --- /dev/null +++ b/vscode/manual/html/globals_eval.html @@ -0,0 +1,116 @@ + + + + + + + +状态机框架: Globals + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
状态机框架 0.1alpha +
+
by 天神
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented enum values with links to the documentation:
+
+
+ + + + diff --git a/vscode/manual/html/globals_func.html b/vscode/manual/html/globals_func.html index f8580d1..01ec02c 100644 --- a/vscode/manual/html/globals_func.html +++ b/vscode/manual/html/globals_func.html @@ -100,7 +100,21 @@ $(function(){initNavTree('globals_func.html',''); initResizable(); });
Here is a list of all documented functions with links to the documentation:
diff --git a/vscode/manual/html/globals_type.html b/vscode/manual/html/globals_type.html index 8dfb537..ef2d05d 100644 --- a/vscode/manual/html/globals_type.html +++ b/vscode/manual/html/globals_type.html @@ -105,6 +105,9 @@ $(function(){initNavTree('globals_type.html',''); initResizable(); });
  • FSMPrivateVars : FSM_private.h
  • FSMPureVtbl : FSM_protected.h
  • FSMSignals : FSM_private.h, FSM_protected.h
  • +
  • State : templateFSM_private.h
  • +
  • TemplateFSMExternalData : templateFSM.h
  • +
  • TemplateFSMInnerData : templateFSM.h
  • diff --git a/vscode/manual/html/navtreedata.js b/vscode/manual/html/navtreedata.js index 43038e0..cfbee56 100644 --- a/vscode/manual/html/navtreedata.js +++ b/vscode/manual/html/navtreedata.js @@ -40,6 +40,8 @@ var NAVTREE = [ "All", "globals.html", null ], [ "Functions", "globals_func.html", null ], [ "Typedefs", "globals_type.html", null ], + [ "Enumerations", "globals_enum.html", null ], + [ "Enumerator", "globals_eval.html", null ], [ "Macros", "globals_defs.html", null ] ] ] ] ] @@ -48,7 +50,7 @@ var NAVTREE = var NAVTREEINDEX = [ -"_f_s_m__private_8h.html" +"_f_s_m_8c.html" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/vscode/manual/html/navtreeindex0.js b/vscode/manual/html/navtreeindex0.js index c6121db..832a27e 100644 --- a/vscode/manual/html/navtreeindex0.js +++ b/vscode/manual/html/navtreeindex0.js @@ -1,19 +1,39 @@ 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], +"_f_s_m_8c.html":[2,0,0,0,0], +"_f_s_m_8c.html#a6b596586b33f46c312a7088e8352d226":[2,0,0,0,0,0], +"_f_s_m_8c.html#a6e2a8d16f390efeaecc8938ec8f2e728":[2,0,0,0,0,4], +"_f_s_m_8c.html#a704103961964dbb8582b59fd161a3348":[2,0,0,0,0,5], +"_f_s_m_8c.html#a7fc6a4715e8cbd7660788fd9c59cb417":[2,0,0,0,0,1], +"_f_s_m_8c.html#a9bab0f8eedb805136ee573eac09b6ebb":[2,0,0,0,0,2], +"_f_s_m_8c.html#a9c285ac5bbad90b0b04de18d393cf4ce":[2,0,0,0,0,3], +"_f_s_m_8c.html#aad909acd21e17b8073d5d9dfb8892ccb":[2,0,0,0,0,6], +"_f_s_m__private_8h.html":[2,0,0,0,1], +"_f_s_m__private_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba":[2,0,0,0,1,2], +"_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9":[2,0,0,0,1,5], +"_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432":[2,0,0,0,1,4], +"_f_s_m__private_8h.html#aa8470b4675b81ea69519ae6222c77e3f":[2,0,0,0,1,3], +"_f_s_m__private_8h.html#ac817972fed8a0babe2356c890f960e75":[2,0,0,0,1,6], +"_f_s_m__private_8h_source.html":[2,0,0,0,1], +"_f_s_m__protected_8h.html":[2,0,0,0,2], +"_f_s_m__protected_8h.html#a19064d5985c08b2ebbdfe2b27c6986ba":[2,0,0,0,2,4], +"_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037":[2,0,0,0,2,6], +"_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb":[2,0,0,0,2,7], +"_f_s_m__protected_8h.html#aa8470b4675b81ea69519ae6222c77e3f":[2,0,0,0,2,5], +"_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e":[2,0,0,0,2,3], +"_f_s_m__protected_8h_source.html":[2,0,0,0,2], +"_f_s_m__public_8h.html":[2,0,0,0,3], +"_f_s_m__public_8h.html#a336c6a01ee8af1e00bd175553788ec63":[2,0,0,0,3,1], +"_f_s_m__public_8h.html#a6cea0d8653df195e4325754c662be6a4":[2,0,0,0,3,0], +"_f_s_m__public_8h.html#a6e2a8d16f390efeaecc8938ec8f2e728":[2,0,0,0,3,7], +"_f_s_m__public_8h.html#a704103961964dbb8582b59fd161a3348":[2,0,0,0,3,8], +"_f_s_m__public_8h.html#a9c285ac5bbad90b0b04de18d393cf4ce":[2,0,0,0,3,6], +"_f_s_m__public_8h.html#aa4b1ff528d718db75faeba03a845fe46":[2,0,0,0,3,3], +"_f_s_m__public_8h.html#aad909acd21e17b8073d5d9dfb8892ccb":[2,0,0,0,3,9], +"_f_s_m__public_8h.html#ac11e3ebda7ba02fc42ac5de33fcfd148":[2,0,0,0,3,5], +"_f_s_m__public_8h.html#aee4d6cf9b551102cbb7cb2f3e1e65377":[2,0,0,0,3,2], +"_f_s_m__public_8h.html#aef66ec3c44c151b23fbc98c10c514d32":[2,0,0,0,3,4], +"_f_s_m__public_8h_source.html":[2,0,0,0,3], "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], @@ -28,7 +48,9 @@ var NAVTREEINDEX0 = "functions.html":[1,2,0], "functions_vars.html":[1,2,1], "globals.html":[2,1,0], -"globals_defs.html":[2,1,3], +"globals_defs.html":[2,1,5], +"globals_enum.html":[2,1,3], +"globals_eval.html":[2,1,4], "globals_func.html":[2,1,1], "globals_type.html":[2,1,2], "index.html":[], @@ -36,26 +58,58 @@ var NAVTREEINDEX0 = "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] +"struct_f_s_m_data_loader.html":[1,0,0], +"struct_f_s_m_handler.html":[1,0,1], +"struct_f_s_m_handler.html#a04721875a9baabc8a51c54a668db9a2c":[1,0,1,5], +"struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451":[1,0,1,0], +"struct_f_s_m_handler.html#a976b4147d1c0c9aeb4a61c3cc85376bf":[1,0,1,6], +"struct_f_s_m_handler.html#aa733ab89a48f8a63b4afb623b4d6be90":[1,0,1,3], +"struct_f_s_m_handler.html#ab199071e132b4409d71883155e6b81f2":[1,0,1,2], +"struct_f_s_m_handler.html#ac3b9fc077f8ba0368e8cba02a890aa2f":[1,0,1,1], +"struct_f_s_m_handler.html#ad3506a53c3ee76655a117f7db0da7d3d":[1,0,1,4], +"struct_f_s_m_private_vars.html":[1,0,2], +"struct_f_s_m_private_vars.html#a1e013b34f3da19006fdaef781e386ba7":[1,0,2,2], +"struct_f_s_m_private_vars.html#a38fc9622245dd2e2272d0511a603db69":[1,0,2,5], +"struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c":[1,0,2,3], +"struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe":[1,0,2,1], +"struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1":[1,0,2,8], +"struct_f_s_m_private_vars.html#a9f8a355881f1e3e990987090e6e9e37c":[1,0,2,0], +"struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7":[1,0,2,4], +"struct_f_s_m_private_vars.html#ac66fa0241dc6aa44e48e6b16811a8091":[1,0,2,6], +"struct_f_s_m_private_vars.html#ad20548555264a67dac6b18b757e01821":[1,0,2,7], +"struct_f_s_m_pure_vtbl.html":[1,0,3], +"struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1":[1,0,3,1], +"struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d":[1,0,3,2], +"struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8":[1,0,3,4], +"struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d":[1,0,3,0], +"struct_f_s_m_pure_vtbl.html#ae326d855d6a29d089f312d965bf032f2":[1,0,3,5], +"struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472":[1,0,3,3], +"struct_f_s_m_signals.html":[1,0,4], +"struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d":[1,0,4,1], +"struct_f_s_m_signals.html#a9586b8cdc522f49e9bc62d2b67a1d79b":[1,0,4,0], +"struct_template_f_s_m_external_data.html":[1,0,5], +"struct_template_f_s_m_inner_data.html":[1,0,6], +"template_f_s_m_8c.html":[2,0,0,3,0], +"template_f_s_m_8c.html#a48fc6ebf7882fb5d4437c4d64b96255b":[2,0,0,3,0,4], +"template_f_s_m_8c.html#a5ebc219bfad056d35b189b8e6fa94896":[2,0,0,3,0,2], +"template_f_s_m_8c.html#a7ae1c0974bb8e7f8b00f959a17d91f60":[2,0,0,3,0,1], +"template_f_s_m_8c.html#a8b945e9059bb82bf66884af5133eb898":[2,0,0,3,0,3], +"template_f_s_m_8c.html#a9e6eba3b03d1ff4c504705b2da864cb3":[2,0,0,3,0,0], +"template_f_s_m_8c.html#ab0fc4d91dbcaaffccd8f14e56173d696":[2,0,0,3,0,6], +"template_f_s_m_8c.html#ac23edf7d09bf4b52ca0cfbc1224c4c0d":[2,0,0,3,0,5], +"template_f_s_m_8h.html":[2,0,0,3,1], +"template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1":[2,0,0,3,1,5], +"template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee":[2,0,0,3,1,5,0], +"template_f_s_m_8h.html#ab0325ef0b5aef6334743cdd7c1d70bd9":[2,0,0,3,1,2], +"template_f_s_m_8h.html#ab0fc4d91dbcaaffccd8f14e56173d696":[2,0,0,3,1,6], +"template_f_s_m_8h.html#ad30e63631e0a6c61ac9cc9a47e31a5a5":[2,0,0,3,1,3], +"template_f_s_m_8h.html#adfdfb9e9cda040324f0952d1e8b80e05":[2,0,0,3,1,4], +"template_f_s_m_8h_source.html":[2,0,0,3,1], +"template_f_s_m__private_8h.html":[2,0,0,3,2], +"template_f_s_m__private_8h.html#adc4b74d6f88de7c72d2e260e836d267f":[2,0,0,3,2,1], +"template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855b":[2,0,0,3,2,2], +"template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394":[2,0,0,3,2,2,1], +"template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19":[2,0,0,3,2,2,0], +"template_f_s_m__private_8h.html#af93d7c80faa6ebd086460cde2d5dd27e":[2,0,0,3,2,0], +"template_f_s_m__private_8h_source.html":[2,0,0,3,2] }; diff --git a/vscode/manual/html/search/all_0.js b/vscode/manual/html/search/all_0.js index cd243d8..0351972 100644 --- a/vscode/manual/html/search/all_0.js +++ b/vscode/manual/html/search/all_0.js @@ -1,5 +1,8 @@ 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,'']]] + ['_5fclearpreloaderoverflag_0',['_clearPreloaderOverFlag',['../_f_s_m_8c.html#aad909acd21e17b8073d5d9dfb8892ccb',1,'_clearPreloaderOverFlag(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#aad909acd21e17b8073d5d9dfb8892ccb',1,'_clearPreloaderOverFlag(FSM *pFSM): FSM.c']]], + ['_5fgetpreloaderoverflag_1',['_getPreloaderOverFlag',['../_f_s_m_8c.html#a704103961964dbb8582b59fd161a3348',1,'_getPreloaderOverFlag(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#a704103961964dbb8582b59fd161a3348',1,'_getPreloaderOverFlag(FSM *pFSM): FSM.c']]], + ['_5fpreloadergetready_2',['_preloaderGetReady',['../_f_s_m_8c.html#a6e2a8d16f390efeaecc8938ec8f2e728',1,'_preloaderGetReady(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#a6e2a8d16f390efeaecc8938ec8f2e728',1,'_preloaderGetReady(FSM *pFSM): FSM.c']]], + ['_5fpreloadin_3',['_preloadIn',['../_f_s_m_8c.html#a9c285ac5bbad90b0b04de18d393cf4ce',1,'_preloadIn(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#a9c285ac5bbad90b0b04de18d393cf4ce',1,'_preloadIn(FSM *pFSM): FSM.c']]], + ['_5fstate_4',['_State',['../template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855b',1,'templateFSM_private.h']]] ]; diff --git a/vscode/manual/html/search/all_1.js b/vscode/manual/html/search/all_1.js index 364824f..27e6617 100644 --- a/vscode/manual/html/search/all_1.js +++ b/vscode/manual/html/search/all_1.js @@ -1,5 +1,4 @@ var searchData= [ - ['defaultstate_0',['defaultState',['../struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe',1,'FSMPrivateVars']]], - ['deprecated_20list_1',['Deprecated List',['../deprecated.html',1,'']]] + ['all_0',['all',['../struct_f_s_m_signals.html#a9586b8cdc522f49e9bc62d2b67a1d79b',1,'FSMSignals']]] ]; diff --git a/vscode/manual/html/search/all_2.js b/vscode/manual/html/search/all_2.js index 048e0ab..372d16f 100644 --- a/vscode/manual/html/search/all_2.js +++ b/vscode/manual/html/search/all_2.js @@ -1,4 +1,9 @@ var searchData= [ - ['external_0',['external',['../struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c',1,'FSMSignals']]] + ['childfsm_0',['childFSM',['../struct_f_s_m_private_vars.html#ad20548555264a67dac6b18b757e01821',1,'FSMPrivateVars']]], + ['childfsmsteptable_1',['childFSMStepTable',['../struct_f_s_m_handler.html#a976b4147d1c0c9aeb4a61c3cc85376bf',1,'FSMHandler']]], + ['clearpreloaderoverflag_2',['ClearPreloaderOverFlag',['../_f_s_m__public_8h.html#ac11e3ebda7ba02fc42ac5de33fcfd148',1,'FSM_public.h']]], + ['count_5fstate_3',['Count_State',['../template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394',1,'templateFSM_private.h']]], + ['createtemplatefsm_4',['createTemplateFSM',['../template_f_s_m_8c.html#ab0fc4d91dbcaaffccd8f14e56173d696',1,'createTemplateFSM(): templateFSM.c'],['../template_f_s_m_8h.html#ab0fc4d91dbcaaffccd8f14e56173d696',1,'createTemplateFSM(): templateFSM.c']]], + ['curstate_5',['curState',['../struct_f_s_m_private_vars.html#a1e013b34f3da19006fdaef781e386ba7',1,'FSMPrivateVars']]] ]; diff --git a/vscode/manual/html/search/all_3.js b/vscode/manual/html/search/all_3.js index b6923fc..d582492 100644 --- a/vscode/manual/html/search/all_3.js +++ b/vscode/manual/html/search/all_3.js @@ -1,10 +1,7 @@ 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']]] + ['default_5fstate_0',['DEFAULT_STATE',['../template_f_s_m__private_8h.html#af93d7c80faa6ebd086460cde2d5dd27e',1,'templateFSM_private.h']]], + ['defaultstate_1',['defaultState',['../struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe',1,'FSMPrivateVars']]], + ['deprecated_20list_2',['Deprecated List',['../deprecated.html',1,'']]], + ['duringactiontable_3',['duringActionTable',['../struct_f_s_m_handler.html#ad3506a53c3ee76655a117f7db0da7d3d',1,'FSMHandler']]] ]; diff --git a/vscode/manual/html/search/all_4.js b/vscode/manual/html/search/all_4.js index 92dd23e..7544627 100644 --- a/vscode/manual/html/search/all_4.js +++ b/vscode/manual/html/search/all_4.js @@ -1,8 +1,5 @@ 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']]] + ['enteractiontable_0',['enterActionTable',['../struct_f_s_m_handler.html#aa733ab89a48f8a63b4afb623b4d6be90',1,'FSMHandler']]], + ['exitactiontable_1',['exitActionTable',['../struct_f_s_m_handler.html#a04721875a9baabc8a51c54a668db9a2c',1,'FSMHandler']]] ]; diff --git a/vscode/manual/html/search/all_5.js b/vscode/manual/html/search/all_5.js index 7ef4105..1ed28f3 100644 --- a/vscode/manual/html/search/all_5.js +++ b/vscode/manual/html/search/all_5.js @@ -1,6 +1,13 @@ 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']]] + ['fcns_0',['fcns',['../struct_f_s_m_private_vars.html#a38fc9622245dd2e2272d0511a603db69',1,'FSMPrivateVars']]], + ['fsm_2ec_1',['FSM.c',['../_f_s_m_8c.html',1,'']]], + ['fsm_5fprivate_2eh_2',['FSM_private.h',['../_f_s_m__private_8h.html',1,'']]], + ['fsm_5fprotected_2eh_3',['FSM_protected.h',['../_f_s_m__protected_8h.html',1,'']]], + ['fsm_5fpublic_2eh_4',['FSM_public.h',['../_f_s_m__public_8h.html',1,'']]], + ['fsmdataloader_5',['FSMDataLoader',['../struct_f_s_m_data_loader.html',1,'FSMDataLoader'],['../_f_s_m__private_8h.html#a9116b0a24810b38fafae2fb986517432',1,'FSMDataLoader: FSM_private.h']]], + ['fsmhandler_6',['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_7',['FSMPrivateVars',['../struct_f_s_m_private_vars.html',1,'FSMPrivateVars'],['../_f_s_m__private_8h.html#a51a08a9c63b45851707caacfafca8cf9',1,'FSMPrivateVars: FSM_private.h']]], + ['fsmpurevtbl_8',['FSMPureVtbl',['../struct_f_s_m_pure_vtbl.html',1,'FSMPureVtbl'],['../_f_s_m__protected_8h.html#a5cfbf21b07540615b7ac4ea49a60b037',1,'FSMPureVtbl: FSM_protected.h']]], + ['fsmsignals_9',['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']]] ]; diff --git a/vscode/manual/html/search/all_6.js b/vscode/manual/html/search/all_6.js index 5078d9f..7e4b431 100644 --- a/vscode/manual/html/search/all_6.js +++ b/vscode/manual/html/search/all_6.js @@ -1,4 +1,5 @@ var searchData= [ - ['nextstate_0',['nextState',['../struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c',1,'FSMPrivateVars']]] + ['getdata_0',['GetData',['../_f_s_m__public_8h.html#a336c6a01ee8af1e00bd175553788ec63',1,'FSM_public.h']]], + ['getpreloaderoverflag_1',['GetPreloaderOverFlag',['../_f_s_m__public_8h.html#aef66ec3c44c151b23fbc98c10c514d32',1,'FSM_public.h']]] ]; diff --git a/vscode/manual/html/search/all_7.js b/vscode/manual/html/search/all_7.js index cee9462..b596f27 100644 --- a/vscode/manual/html/search/all_7.js +++ b/vscode/manual/html/search/all_7.js @@ -1,4 +1,9 @@ var searchData= [ - ['preloader_0',['preloader',['../struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1',1,'FSMPrivateVars']]] + ['idle_0',['Idle',['../template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19',1,'templateFSM_private.h']]], + ['idle_5fsignal_1',['Idle_Signal',['../_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e',1,'FSM_protected.h']]], + ['index_2',['index',['../struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7',1,'FSMPrivateVars']]], + ['initdata_3',['initData',['../struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1',1,'FSMPureVtbl::initData'],['../template_f_s_m_8c.html#a5ebc219bfad056d35b189b8e6fa94896',1,'initData(): templateFSM.c']]], + ['initdataloader_4',['initDataLoader',['../struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472',1,'FSMPureVtbl::initDataLoader'],['../template_f_s_m_8c.html#a8b945e9059bb82bf66884af5133eb898',1,'initDataLoader(): templateFSM.c']]], + ['initsignals_5',['initSignals',['../struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8',1,'FSMPureVtbl']]] ]; diff --git a/vscode/manual/html/search/all_8.js b/vscode/manual/html/search/all_8.js index 93273a6..a21b776 100644 --- a/vscode/manual/html/search/all_8.js +++ b/vscode/manual/html/search/all_8.js @@ -1,4 +1,6 @@ var searchData= [ - ['resetsignals_0',['resetSignals',['../struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1',1,'FSMPureVtbl']]] + ['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::loadExternalData'],['../template_f_s_m_8c.html#a9e6eba3b03d1ff4c504705b2da864cb3',1,'loadExternalData(): templateFSM.c']]] ]; diff --git a/vscode/manual/html/search/all_9.js b/vscode/manual/html/search/all_9.js index 7bd4587..63e71e4 100644 --- a/vscode/manual/html/search/all_9.js +++ b/vscode/manual/html/search/all_9.js @@ -1,6 +1,7 @@ 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']]] + ['newfmsprivatevars_0',['newFMSPrivateVars',['../_f_s_m__private_8h.html#ac817972fed8a0babe2356c890f960e75',1,'FSM_private.h']]], + ['nextstate_1',['nextState',['../struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c',1,'FSMPrivateVars']]], + ['numchild_2',['numChild',['../struct_f_s_m_private_vars.html#ac66fa0241dc6aa44e48e6b16811a8091',1,'FSMPrivateVars']]], + ['numstate_3',['numState',['../struct_f_s_m_private_vars.html#a9f8a355881f1e3e990987090e6e9e37c',1,'FSMPrivateVars']]] ]; diff --git a/vscode/manual/html/search/all_a.js b/vscode/manual/html/search/all_a.js new file mode 100644 index 0000000..eb6a23f --- /dev/null +++ b/vscode/manual/html/search/all_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['preload_0',['preload',['../_f_s_m_8c.html#a7fc6a4715e8cbd7660788fd9c59cb417',1,'FSM.c']]], + ['preloader_1',['preloader',['../struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1',1,'FSMPrivateVars']]], + ['preloadergetready_2',['PreloaderGetReady',['../_f_s_m__public_8h.html#aa4b1ff528d718db75faeba03a845fe46',1,'FSM_public.h']]] +]; diff --git a/vscode/manual/html/search/all_b.js b/vscode/manual/html/search/all_b.js new file mode 100644 index 0000000..65e38f7 --- /dev/null +++ b/vscode/manual/html/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resetsignals_0',['resetSignals',['../struct_f_s_m_pure_vtbl.html#ae326d855d6a29d089f312d965bf032f2',1,'FSMPureVtbl::resetSignals'],['../template_f_s_m_8c.html#a7ae1c0974bb8e7f8b00f959a17d91f60',1,'resetSignals(): templateFSM.c']]] +]; diff --git a/vscode/manual/html/search/all_c.js b/vscode/manual/html/search/all_c.js new file mode 100644 index 0000000..9deb2d8 --- /dev/null +++ b/vscode/manual/html/search/all_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['selectnextstate_0',['selectNextState',['../struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451',1,'FSMHandler']]], + ['setnextstate_1',['setNextState',['../_f_s_m_8c.html#a6b596586b33f46c312a7088e8352d226',1,'FSM.c']]], + ['setsignal_2',['SetSignal',['../_f_s_m__public_8h.html#aee4d6cf9b551102cbb7cb2f3e1e65377',1,'FSM_public.h']]], + ['setuphandler_3',['setupHandler',['../struct_f_s_m_pure_vtbl.html#a5fe3628ecfac4830ad9f64b1439fe57d',1,'FSMPureVtbl::setupHandler'],['../template_f_s_m_8c.html#a48fc6ebf7882fb5d4437c4d64b96255b',1,'setupHandler(FSMHandler *fcns): templateFSM.c']]], + ['signal_5fa_4',['Signal_A',['../template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee',1,'templateFSM.h']]], + ['state_5',['State',['../template_f_s_m__private_8h.html#adc4b74d6f88de7c72d2e260e836d267f',1,'templateFSM_private.h']]], + ['step_6',['step',['../template_f_s_m_8c.html#ac23edf7d09bf4b52ca0cfbc1224c4c0d',1,'templateFSM.c']]], + ['step_7',['Step',['../_f_s_m__public_8h.html#a6cea0d8653df195e4325754c662be6a4',1,'FSM_public.h']]], + ['stepbasefsm_8',['stepBaseFSM',['../_f_s_m_8c.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'stepBaseFSM(FSM *pFSM): FSM.c'],['../_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'stepBaseFSM(FSM *pFSM): FSM.c']]] +]; diff --git a/vscode/manual/html/search/all_d.js b/vscode/manual/html/search/all_d.js new file mode 100644 index 0000000..86fc74b --- /dev/null +++ b/vscode/manual/html/search/all_d.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['templatefsm_2ec_0',['templateFSM.c',['../template_f_s_m_8c.html',1,'']]], + ['templatefsm_2eh_1',['templateFSM.h',['../template_f_s_m_8h.html',1,'']]], + ['templatefsm_5finput_2',['TemplateFSM_Input',['../template_f_s_m_8h.html#ab0325ef0b5aef6334743cdd7c1d70bd9',1,'templateFSM.h']]], + ['templatefsm_5fprivate_2eh_3',['templateFSM_private.h',['../template_f_s_m__private_8h.html',1,'']]], + ['templatefsmexternaldata_4',['TemplateFSMExternalData',['../struct_template_f_s_m_external_data.html',1,'TemplateFSMExternalData'],['../template_f_s_m_8h.html#ad30e63631e0a6c61ac9cc9a47e31a5a5',1,'TemplateFSMExternalData: templateFSM.h']]], + ['templatefsminnerdata_5',['TemplateFSMInnerData',['../struct_template_f_s_m_inner_data.html',1,'TemplateFSMInnerData'],['../template_f_s_m_8h.html#adfdfb9e9cda040324f0952d1e8b80e05',1,'TemplateFSMInnerData: templateFSM.h']]], + ['templatefsmsignals_6',['TemplateFSMSignals',['../template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1',1,'templateFSM.h']]], + ['transitiongeneralaction_7',['transitionGeneralAction',['../struct_f_s_m_handler.html#ab199071e132b4409d71883155e6b81f2',1,'FSMHandler']]], + ['transitiontable_8',['transitionTable',['../struct_f_s_m_handler.html#ac3b9fc077f8ba0368e8cba02a890aa2f',1,'FSMHandler']]] +]; diff --git a/vscode/manual/html/search/classes_0.js b/vscode/manual/html/search/classes_0.js index cd243d8..8ef728d 100644 --- a/vscode/manual/html/search/classes_0.js +++ b/vscode/manual/html/search/classes_0.js @@ -1,5 +1,8 @@ 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,'']]] + ['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,'']]] ]; diff --git a/vscode/manual/html/search/classes_1.js b/vscode/manual/html/search/classes_1.js index 8ef728d..446d0fb 100644 --- a/vscode/manual/html/search/classes_1.js +++ b/vscode/manual/html/search/classes_1.js @@ -1,8 +1,5 @@ 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,'']]] + ['templatefsmexternaldata_0',['TemplateFSMExternalData',['../struct_template_f_s_m_external_data.html',1,'']]], + ['templatefsminnerdata_1',['TemplateFSMInnerData',['../struct_template_f_s_m_inner_data.html',1,'']]] ]; diff --git a/vscode/manual/html/search/defines_0.js b/vscode/manual/html/search/defines_0.js index 10665b2..e65603f 100644 --- a/vscode/manual/html/search/defines_0.js +++ b/vscode/manual/html/search/defines_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['idle_5fsignal_0',['Idle_Signal',['../_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e',1,'FSM_protected.h']]] + ['clearpreloaderoverflag_0',['ClearPreloaderOverFlag',['../_f_s_m__public_8h.html#ac11e3ebda7ba02fc42ac5de33fcfd148',1,'FSM_public.h']]] ]; diff --git a/vscode/manual/html/search/defines_1.js b/vscode/manual/html/search/defines_1.js new file mode 100644 index 0000000..f528cd8 --- /dev/null +++ b/vscode/manual/html/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['default_5fstate_0',['DEFAULT_STATE',['../template_f_s_m__private_8h.html#af93d7c80faa6ebd086460cde2d5dd27e',1,'templateFSM_private.h']]] +]; diff --git a/vscode/manual/html/search/defines_2.js b/vscode/manual/html/search/defines_2.js new file mode 100644 index 0000000..7e4b431 --- /dev/null +++ b/vscode/manual/html/search/defines_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['getdata_0',['GetData',['../_f_s_m__public_8h.html#a336c6a01ee8af1e00bd175553788ec63',1,'FSM_public.h']]], + ['getpreloaderoverflag_1',['GetPreloaderOverFlag',['../_f_s_m__public_8h.html#aef66ec3c44c151b23fbc98c10c514d32',1,'FSM_public.h']]] +]; diff --git a/vscode/manual/html/search/defines_3.js b/vscode/manual/html/search/defines_3.js new file mode 100644 index 0000000..10665b2 --- /dev/null +++ b/vscode/manual/html/search/defines_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['idle_5fsignal_0',['Idle_Signal',['../_f_s_m__protected_8h.html#addd5868b6424b70247fe4c8e5b7af29e',1,'FSM_protected.h']]] +]; diff --git a/vscode/manual/html/search/defines_4.js b/vscode/manual/html/search/defines_4.js new file mode 100644 index 0000000..7c34b1e --- /dev/null +++ b/vscode/manual/html/search/defines_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['preloadergetready_0',['PreloaderGetReady',['../_f_s_m__public_8h.html#aa4b1ff528d718db75faeba03a845fe46',1,'FSM_public.h']]] +]; diff --git a/vscode/manual/html/search/defines_5.js b/vscode/manual/html/search/defines_5.js new file mode 100644 index 0000000..478b757 --- /dev/null +++ b/vscode/manual/html/search/defines_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['setsignal_0',['SetSignal',['../_f_s_m__public_8h.html#aee4d6cf9b551102cbb7cb2f3e1e65377',1,'FSM_public.h']]], + ['step_1',['Step',['../_f_s_m__public_8h.html#a6cea0d8653df195e4325754c662be6a4',1,'FSM_public.h']]] +]; diff --git a/vscode/manual/html/search/defines_6.js b/vscode/manual/html/search/defines_6.js new file mode 100644 index 0000000..b89d4bf --- /dev/null +++ b/vscode/manual/html/search/defines_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['templatefsm_5finput_0',['TemplateFSM_Input',['../template_f_s_m_8h.html#ab0325ef0b5aef6334743cdd7c1d70bd9',1,'templateFSM.h']]] +]; diff --git a/vscode/manual/html/search/enums_0.js b/vscode/manual/html/search/enums_0.js new file mode 100644 index 0000000..d22546e --- /dev/null +++ b/vscode/manual/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fstate_0',['_State',['../template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855b',1,'templateFSM_private.h']]] +]; diff --git a/vscode/manual/html/search/enums_1.js b/vscode/manual/html/search/enums_1.js new file mode 100644 index 0000000..c000e23 --- /dev/null +++ b/vscode/manual/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['templatefsmsignals_0',['TemplateFSMSignals',['../template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1',1,'templateFSM.h']]] +]; diff --git a/vscode/manual/html/search/enumvalues_0.js b/vscode/manual/html/search/enumvalues_0.js new file mode 100644 index 0000000..2726743 --- /dev/null +++ b/vscode/manual/html/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['count_5fstate_0',['Count_State',['../template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394',1,'templateFSM_private.h']]] +]; diff --git a/vscode/manual/html/search/enumvalues_1.js b/vscode/manual/html/search/enumvalues_1.js new file mode 100644 index 0000000..309187b --- /dev/null +++ b/vscode/manual/html/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['idle_0',['Idle',['../template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19',1,'templateFSM_private.h']]] +]; diff --git a/vscode/manual/html/search/enumvalues_2.js b/vscode/manual/html/search/enumvalues_2.js new file mode 100644 index 0000000..dc7e2fd --- /dev/null +++ b/vscode/manual/html/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['signal_5fa_0',['Signal_A',['../template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee',1,'templateFSM.h']]] +]; diff --git a/vscode/manual/html/search/files_0.js b/vscode/manual/html/search/files_0.js index a27e663..3ac72af 100644 --- a/vscode/manual/html/search/files_0.js +++ b/vscode/manual/html/search/files_0.js @@ -1,5 +1,7 @@ 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,'']]] + ['fsm_2ec_0',['FSM.c',['../_f_s_m_8c.html',1,'']]], + ['fsm_5fprivate_2eh_1',['FSM_private.h',['../_f_s_m__private_8h.html',1,'']]], + ['fsm_5fprotected_2eh_2',['FSM_protected.h',['../_f_s_m__protected_8h.html',1,'']]], + ['fsm_5fpublic_2eh_3',['FSM_public.h',['../_f_s_m__public_8h.html',1,'']]] ]; diff --git a/vscode/manual/html/search/files_1.js b/vscode/manual/html/search/files_1.js new file mode 100644 index 0000000..dd0e712 --- /dev/null +++ b/vscode/manual/html/search/files_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['templatefsm_2ec_0',['templateFSM.c',['../template_f_s_m_8c.html',1,'']]], + ['templatefsm_2eh_1',['templateFSM.h',['../template_f_s_m_8h.html',1,'']]], + ['templatefsm_5fprivate_2eh_2',['templateFSM_private.h',['../template_f_s_m__private_8h.html',1,'']]] +]; diff --git a/vscode/manual/html/search/functions_0.js b/vscode/manual/html/search/functions_0.js index 3b51d26..1715881 100644 --- a/vscode/manual/html/search/functions_0.js +++ b/vscode/manual/html/search/functions_0.js @@ -1,4 +1,7 @@ var searchData= [ - ['stepbasefsm_0',['stepBaseFSM',['../_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'FSM.c']]] + ['_5fclearpreloaderoverflag_0',['_clearPreloaderOverFlag',['../_f_s_m_8c.html#aad909acd21e17b8073d5d9dfb8892ccb',1,'_clearPreloaderOverFlag(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#aad909acd21e17b8073d5d9dfb8892ccb',1,'_clearPreloaderOverFlag(FSM *pFSM): FSM.c']]], + ['_5fgetpreloaderoverflag_1',['_getPreloaderOverFlag',['../_f_s_m_8c.html#a704103961964dbb8582b59fd161a3348',1,'_getPreloaderOverFlag(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#a704103961964dbb8582b59fd161a3348',1,'_getPreloaderOverFlag(FSM *pFSM): FSM.c']]], + ['_5fpreloadergetready_2',['_preloaderGetReady',['../_f_s_m_8c.html#a6e2a8d16f390efeaecc8938ec8f2e728',1,'_preloaderGetReady(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#a6e2a8d16f390efeaecc8938ec8f2e728',1,'_preloaderGetReady(FSM *pFSM): FSM.c']]], + ['_5fpreloadin_3',['_preloadIn',['../_f_s_m_8c.html#a9c285ac5bbad90b0b04de18d393cf4ce',1,'_preloadIn(FSM *pFSM): FSM.c'],['../_f_s_m__public_8h.html#a9c285ac5bbad90b0b04de18d393cf4ce',1,'_preloadIn(FSM *pFSM): FSM.c']]] ]; diff --git a/vscode/manual/html/search/functions_1.js b/vscode/manual/html/search/functions_1.js new file mode 100644 index 0000000..444a45e --- /dev/null +++ b/vscode/manual/html/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['createtemplatefsm_0',['createTemplateFSM',['../template_f_s_m_8c.html#ab0fc4d91dbcaaffccd8f14e56173d696',1,'createTemplateFSM(): templateFSM.c'],['../template_f_s_m_8h.html#ab0fc4d91dbcaaffccd8f14e56173d696',1,'createTemplateFSM(): templateFSM.c']]] +]; diff --git a/vscode/manual/html/search/functions_2.js b/vscode/manual/html/search/functions_2.js new file mode 100644 index 0000000..4ea74a6 --- /dev/null +++ b/vscode/manual/html/search/functions_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['initdata_0',['initData',['../template_f_s_m_8c.html#a5ebc219bfad056d35b189b8e6fa94896',1,'templateFSM.c']]], + ['initdataloader_1',['initDataLoader',['../template_f_s_m_8c.html#a8b945e9059bb82bf66884af5133eb898',1,'templateFSM.c']]] +]; diff --git a/vscode/manual/html/search/functions_3.js b/vscode/manual/html/search/functions_3.js new file mode 100644 index 0000000..7d161d1 --- /dev/null +++ b/vscode/manual/html/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['loadexternaldata_0',['loadExternalData',['../template_f_s_m_8c.html#a9e6eba3b03d1ff4c504705b2da864cb3',1,'templateFSM.c']]] +]; diff --git a/vscode/manual/html/search/functions_4.js b/vscode/manual/html/search/functions_4.js new file mode 100644 index 0000000..a860712 --- /dev/null +++ b/vscode/manual/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['newfmsprivatevars_0',['newFMSPrivateVars',['../_f_s_m__private_8h.html#ac817972fed8a0babe2356c890f960e75',1,'FSM_private.h']]] +]; diff --git a/vscode/manual/html/search/functions_5.js b/vscode/manual/html/search/functions_5.js new file mode 100644 index 0000000..8549816 --- /dev/null +++ b/vscode/manual/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['preload_0',['preload',['../_f_s_m_8c.html#a7fc6a4715e8cbd7660788fd9c59cb417',1,'FSM.c']]] +]; diff --git a/vscode/manual/html/search/functions_6.js b/vscode/manual/html/search/functions_6.js new file mode 100644 index 0000000..4f7cddd --- /dev/null +++ b/vscode/manual/html/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resetsignals_0',['resetSignals',['../template_f_s_m_8c.html#a7ae1c0974bb8e7f8b00f959a17d91f60',1,'templateFSM.c']]] +]; diff --git a/vscode/manual/html/search/functions_7.js b/vscode/manual/html/search/functions_7.js new file mode 100644 index 0000000..3d3ce88 --- /dev/null +++ b/vscode/manual/html/search/functions_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['setnextstate_0',['setNextState',['../_f_s_m_8c.html#a6b596586b33f46c312a7088e8352d226',1,'FSM.c']]], + ['setuphandler_1',['setupHandler',['../template_f_s_m_8c.html#a48fc6ebf7882fb5d4437c4d64b96255b',1,'templateFSM.c']]], + ['step_2',['step',['../template_f_s_m_8c.html#ac23edf7d09bf4b52ca0cfbc1224c4c0d',1,'templateFSM.c']]], + ['stepbasefsm_3',['stepBaseFSM',['../_f_s_m_8c.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'stepBaseFSM(FSM *pFSM): FSM.c'],['../_f_s_m__protected_8h.html#a9bab0f8eedb805136ee573eac09b6ebb',1,'stepBaseFSM(FSM *pFSM): FSM.c']]] +]; diff --git a/vscode/manual/html/search/searchdata.js b/vscode/manual/html/search/searchdata.js index cee6ec6..02b9147 100644 --- a/vscode/manual/html/search/searchdata.js +++ b/vscode/manual/html/search/searchdata.js @@ -1,13 +1,15 @@ var indexSectionsWithContent = { - 0: "_defilnprs", - 1: "_f", - 2: "f", - 3: "s", - 4: "deilnprs", - 5: "f", - 6: "i", - 7: "dl" + 0: "_acdefgilnprst", + 1: "ft", + 2: "ft", + 3: "_cilnprs", + 4: "acdefilnprst", + 5: "fst", + 6: "_t", + 7: "cis", + 8: "cdgipst", + 9: "dl" }; var indexSectionNames = @@ -18,8 +20,10 @@ var indexSectionNames = 3: "functions", 4: "variables", 5: "typedefs", - 6: "defines", - 7: "pages" + 6: "enums", + 7: "enumvalues", + 8: "defines", + 9: "pages" }; var indexSectionLabels = @@ -30,7 +34,9 @@ var indexSectionLabels = 3: "Functions", 4: "Variables", 5: "Typedefs", - 6: "Macros", - 7: "Pages" + 6: "Enumerations", + 7: "Enumerator", + 8: "Macros", + 9: "Pages" }; diff --git a/vscode/manual/html/search/typedefs_1.js b/vscode/manual/html/search/typedefs_1.js new file mode 100644 index 0000000..22e21e1 --- /dev/null +++ b/vscode/manual/html/search/typedefs_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['state_0',['State',['../template_f_s_m__private_8h.html#adc4b74d6f88de7c72d2e260e836d267f',1,'templateFSM_private.h']]] +]; diff --git a/vscode/manual/html/search/typedefs_2.js b/vscode/manual/html/search/typedefs_2.js new file mode 100644 index 0000000..8ec323b --- /dev/null +++ b/vscode/manual/html/search/typedefs_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['templatefsmexternaldata_0',['TemplateFSMExternalData',['../template_f_s_m_8h.html#ad30e63631e0a6c61ac9cc9a47e31a5a5',1,'templateFSM.h']]], + ['templatefsminnerdata_1',['TemplateFSMInnerData',['../template_f_s_m_8h.html#adfdfb9e9cda040324f0952d1e8b80e05',1,'templateFSM.h']]] +]; diff --git a/vscode/manual/html/search/variables_0.js b/vscode/manual/html/search/variables_0.js index 8147c42..27e6617 100644 --- a/vscode/manual/html/search/variables_0.js +++ b/vscode/manual/html/search/variables_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['defaultstate_0',['defaultState',['../struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe',1,'FSMPrivateVars']]] + ['all_0',['all',['../struct_f_s_m_signals.html#a9586b8cdc522f49e9bc62d2b67a1d79b',1,'FSMSignals']]] ]; diff --git a/vscode/manual/html/search/variables_1.js b/vscode/manual/html/search/variables_1.js index 048e0ab..9868beb 100644 --- a/vscode/manual/html/search/variables_1.js +++ b/vscode/manual/html/search/variables_1.js @@ -1,4 +1,6 @@ var searchData= [ - ['external_0',['external',['../struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c',1,'FSMSignals']]] + ['childfsm_0',['childFSM',['../struct_f_s_m_private_vars.html#ad20548555264a67dac6b18b757e01821',1,'FSMPrivateVars']]], + ['childfsmsteptable_1',['childFSMStepTable',['../struct_f_s_m_handler.html#a976b4147d1c0c9aeb4a61c3cc85376bf',1,'FSMHandler']]], + ['curstate_2',['curState',['../struct_f_s_m_private_vars.html#a1e013b34f3da19006fdaef781e386ba7',1,'FSMPrivateVars']]] ]; diff --git a/vscode/manual/html/search/variables_2.js b/vscode/manual/html/search/variables_2.js index b656d52..bc6c310 100644 --- a/vscode/manual/html/search/variables_2.js +++ b/vscode/manual/html/search/variables_2.js @@ -1,7 +1,5 @@ var searchData= [ - ['index_0',['index',['../struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7',1,'FSMPrivateVars']]], - ['initdata_1',['initData',['../struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1',1,'FSMPureVtbl']]], - ['initdataloader_2',['initDataLoader',['../struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472',1,'FSMPureVtbl']]], - ['initsignals_3',['initSignals',['../struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8',1,'FSMPureVtbl']]] + ['defaultstate_0',['defaultState',['../struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe',1,'FSMPrivateVars']]], + ['duringactiontable_1',['duringActionTable',['../struct_f_s_m_handler.html#ad3506a53c3ee76655a117f7db0da7d3d',1,'FSMHandler']]] ]; diff --git a/vscode/manual/html/search/variables_3.js b/vscode/manual/html/search/variables_3.js index e39f9fa..7544627 100644 --- a/vscode/manual/html/search/variables_3.js +++ b/vscode/manual/html/search/variables_3.js @@ -1,5 +1,5 @@ var searchData= [ - ['lasttriggeredsignal_0',['lastTriggeredSignal',['../struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d',1,'FSMSignals']]], - ['loadexternaldata_1',['loadExternalData',['../struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d',1,'FSMPureVtbl']]] + ['enteractiontable_0',['enterActionTable',['../struct_f_s_m_handler.html#aa733ab89a48f8a63b4afb623b4d6be90',1,'FSMHandler']]], + ['exitactiontable_1',['exitActionTable',['../struct_f_s_m_handler.html#a04721875a9baabc8a51c54a668db9a2c',1,'FSMHandler']]] ]; diff --git a/vscode/manual/html/search/variables_4.js b/vscode/manual/html/search/variables_4.js index 5078d9f..52b326d 100644 --- a/vscode/manual/html/search/variables_4.js +++ b/vscode/manual/html/search/variables_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['nextstate_0',['nextState',['../struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c',1,'FSMPrivateVars']]] + ['fcns_0',['fcns',['../struct_f_s_m_private_vars.html#a38fc9622245dd2e2272d0511a603db69',1,'FSMPrivateVars']]] ]; diff --git a/vscode/manual/html/search/variables_5.js b/vscode/manual/html/search/variables_5.js index cee9462..b656d52 100644 --- a/vscode/manual/html/search/variables_5.js +++ b/vscode/manual/html/search/variables_5.js @@ -1,4 +1,7 @@ var searchData= [ - ['preloader_0',['preloader',['../struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1',1,'FSMPrivateVars']]] + ['index_0',['index',['../struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7',1,'FSMPrivateVars']]], + ['initdata_1',['initData',['../struct_f_s_m_pure_vtbl.html#a24fea698707e18e2d84385bfca118db1',1,'FSMPureVtbl']]], + ['initdataloader_2',['initDataLoader',['../struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472',1,'FSMPureVtbl']]], + ['initsignals_3',['initSignals',['../struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8',1,'FSMPureVtbl']]] ]; diff --git a/vscode/manual/html/search/variables_6.js b/vscode/manual/html/search/variables_6.js index 93273a6..e39f9fa 100644 --- a/vscode/manual/html/search/variables_6.js +++ b/vscode/manual/html/search/variables_6.js @@ -1,4 +1,5 @@ var searchData= [ - ['resetsignals_0',['resetSignals',['../struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1',1,'FSMPureVtbl']]] + ['lasttriggeredsignal_0',['lastTriggeredSignal',['../struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d',1,'FSMSignals']]], + ['loadexternaldata_1',['loadExternalData',['../struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d',1,'FSMPureVtbl']]] ]; diff --git a/vscode/manual/html/search/variables_7.js b/vscode/manual/html/search/variables_7.js index 1075d69..91fb035 100644 --- a/vscode/manual/html/search/variables_7.js +++ b/vscode/manual/html/search/variables_7.js @@ -1,5 +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']]] + ['nextstate_0',['nextState',['../struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c',1,'FSMPrivateVars']]], + ['numchild_1',['numChild',['../struct_f_s_m_private_vars.html#ac66fa0241dc6aa44e48e6b16811a8091',1,'FSMPrivateVars']]], + ['numstate_2',['numState',['../struct_f_s_m_private_vars.html#a9f8a355881f1e3e990987090e6e9e37c',1,'FSMPrivateVars']]] ]; diff --git a/vscode/manual/html/search/variables_8.js b/vscode/manual/html/search/variables_8.js new file mode 100644 index 0000000..cee9462 --- /dev/null +++ b/vscode/manual/html/search/variables_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['preloader_0',['preloader',['../struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1',1,'FSMPrivateVars']]] +]; diff --git a/vscode/manual/html/search/variables_9.js b/vscode/manual/html/search/variables_9.js new file mode 100644 index 0000000..bdde64c --- /dev/null +++ b/vscode/manual/html/search/variables_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resetsignals_0',['resetSignals',['../struct_f_s_m_pure_vtbl.html#ae326d855d6a29d089f312d965bf032f2',1,'FSMPureVtbl']]] +]; diff --git a/vscode/manual/html/search/variables_a.js b/vscode/manual/html/search/variables_a.js new file mode 100644 index 0000000..1075d69 --- /dev/null +++ b/vscode/manual/html/search/variables_a.js @@ -0,0 +1,5 @@ +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']]] +]; diff --git a/vscode/manual/html/search/variables_b.js b/vscode/manual/html/search/variables_b.js new file mode 100644 index 0000000..3253c9d --- /dev/null +++ b/vscode/manual/html/search/variables_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['transitiongeneralaction_0',['transitionGeneralAction',['../struct_f_s_m_handler.html#ab199071e132b4409d71883155e6b81f2',1,'FSMHandler']]], + ['transitiontable_1',['transitionTable',['../struct_f_s_m_handler.html#ac3b9fc077f8ba0368e8cba02a890aa2f',1,'FSMHandler']]] +]; diff --git a/vscode/manual/html/struct_f_s_m_handler.html b/vscode/manual/html/struct_f_s_m_handler.html index d3c47ba..a73bbe7 100644 --- a/vscode/manual/html/struct_f_s_m_handler.html +++ b/vscode/manual/html/struct_f_s_m_handler.html @@ -114,10 +114,22 @@ $(function(){initNavTree('struct_f_s_m_handler.html',''); initResizable(); }); Data Fields int(** selectNextState )(void *data, FSMSignals *signals)   +void(** transitionTable )(void *data) +  +void(* transitionGeneralAction )(void *data) +  +void(** enterActionTable )(void *data, FSM **cFSM) +  +void(** duringActionTable )(void *data, FSM **cFSM) +  +void(** exitActionTable )(void *data, FSM **cFSM) +  +void(** childFSMStepTable )(FSM **cFSM) + 

    Detailed Description

    状态处理函数集合,全部需要子类重新填充内容

    -

    这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦

    +

    这个结构体是私有变量,子状态机和外界都不该访问。但是写在FSM_protect.h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦

    Field Documentation

    ◆ selectNextState

    @@ -132,6 +144,96 @@ Data Fields

    每个状态配置的状态选择函数

    +
    + + +

    ◆ transitionTable

    + +
    +
    + + + + +
    void(** FSMHandler::transitionTable) (void *data)
    +
    +

    状态转移函数表

    + +
    +
    + +

    ◆ transitionGeneralAction

    + +
    +
    + + + + +
    void(* FSMHandler::transitionGeneralAction) (void *data)
    +
    +

    通用状态转移函数,不论有没有独立的状态转移函数都会执行

    + +
    +
    + +

    ◆ enterActionTable

    + +
    +
    + + + + +
    void(** FSMHandler::enterActionTable) (void *data, FSM **cFSM)
    +
    +

    进入状态时运行的函数,和plecs对标

    + +
    +
    + +

    ◆ duringActionTable

    + +
    +
    + + + + +
    void(** FSMHandler::duringActionTable) (void *data, FSM **cFSM)
    +
    +

    状态不变时运行的函数,和plecs对标

    + +
    +
    + +

    ◆ exitActionTable

    + +
    +
    + + + + +
    void(** FSMHandler::exitActionTable) (void *data, FSM **cFSM)
    +
    +

    状态退出时运行的函数,和plecs对标

    + +
    +
    + +

    ◆ childFSMStepTable

    + +
    +
    + + + + +
    void(** FSMHandler::childFSMStepTable) (FSM **cFSM)
    +
    +
    Deprecated
    子状态机暂时弃用
    +
    diff --git a/vscode/manual/html/struct_f_s_m_handler.js b/vscode/manual/html/struct_f_s_m_handler.js index 73c7430..ba27078 100644 --- a/vscode/manual/html/struct_f_s_m_handler.js +++ b/vscode/manual/html/struct_f_s_m_handler.js @@ -1,4 +1,10 @@ var struct_f_s_m_handler = [ - [ "selectNextState", "struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451", null ] + [ "selectNextState", "struct_f_s_m_handler.html#a934ff7d1a2f7714694b8a2927b5f8451", null ], + [ "transitionTable", "struct_f_s_m_handler.html#ac3b9fc077f8ba0368e8cba02a890aa2f", null ], + [ "transitionGeneralAction", "struct_f_s_m_handler.html#ab199071e132b4409d71883155e6b81f2", null ], + [ "enterActionTable", "struct_f_s_m_handler.html#aa733ab89a48f8a63b4afb623b4d6be90", null ], + [ "duringActionTable", "struct_f_s_m_handler.html#ad3506a53c3ee76655a117f7db0da7d3d", null ], + [ "exitActionTable", "struct_f_s_m_handler.html#a04721875a9baabc8a51c54a668db9a2c", null ], + [ "childFSMStepTable", "struct_f_s_m_handler.html#a976b4147d1c0c9aeb4a61c3cc85376bf", null ] ]; \ No newline at end of file diff --git a/vscode/manual/html/struct_f_s_m_private_vars.html b/vscode/manual/html/struct_f_s_m_private_vars.html index 20545c9..3678511 100644 --- a/vscode/manual/html/struct_f_s_m_private_vars.html +++ b/vscode/manual/html/struct_f_s_m_private_vars.html @@ -112,18 +112,43 @@ $(function(){initNavTree('struct_f_s_m_private_vars.html',''); initResizable(); + + + + + + + + + +

    Data Fields

    int numState
     
    int defaultState
     
    int curState
     
    int nextState
     
    int index
     
    FSMHandler fcns
     
    int numChild
     
    FSM ** childFSM
     
    FSMDataLoader preloader
     

    Detailed Description

    基类状态机的私有变量和函数,子类不可直接访问

    Field Documentation

    + +

    ◆ numState

    + +
    +
    + + + + +
    int FSMPrivateVars::numState
    +
    +

    状态数量

    + +
    +

    ◆ defaultState

    @@ -137,6 +162,21 @@ Data Fields

    Idle状态不能停留,必须指定一个初始状态

    +
    + + +

    ◆ curState

    + +
    +
    + + + + +
    int FSMPrivateVars::curState
    +
    +

    当前状态

    +
    @@ -167,6 +207,51 @@ Data Fields

    状态转移函数表对应的标号

    +
    + + +

    ◆ fcns

    + +
    +
    + + + + +
    FSMHandler FSMPrivateVars::fcns
    +
    +

    状态函数表

    + +
    +
    + +

    ◆ numChild

    + +
    +
    + + + + +
    int FSMPrivateVars::numChild
    +
    +
    Deprecated
    和子状态机相关的暂时弃用
    + +
    +
    + +

    ◆ childFSM

    + +
    +
    + + + + +
    FSM** FSMPrivateVars::childFSM
    +
    +
    Deprecated
    和子状态机相关的暂时弃用
    +
    @@ -180,7 +265,7 @@ Data Fields
    -
    Deprecated
    弃用
    +
    Deprecated
    弃用
    diff --git a/vscode/manual/html/struct_f_s_m_private_vars.js b/vscode/manual/html/struct_f_s_m_private_vars.js index 61aff9e..adf09d9 100644 --- a/vscode/manual/html/struct_f_s_m_private_vars.js +++ b/vscode/manual/html/struct_f_s_m_private_vars.js @@ -1,7 +1,12 @@ var struct_f_s_m_private_vars = [ + [ "numState", "struct_f_s_m_private_vars.html#a9f8a355881f1e3e990987090e6e9e37c", null ], [ "defaultState", "struct_f_s_m_private_vars.html#a4cc735365b8c3946ff83d1984e2565fe", null ], + [ "curState", "struct_f_s_m_private_vars.html#a1e013b34f3da19006fdaef781e386ba7", null ], [ "nextState", "struct_f_s_m_private_vars.html#a4312b61c7165398d2415c0794ac1fa8c", null ], [ "index", "struct_f_s_m_private_vars.html#ab14d89d4db1639abfab4a24f05cca6a7", null ], + [ "fcns", "struct_f_s_m_private_vars.html#a38fc9622245dd2e2272d0511a603db69", null ], + [ "numChild", "struct_f_s_m_private_vars.html#ac66fa0241dc6aa44e48e6b16811a8091", null ], + [ "childFSM", "struct_f_s_m_private_vars.html#ad20548555264a67dac6b18b757e01821", null ], [ "preloader", "struct_f_s_m_private_vars.html#a71ba0d8bee3f15ed5a0dd92dda0e0ed1", null ] ]; \ No newline at end of file diff --git a/vscode/manual/html/struct_f_s_m_pure_vtbl.html b/vscode/manual/html/struct_f_s_m_pure_vtbl.html index f9fdbc8..384c43b 100644 --- a/vscode/manual/html/struct_f_s_m_pure_vtbl.html +++ b/vscode/manual/html/struct_f_s_m_pure_vtbl.html @@ -122,8 +122,8 @@ Data Fields   void(* initSignals )(FSM *pFSM)   -void(* resetSignals )(FSMSignals *signalRegs, void *data) -  +void(* resetSignals )(FSMSignals *signals, void *data) + 

    Detailed Description

    纯虚函数,子类必须重新实现,父类构造函数不会初始化

    @@ -169,7 +169,7 @@ Data Fields
    -
    Deprecated
    暂时没用,后续可能考虑外部数据是否允许随时修改
    +
    Deprecated
    暂时没用,后续可能考虑外部数据是否允许随时修改
    @@ -184,7 +184,7 @@ Data Fields
    -
    Deprecated
    和预装载器相关
    +
    Deprecated
    和预装载器相关
    @@ -203,14 +203,14 @@ Data Fields - -

    ◆ resetSignals

    + +

    ◆ resetSignals

    - +
    void(* FSMPureVtbl::resetSignals) (FSMSignals *signalRegs, void *data)void(* FSMPureVtbl::resetSignals) (FSMSignals *signals, void *data)
    diff --git a/vscode/manual/html/struct_f_s_m_pure_vtbl.js b/vscode/manual/html/struct_f_s_m_pure_vtbl.js index 5c61737..dae8e08 100644 --- a/vscode/manual/html/struct_f_s_m_pure_vtbl.js +++ b/vscode/manual/html/struct_f_s_m_pure_vtbl.js @@ -5,5 +5,5 @@ var struct_f_s_m_pure_vtbl = [ "loadExternalData", "struct_f_s_m_pure_vtbl.html#a4973df3b86e460a458c9edf4699aa68d", null ], [ "initDataLoader", "struct_f_s_m_pure_vtbl.html#aebfd1efad93210ac02249a81159d1472", null ], [ "initSignals", "struct_f_s_m_pure_vtbl.html#a58c666f5941e07c4a6ef054f1250dbd8", null ], - [ "resetSignals", "struct_f_s_m_pure_vtbl.html#a65489698aee35862a265b30dff280ad1", null ] + [ "resetSignals", "struct_f_s_m_pure_vtbl.html#ae326d855d6a29d089f312d965bf032f2", null ] ]; \ No newline at end of file diff --git a/vscode/manual/html/struct_f_s_m_signals.html b/vscode/manual/html/struct_f_s_m_signals.html index f86dfbc..796538e 100644 --- a/vscode/manual/html/struct_f_s_m_signals.html +++ b/vscode/manual/html/struct_f_s_m_signals.html @@ -112,22 +112,23 @@ $(function(){initNavTree('struct_f_s_m_signals.html',''); initResizable(); }); - - + +

    Data Fields

    Uint16 external
     
    Uint16 all
     
    Uint16 lastTriggeredSignal
     

    Detailed Description

    状态机用的信号,protected子类可以访问

    +

    外部只能通过SetSignal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。

    Field Documentation

    - -

    ◆ external

    + +

    ◆ all

    - +
    Uint16 FSMSignals::externalUint16 FSMSignals::all
    @@ -146,7 +147,7 @@ Data Fields
    -

    上一次触发的外部信号

    +

    上一次触发的外部信号,用于信号清除

    diff --git a/vscode/manual/html/struct_f_s_m_signals.js b/vscode/manual/html/struct_f_s_m_signals.js index e2d26e9..ab63fa4 100644 --- a/vscode/manual/html/struct_f_s_m_signals.js +++ b/vscode/manual/html/struct_f_s_m_signals.js @@ -1,5 +1,5 @@ var struct_f_s_m_signals = [ - [ "external", "struct_f_s_m_signals.html#af67ec8fc1e3f46fda173b939dbe9116c", null ], + [ "all", "struct_f_s_m_signals.html#a9586b8cdc522f49e9bc62d2b67a1d79b", null ], [ "lastTriggeredSignal", "struct_f_s_m_signals.html#a0ed78b85dbee15c4928fc85546eaa10d", null ] ]; \ No newline at end of file diff --git a/vscode/manual/html/struct_template_f_s_m_external_data.html b/vscode/manual/html/struct_template_f_s_m_external_data.html new file mode 100644 index 0000000..7221066 --- /dev/null +++ b/vscode/manual/html/struct_template_f_s_m_external_data.html @@ -0,0 +1,122 @@ + + + + + + + +状态机框架: TemplateFSMExternalData Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    状态机框架 0.1alpha +
    +
    by 天神
    +
    + +   + + + + +
    +
    +
    + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    TemplateFSMExternalData Struct Reference
    +
    +
    + +

    自定义外部数据 + More...

    + +

    #include <templateFSM.h>

    +

    Detailed Description

    +

    自定义外部数据

    +
    +
    + + + + diff --git a/vscode/manual/html/struct_template_f_s_m_inner_data.html b/vscode/manual/html/struct_template_f_s_m_inner_data.html new file mode 100644 index 0000000..d8eaed9 --- /dev/null +++ b/vscode/manual/html/struct_template_f_s_m_inner_data.html @@ -0,0 +1,122 @@ + + + + + + + +状态机框架: TemplateFSMInnerData Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    状态机框架 0.1alpha +
    +
    by 天神
    +
    + +   + + + + +
    +
    +
    + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    TemplateFSMInnerData Struct Reference
    +
    +
    + +

    自定义内部数据 + More...

    + +

    #include <templateFSM.h>

    +

    Detailed Description

    +

    自定义内部数据

    +
    +
    + + + + diff --git a/vscode/manual/html/template_f_s_m_8c.html b/vscode/manual/html/template_f_s_m_8c.html new file mode 100644 index 0000000..298c432 --- /dev/null +++ b/vscode/manual/html/template_f_s_m_8c.html @@ -0,0 +1,377 @@ + + + + + + + +状态机框架: FSM_OOP/template/templateFSM.c File Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    状态机框架 0.1alpha +
    +
    by 天神
    +
    + +   + + + + +
    +
    +
    + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    templateFSM.c File Reference
    +
    +
    + +

    重新实现几个必须实现的函数,并赋值到父类指针里 +More...

    +
    #include <stdio.h>
    +#include <stdlib.h>
    +#include <string.h>
    +#include "FSM_protected.h"
    +#include "templateFSM.h"
    +#include "templateFSM_private.h"
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Functions

    static void loadExternalData (TemplateFSMData *data)
     
    static void resetSignals (FSMSignals *signals, TemplateFSMData *data)
     根据条件重置信号
     
    static void initData (TemplateFSM *pFSM)
     给所有内部、外部数据分配堆空间
     
    static void initDataLoader (TemplateFSM *pFSM)
     
    static void setupHandler (FSMHandler *fcns)
     设置状态选择函数、状态内函数和状态转移函数
     
    static void step (TemplateFSM *pFSM)
     重新实现基类的step函数,添加一些打印信息
     
    TemplateFSM * createTemplateFSM ()
     Create a Template FSM object.
     
    +

    Detailed Description

    +

    重新实现几个必须实现的函数,并赋值到父类指针里

    +
    Author
    天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
    +
    Version
    2.1
    +
    Date
    2024-05-07
    + +

    Function Documentation

    + +

    ◆ loadExternalData()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void loadExternalData (TemplateFSMData * data)
    +
    +static
    +
    +
    Deprecated
    暂时没用,后续考虑data是否需要加锁再说
    +
    Parameters
    + + +
    data主要是外部数据
    +
    +
    + +
    +
    + +

    ◆ resetSignals()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    static void resetSignals (FSMSignals * signals,
    TemplateFSMData * data )
    +
    +static
    +
    + +

    根据条件重置信号

    +

    清除被响应信号和所有小于被响应信号优先级的信号,具体可以参考notion

    Parameters
    + + + +
    signals状态机接收到的信号
    data状态机数据
    +
    +
    + +
    +
    + +

    ◆ initData()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void initData (TemplateFSM * pFSM)
    +
    +static
    +
    + +

    给所有内部、外部数据分配堆空间

    +
    Parameters
    + + +
    pFSM
    +
    +
    + +
    +
    + +

    ◆ initDataLoader()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void initDataLoader (TemplateFSM * pFSM)
    +
    +static
    +
    +
    Deprecated
    弃用
    +
    Parameters
    + + +
    pFSM
    +
    +
    + +
    +
    + +

    ◆ setupHandler()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void setupHandler (FSMHandler * fcns)
    +
    +static
    +
    + +

    设置状态选择函数、状态内函数和状态转移函数

    +
    Parameters
    + + +
    fcns状态机函数表
    +
    +
    + +
    +
    + +

    ◆ step()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void step (TemplateFSM * pFSM)
    +
    +static
    +
    + +

    重新实现基类的step函数,添加一些打印信息

    +
    Parameters
    + + +
    pFSM子类状态机指针
    +
    +
    + +
    +
    + +

    ◆ createTemplateFSM()

    + +
    +
    + + + + + + + +
    TemplateFSM * createTemplateFSM ()
    +
    + +

    Create a Template FSM object.

    +

    子类状态机细节对外隐藏,外部只能访问基类的公有函数来操作子类变量

    Returns
    TemplateFSM*
    + +
    +
    +
    +
    + + + + diff --git a/vscode/manual/html/template_f_s_m_8c.js b/vscode/manual/html/template_f_s_m_8c.js new file mode 100644 index 0000000..ecdbbb6 --- /dev/null +++ b/vscode/manual/html/template_f_s_m_8c.js @@ -0,0 +1,10 @@ +var template_f_s_m_8c = +[ + [ "loadExternalData", "template_f_s_m_8c.html#a9e6eba3b03d1ff4c504705b2da864cb3", null ], + [ "resetSignals", "template_f_s_m_8c.html#a7ae1c0974bb8e7f8b00f959a17d91f60", null ], + [ "initData", "template_f_s_m_8c.html#a5ebc219bfad056d35b189b8e6fa94896", null ], + [ "initDataLoader", "template_f_s_m_8c.html#a8b945e9059bb82bf66884af5133eb898", null ], + [ "setupHandler", "template_f_s_m_8c.html#a48fc6ebf7882fb5d4437c4d64b96255b", null ], + [ "step", "template_f_s_m_8c.html#ac23edf7d09bf4b52ca0cfbc1224c4c0d", null ], + [ "createTemplateFSM", "template_f_s_m_8c.html#ab0fc4d91dbcaaffccd8f14e56173d696", null ] +]; \ No newline at end of file diff --git a/vscode/manual/html/template_f_s_m_8h.html b/vscode/manual/html/template_f_s_m_8h.html new file mode 100644 index 0000000..24e2f86 --- /dev/null +++ b/vscode/manual/html/template_f_s_m_8h.html @@ -0,0 +1,234 @@ + + + + + + + +状态机框架: FSM_OOP/template/templateFSM.h File Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    状态机框架 0.1alpha +
    +
    by 天神
    +
    + +   + + + + +
    +
    +
    + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    templateFSM.h File Reference
    +
    +
    + +

    对外暴露接口,外部可以设置状态机的信号 +More...

    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Data Structures

    struct  TemplateFSMExternalData
     自定义外部数据 More...
     
    struct  TemplateFSMInnerData
     自定义内部数据 More...
     
    + + + +

    +Macros

    #define TemplateFSM_Input(pFSM)   ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM))
     
    + + + + + + + +

    +Typedefs

    +typedef struct TemplateFSMExternalData TemplateFSMExternalData
     自定义外部数据
     
    +typedef struct TemplateFSMInnerData TemplateFSMInnerData
     自定义内部数据
     
    + + + + +

    +Enumerations

    enum  TemplateFSMSignals { Signal_A = 1 +, Signal_B + }
     自定义外部信号,目前最多15个 More...
     
    + + + + +

    +Functions

    TemplateFSM * createTemplateFSM ()
     Create a Template FSM object.
     
    +

    Detailed Description

    +

    对外暴露接口,外部可以设置状态机的信号

    +
    Author
    天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
    +
    Version
    2.1
    +
    Date
    2024-05-07
    + +

    Macro Definition Documentation

    + +

    ◆ TemplateFSM_Input

    + +
    +
    + + + + + + + +
    #define TemplateFSM_Input( pFSM)   ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM))
    +
    +
    Deprecated
    暂时弃用
    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ TemplateFSMSignals

    + +
    +
    + + + + +
    enum TemplateFSMSignals
    +
    + +

    自定义外部信号,目前最多15个

    +

    因为是Unint16存储的信号位

    + + +
    Enumerator
    Signal_A 

    必须从1开始,0预留给Idle信号了

    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ createTemplateFSM()

    + +
    +
    + + + + + + + +
    TemplateFSM * createTemplateFSM ()
    +
    + +

    Create a Template FSM object.

    +

    子类状态机细节对外隐藏,外部只能访问基类的公有函数来操作子类变量

    Returns
    TemplateFSM*
    + +
    +
    +
    +
    + + + + diff --git a/vscode/manual/html/template_f_s_m_8h.js b/vscode/manual/html/template_f_s_m_8h.js new file mode 100644 index 0000000..85eed49 --- /dev/null +++ b/vscode/manual/html/template_f_s_m_8h.js @@ -0,0 +1,12 @@ +var template_f_s_m_8h = +[ + [ "TemplateFSMExternalData", "struct_template_f_s_m_external_data.html", null ], + [ "TemplateFSMInnerData", "struct_template_f_s_m_inner_data.html", null ], + [ "TemplateFSM_Input", "template_f_s_m_8h.html#ab0325ef0b5aef6334743cdd7c1d70bd9", null ], + [ "TemplateFSMExternalData", "template_f_s_m_8h.html#ad30e63631e0a6c61ac9cc9a47e31a5a5", null ], + [ "TemplateFSMInnerData", "template_f_s_m_8h.html#adfdfb9e9cda040324f0952d1e8b80e05", null ], + [ "TemplateFSMSignals", "template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1", [ + [ "Signal_A", "template_f_s_m_8h.html#a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee", null ] + ] ], + [ "createTemplateFSM", "template_f_s_m_8h.html#ab0fc4d91dbcaaffccd8f14e56173d696", null ] +]; \ No newline at end of file diff --git a/vscode/manual/html/template_f_s_m_8h_source.html b/vscode/manual/html/template_f_s_m_8h_source.html index 50ea1a6..b5a2ed0 100644 --- a/vscode/manual/html/template_f_s_m_8h_source.html +++ b/vscode/manual/html/template_f_s_m_8h_source.html @@ -102,63 +102,70 @@ $(function(){initNavTree('template_f_s_m_8h_source.html',''); initResizable(); }
    templateFSM.h
    -
    1#ifndef __TEMPLATE_FSM_H_
    -
    2#define __TEMPLATE_FSM_H_
    -
    3
    -
    4/* -------------------------------------------------------------------------- */
    -
    5/* 提前做类型声明 */
    -
    6/* -------------------------------------------------------------------------- */
    -
    7
    -
    8
    -
    9/* -------------------------------------------------------------------------- */
    -
    10/* 自定义数据和信号 */
    -
    11/* -------------------------------------------------------------------------- */
    -
    16enum TemplateFSMSignals{
    -
    17 Signal_A = 1,
    -
    18 Signal_B,
    -
    19};
    -
    20
    -
    - -
    26{
    -
    27 int arrindex;
    -
    28 int x;
    - +Go to the documentation of this file.
    1
    +
    12#ifndef __TEMPLATE_FSM_H_
    +
    13#define __TEMPLATE_FSM_H_
    +
    14
    +
    15/* -------------------------------------------------------------------------- */
    +
    16/* 提前做类型声明 */
    +
    17/* -------------------------------------------------------------------------- */
    +
    18
    +
    19
    +
    20/* -------------------------------------------------------------------------- */
    +
    21/* 自定义数据和信号 */
    +
    22/* -------------------------------------------------------------------------- */
    +
    + + +
    30 Signal_B,
    +
    31};
    -
    30
    -
    31
    -
    - -
    37{
    -
    38 int y1;
    -
    39 int inner1;
    - +
    32
    +
    + +
    38{
    +
    39 int arrindex;
    +
    40 int x;
    +
    -
    41
    -
    42/* -------------------------------------------------------------------------- */
    -
    43/* 下面的改个名字就行了 */
    -
    44/* -------------------------------------------------------------------------- */
    -
    45#define TemplateFSM_Input(pFSM) ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM))
    -
    46
    -
    47typedef struct _templateFSMData
    -
    48{
    - -
    50 TemplateFSMInnerData internal;
    -
    51}TemplateFSMData;
    -
    52
    -
    53typedef struct _TemplateFSM TemplateFSM;
    -
    54TemplateFSM *createTemplateFSM();
    -
    55
    -
    56
    -
    57#endif
    -
    自定义外部数据
    Definition templateFSM.h:26
    -
    自定义内部数据
    Definition templateFSM.h:37
    +
    42
    +
    43
    +
    + +
    49{
    +
    50 int y1;
    +
    51 int inner1;
    + +
    +
    53
    +
    54/* -------------------------------------------------------------------------- */
    +
    55/* 下面的改个名字就行了 */
    +
    56/* -------------------------------------------------------------------------- */
    +
    57#define TemplateFSM_Input(pFSM) ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM))
    +
    59typedef struct TemplateFSMData
    +
    60{
    + +
    62 TemplateFSMInnerData internal;
    +
    63}TemplateFSMData;
    +
    64
    +
    65typedef struct TemplateFSM TemplateFSM;
    +
    66TemplateFSM *createTemplateFSM();
    +
    67
    +
    68
    +
    69#endif
    +
    自定义外部数据
    Definition templateFSM.h:38
    +
    自定义内部数据
    Definition templateFSM.h:49
    +
    TemplateFSMSignals
    自定义外部信号,目前最多15个
    Definition templateFSM.h:28
    +
    @ Signal_A
    Definition templateFSM.h:29
    +
    TemplateFSM * createTemplateFSM()
    Create a Template FSM object.
    Definition templateFSM.c:143
    +
    struct TemplateFSMExternalData TemplateFSMExternalData
    自定义外部数据
    +
    struct TemplateFSMInnerData TemplateFSMInnerData
    自定义内部数据
    diff --git a/vscode/manual/html/template_f_s_m__private_8h.html b/vscode/manual/html/template_f_s_m__private_8h.html new file mode 100644 index 0000000..6b29737 --- /dev/null +++ b/vscode/manual/html/template_f_s_m__private_8h.html @@ -0,0 +1,195 @@ + + + + + + + +状态机框架: FSM_OOP/template/templateFSM_private.h File Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    状态机框架 0.1alpha +
    +
    by 天神
    +
    + +   + + + + +
    +
    +
    + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    templateFSM_private.h File Reference
    +
    +
    + +

    用来声明状态、状态函数等。这个文件只能被templateFSM.c引用一次! +More...

    +
    #include "FSM_protected.h"
    +#include "templateFSM.h"
    +#include <stdio.h>
    +
    +

    Go to the source code of this file.

    + + + + +

    +Macros

    #define DEFAULT_STATE   E
     
    + + + + +

    +Typedefs

    +typedef enum _State State
     状态机内状态定义,Idle和Count_State必须占据开头和结尾两个位置
     
    + + + + +

    +Enumerations

    enum  _State { Idle +, D +, E +, Count_State + }
     状态机内状态定义,Idle和Count_State必须占据开头和结尾两个位置 More...
     
    +

    Detailed Description

    +

    用来声明状态、状态函数等。这个文件只能被templateFSM.c引用一次!

    +
    Author
    天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
    +
    Version
    2.1
    +
    Date
    2024-05-07
    + +

    Macro Definition Documentation

    + +

    ◆ DEFAULT_STATE

    + +
    +
    + + + + +
    #define DEFAULT_STATE   E
    +
    +

    默认状态,Idle状态会先跳转到默认状态

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ _State

    + +
    +
    + + + + +
    enum _State
    +
    + +

    状态机内状态定义,Idle和Count_State必须占据开头和结尾两个位置

    + + + +
    Enumerator
    Idle 

    必须在开头,并且枚举值=0

    +
    Count_State 

    必须在结尾,用来统计状态数量

    +
    + +
    +
    +
    +
    + + + + diff --git a/vscode/manual/html/template_f_s_m__private_8h.js b/vscode/manual/html/template_f_s_m__private_8h.js new file mode 100644 index 0000000..85a4e3c --- /dev/null +++ b/vscode/manual/html/template_f_s_m__private_8h.js @@ -0,0 +1,9 @@ +var template_f_s_m__private_8h = +[ + [ "DEFAULT_STATE", "template_f_s_m__private_8h.html#af93d7c80faa6ebd086460cde2d5dd27e", null ], + [ "State", "template_f_s_m__private_8h.html#adc4b74d6f88de7c72d2e260e836d267f", null ], + [ "_State", "template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855b", [ + [ "Idle", "template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19", null ], + [ "Count_State", "template_f_s_m__private_8h.html#af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394", null ] + ] ] +]; \ No newline at end of file diff --git a/vscode/manual/html/template_f_s_m__private_8h_source.html b/vscode/manual/html/template_f_s_m__private_8h_source.html index 9057697..b8be339 100644 --- a/vscode/manual/html/template_f_s_m__private_8h_source.html +++ b/vscode/manual/html/template_f_s_m__private_8h_source.html @@ -102,157 +102,170 @@ $(function(){initNavTree('template_f_s_m__private_8h_source.html',''); initResiz
    templateFSM_private.h
    -
    1#ifdef __TEMPLATE_PRIVATE_FSM_H_
    -
    2#error This file can only be included once!!!
    -
    3
    -
    4#else
    -
    5#define __TEMPLATE_PRIVATE_FSM_H_
    -
    6
    -
    7#include "FSM_protected.h"
    -
    8#include "templateFSM.h"
    -
    9#include <stdio.h>
    -
    10
    -
    11/* -------------------------------------------------------------------------- */
    -
    12/* 用到的外部变量 */
    -
    13/* -------------------------------------------------------------------------- */
    -
    14extern int arrindex;
    -
    15extern int x;
    -
    16
    +Go to the documentation of this file.
    1
    +
    12#ifdef __TEMPLATE_PRIVATE_FSM_H_
    +
    13#error This file can only be included once!!!
    +
    14
    +
    15#else
    +
    16#define __TEMPLATE_PRIVATE_FSM_H_
    17
    -
    18/* -------------------------------------------------------------------------- */
    -
    19/* 继承基类 */
    -
    20/* -------------------------------------------------------------------------- */
    -
    21typedef struct _TemplateFSM
    -
    22{
    -
    23 FSM base;
    -
    24}TemplateFSM;
    -
    25
    -
    26/* -------------------------------------------------------------------------- */
    -
    27/* 状态定义 */
    -
    28/* -------------------------------------------------------------------------- */
    -
    29typedef enum _State
    -
    30{
    -
    31 Idle,
    -
    32 D,
    -
    33 E,
    -
    34
    -
    35 Count_State,
    -
    36} State;
    -
    37#define DEFAULT_STATE E
    -
    38
    +
    18#include "FSM_protected.h"
    +
    19#include "templateFSM.h"
    +
    20#include <stdio.h>
    +
    21
    +
    22/* -------------------------------------------------------------------------- */
    +
    23/* 用到的外部变量 */
    +
    24/* -------------------------------------------------------------------------- */
    +
    25extern int arrindex;
    +
    26extern int x;
    +
    27
    +
    28
    +
    29/* -------------------------------------------------------------------------- */
    +
    30/* 继承基类 */
    +
    31/* -------------------------------------------------------------------------- */
    +
    32typedef struct TemplateFSM
    +
    33{
    +
    34 FSM base;
    +
    35}TemplateFSM;
    +
    36
    +
    37/* -------------------------------------------------------------------------- */
    +
    38/* 状态定义 */
    39/* -------------------------------------------------------------------------- */
    -
    40/* 下一个状态选择函数 */
    -
    41/* -------------------------------------------------------------------------- */
    -
    42
    -
    43
    -
    44static State selectNextStateFcn(D)(TemplateFSMData *data, FSMSignals *signals){
    -
    45 if(getSignal(signals, Signal_A)){
    -
    46 signals->lastTriggeredSignal = Signal_A;
    -
    47 return E;
    -
    48 }
    -
    49 else if(arrindex == 0){
    -
    50 return E;
    -
    51 }
    -
    52 return Idle;
    -
    53}
    -
    54
    -
    55static State selectNextStateFcn(E)(TemplateFSMData *data, FSMSignals *signals){
    -
    56 if(getSignal(signals, Signal_A)){
    -
    57 signals->lastTriggeredSignal = Signal_A;
    -
    58 return D;
    -
    59 }
    -
    60 else if(x == 0){
    -
    61 return D;
    -
    62 }
    -
    63 return Idle;
    -
    64}
    -
    65
    -
    66
    -
    67
    -
    68/* -------------------------------------------------------------------------- */
    -
    69/* 对应的 action, exit, during 函数 */
    -
    70/* -------------------------------------------------------------------------- */
    -
    71static void actionFcn(enter, D)()
    -
    72{
    -
    73 FSM_LOG(" enterD ");
    -
    74}
    -
    75static void actionFcn(during, D)()
    -
    76{
    -
    77 FSM_LOG(" duringD ");
    -
    78}
    -
    79static void actionFcn(exit, D)()
    -
    80{
    -
    81 FSM_LOG(" exitD ");
    -
    82}
    +
    40
    +
    +
    45typedef enum _State
    +
    46{
    + +
    48 D,
    +
    49 E,
    +
    50
    + + +
    +
    53#define DEFAULT_STATE E
    +
    55/* -------------------------------------------------------------------------- */
    +
    56/* 下一个状态选择函数 */
    +
    57/* -------------------------------------------------------------------------- */
    +
    58
    +
    59
    +
    60static State selectNextStateFcn(D)(TemplateFSMData *data, FSMSignals *signals){
    +
    61 if(getSignal(signals, Signal_A)){
    +
    62 signals->lastTriggeredSignal = Signal_A;
    +
    63 return E;
    +
    64 }
    +
    65 else if(arrindex == 0){
    +
    66 return E;
    +
    67 }
    +
    68 return Idle;
    +
    69}
    +
    70
    +
    71static State selectNextStateFcn(E)(TemplateFSMData *data, FSMSignals *signals){
    +
    72 if(getSignal(signals, Signal_A)){
    +
    73 signals->lastTriggeredSignal = Signal_A;
    +
    74 return D;
    +
    75 }
    +
    76 else if(x == 0){
    +
    77 return D;
    +
    78 }
    +
    79 return Idle;
    +
    80}
    +
    81
    +
    82
    83
    -
    84static void actionFcn(enter, E)()
    -
    85{
    -
    86 FSM_LOG(" enterE ");
    -
    87}
    -
    88static void actionFcn(during, E)()
    -
    89{
    -
    90 FSM_LOG(" duringE ");
    -
    91}
    -
    92static void actionFcn(exit, E)()
    -
    93{
    -
    94 FSM_LOG(" exitE ");
    -
    95}
    -
    96
    -
    97
    -
    98
    -
    99/* -------------------------------------------------------------------------- */
    -
    100/* 转移函数 */
    -
    101/* -------------------------------------------------------------------------- */
    -
    102static void transitionGeneralAction(TemplateFSMData *data){
    -
    103 FSM_LOG("general");
    -
    104}
    -
    105
    -
    106static void transitionHandler(Idle, D)()
    -
    107{
    -
    108 FSM_LOG(" Idle2D ");
    -
    109}
    -
    110
    -
    111static void transitionHandler(Idle, E)()
    -
    112{
    -
    113 FSM_LOG(" Idle2E ");
    -
    114}
    -
    115
    -
    116static void transitionHandler(D, E)(TemplateFSMData *data, int *delayedIndex)
    -
    117{
    -
    118 *delayedIndex = index(D, E);
    -
    119 FSM_LOG(" D2E ");
    +
    84/* -------------------------------------------------------------------------- */
    +
    85/* 对应的 action, exit, during 函数 */
    +
    86/* -------------------------------------------------------------------------- */
    +
    87static void actionFcn(enter, D)()
    +
    88{
    +
    89 FSM_LOG(" enterD ");
    +
    90}
    +
    91static void actionFcn(during, D)()
    +
    92{
    +
    93 FSM_LOG(" duringD ");
    +
    94}
    +
    95static void actionFcn(exit, D)()
    +
    96{
    +
    97 FSM_LOG(" exitD ");
    +
    98}
    +
    99
    +
    100static void actionFcn(enter, E)()
    +
    101{
    +
    102 FSM_LOG(" enterE ");
    +
    103}
    +
    104static void actionFcn(during, E)()
    +
    105{
    +
    106 FSM_LOG(" duringE ");
    +
    107}
    +
    108static void actionFcn(exit, E)()
    +
    109{
    +
    110 FSM_LOG(" exitE ");
    +
    111}
    +
    112
    +
    113
    +
    114
    +
    115/* -------------------------------------------------------------------------- */
    +
    116/* 转移函数 */
    +
    117/* -------------------------------------------------------------------------- */
    +
    118static void transitionGeneralAction(FSM pFSM){
    +
    119 FSM_LOG("general");
    120}
    121
    -
    122static void transitionHandler(E, D)()
    -
    123{
    -
    124 FSM_LOG(" E2D ");
    -
    125}
    -
    126
    -
    127
    -
    128/* -------------------------------------------------------------------------- */
    -
    129/* 打印调试 */
    -
    130/* -------------------------------------------------------------------------- */
    -
    131const static char *stateStr[] = {
    -
    132 "Idle",
    -
    133 "D",
    -
    134 "E",
    -
    135};
    -
    136
    -
    137static void printFSM(TemplateFSM* pFSM){
    -
    138 FSM_LOG(" \tTemplateFSM: ");
    -
    139 FSM_LOG("预装载器溢出:%d, 当前状态:%s, 动作:", _getPreloaderOverFlag((FSM *)pFSM), stateStr[getFSMCurState((FSM *)pFSM)]);
    +
    122// static void transitionGeneralAction(TemplateFSMData *data){
    +
    123// FSM_LOG("general");
    +
    124// }
    +
    125
    +
    126static void transitionHandler(Idle, D)()
    +
    127{
    +
    128 FSM_LOG(" Idle2D ");
    +
    129}
    +
    130
    +
    131static void transitionHandler(Idle, E)()
    +
    132{
    +
    133 FSM_LOG(" Idle2E ");
    +
    134}
    +
    135
    +
    136static void transitionHandler(D, E)(TemplateFSMData *data, int *delayedIndex)
    +
    137{
    +
    138 *delayedIndex = index(D, E);
    +
    139 FSM_LOG(" D2E ");
    140}
    141
    -
    142
    -
    143#endif
    +
    142static void transitionHandler(E, D)()
    +
    143{
    +
    144 FSM_LOG(" E2D ");
    +
    145}
    +
    146
    +
    147
    +
    148/* -------------------------------------------------------------------------- */
    +
    149/* 打印调试 */
    +
    150/* -------------------------------------------------------------------------- */
    +
    151const static char *stateStr[] = {
    +
    152 "Idle",
    +
    153 "D",
    +
    154 "E",
    +
    155};
    +
    156
    +
    157static void printFSM(TemplateFSM* pFSM){
    +
    158 FSM_LOG(" \tTemplateFSM: ");
    +
    159 FSM_LOG("预装载器溢出:%d, 当前状态:%s, 动作:", _getPreloaderOverFlag((FSM *)pFSM), stateStr[getFSMCurState((FSM *)pFSM)]);
    +
    160}
    +
    161
    +
    162
    +
    163#endif
    +
    int _getPreloaderOverFlag(FSM *pFSM)
    Definition FSM.c:192
    状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用
    -
    状态机用的信号,protected子类可以访问
    Definition FSM_protected.h:85
    +
    状态机用的信号,protected子类可以访问
    Definition FSM_protected.h:86
    +
    对外暴露接口,外部可以设置状态机的信号
    +
    @ Signal_A
    Definition templateFSM.h:29
    +
    enum _State State
    状态机内状态定义,Idle和Count_State必须占据开头和结尾两个位置
    +
    @ Count_State
    Definition templateFSM_private.h:51
    +
    @ Idle
    Definition templateFSM_private.h:47
    diff --git a/vscode/manual/latex/_f_s_m_8c.tex b/vscode/manual/latex/_f_s_m_8c.tex new file mode 100644 index 0000000..40676f5 --- /dev/null +++ b/vscode/manual/latex/_f_s_m_8c.tex @@ -0,0 +1,145 @@ +\doxysection{FSM\+\_\+\+OOP/base\+FSM/\+FSM.c File Reference} +\hypertarget{_f_s_m_8c}{}\label{_f_s_m_8c}\index{FSM\_OOP/baseFSM/FSM.c@{FSM\_OOP/baseFSM/FSM.c}} +{\ttfamily \#include $<$stdlib.\+h$>$}\newline +{\ttfamily \#include $<$stdio.\+h$>$}\newline +{\ttfamily \#include $<$assert.\+h$>$}\newline +{\ttfamily \#include $<$string.\+h$>$}\newline +{\ttfamily \#include "{}FSM\+\_\+private.\+h"{}}\newline +{\ttfamily \#include "{}FSM\+\_\+protected.\+h"{}}\newline +{\ttfamily \#include "{}FSM\+\_\+public.\+h"{}}\newline +\doxysubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +static void \mbox{\hyperlink{_f_s_m_8c_a6b596586b33f46c312a7088e8352d226}{set\+Next\+State}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\begin{DoxyCompactList}\small\item\em 设置下一个状态,里面的子状态机暂时没用到 \end{DoxyCompactList}\item +static void \mbox{\hyperlink{_f_s_m_8c_a7fc6a4715e8cbd7660788fd9c59cb417}{preload}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +void \mbox{\hyperlink{_f_s_m_8c_a9bab0f8eedb805136ee573eac09b6ebb}{step\+Base\+FSM}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\begin{DoxyCompactList}\small\item\em 运行状态机,状态机框架的核心函数 \end{DoxyCompactList}\item +void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{_f_s_m_8c_a9c285ac5bbad90b0b04de18d393cf4ce}{\+\_\+preload\+In}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +void \mbox{\hyperlink{_f_s_m_8c_a6e2a8d16f390efeaecc8938ec8f2e728}{\+\_\+preloader\+Get\+Ready}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +int \mbox{\hyperlink{_f_s_m_8c_a704103961964dbb8582b59fd161a3348}{\+\_\+get\+Preloader\+Over\+Flag}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +void \mbox{\hyperlink{_f_s_m_8c_aad909acd21e17b8073d5d9dfb8892ccb}{\+\_\+clear\+Preloader\+Over\+Flag}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +\begin{DoxyAuthor}{Author} +天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) +\end{DoxyAuthor} +\begin{DoxyVersion}{Version} +2.\+1 +\end{DoxyVersion} +\begin{DoxyDate}{Date} +2024-\/05-\/07 +\end{DoxyDate} +\begin{DoxyCopyright}{Copyright} +天神创意无限公司 2024 +\end{DoxyCopyright} + + +\doxysubsection{Function Documentation} +\Hypertarget{_f_s_m_8c_a6b596586b33f46c312a7088e8352d226}\label{_f_s_m_8c_a6b596586b33f46c312a7088e8352d226} +\index{FSM.c@{FSM.c}!setNextState@{setNextState}} +\index{setNextState@{setNextState}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{setNextState()}{setNextState()}} +{\footnotesize\ttfamily static void set\+Next\+State (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}} + + + +设置下一个状态,里面的子状态机暂时没用到 + + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & 状态机变量的基类指针 \\ +\hline +\end{DoxyParams} +\Hypertarget{_f_s_m_8c_a7fc6a4715e8cbd7660788fd9c59cb417}\label{_f_s_m_8c_a7fc6a4715e8cbd7660788fd9c59cb417} +\index{FSM.c@{FSM.c}!preload@{preload}} +\index{preload@{preload}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{preload()}{preload()}} +{\footnotesize\ttfamily static void preload (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000001}{Deprecated}}]去掉了所有和预装载器相关的内容 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\Hypertarget{_f_s_m_8c_a9bab0f8eedb805136ee573eac09b6ebb}\label{_f_s_m_8c_a9bab0f8eedb805136ee573eac09b6ebb} +\index{FSM.c@{FSM.c}!stepBaseFSM@{stepBaseFSM}} +\index{stepBaseFSM@{stepBaseFSM}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{stepBaseFSM()}{stepBaseFSM()}} +{\footnotesize\ttfamily void step\+Base\+FSM (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + + + +运行状态机,状态机框架的核心函数 + +共分为三部首先判断是否有状态机切换, +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & 状态机基类指针 \\ +\hline +\end{DoxyParams} +\Hypertarget{_f_s_m_8c_a9c285ac5bbad90b0b04de18d393cf4ce}\label{_f_s_m_8c_a9c285ac5bbad90b0b04de18d393cf4ce} +\index{FSM.c@{FSM.c}!\_preloadIn@{\_preloadIn}} +\index{\_preloadIn@{\_preloadIn}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{\_preloadIn()}{\_preloadIn()}} +{\footnotesize\ttfamily void \texorpdfstring{$\ast$}{*} \+\_\+preload\+In (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000002}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +void\texorpdfstring{$\ast$}{*} +\end{DoxyReturn} +\Hypertarget{_f_s_m_8c_a6e2a8d16f390efeaecc8938ec8f2e728}\label{_f_s_m_8c_a6e2a8d16f390efeaecc8938ec8f2e728} +\index{FSM.c@{FSM.c}!\_preloaderGetReady@{\_preloaderGetReady}} +\index{\_preloaderGetReady@{\_preloaderGetReady}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{\_preloaderGetReady()}{\_preloaderGetReady()}} +{\footnotesize\ttfamily void \+\_\+preloader\+Get\+Ready (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000003}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\Hypertarget{_f_s_m_8c_a704103961964dbb8582b59fd161a3348}\label{_f_s_m_8c_a704103961964dbb8582b59fd161a3348} +\index{FSM.c@{FSM.c}!\_getPreloaderOverFlag@{\_getPreloaderOverFlag}} +\index{\_getPreloaderOverFlag@{\_getPreloaderOverFlag}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{\_getPreloaderOverFlag()}{\_getPreloaderOverFlag()}} +{\footnotesize\ttfamily int \+\_\+get\+Preloader\+Over\+Flag (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000004}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +int +\end{DoxyReturn} +\Hypertarget{_f_s_m_8c_aad909acd21e17b8073d5d9dfb8892ccb}\label{_f_s_m_8c_aad909acd21e17b8073d5d9dfb8892ccb} +\index{FSM.c@{FSM.c}!\_clearPreloaderOverFlag@{\_clearPreloaderOverFlag}} +\index{\_clearPreloaderOverFlag@{\_clearPreloaderOverFlag}!FSM.c@{FSM.c}} +\doxysubsubsection{\texorpdfstring{\_clearPreloaderOverFlag()}{\_clearPreloaderOverFlag()}} +{\footnotesize\ttfamily void \+\_\+clear\+Preloader\+Over\+Flag (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000005}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} diff --git a/vscode/manual/latex/_f_s_m__private_8h.tex b/vscode/manual/latex/_f_s_m__private_8h.tex index 8577e5e..cb30914 100644 --- a/vscode/manual/latex/_f_s_m__private_8h.tex +++ b/vscode/manual/latex/_f_s_m__private_8h.tex @@ -19,23 +19,27 @@ struct \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivate\+Vars}} \item typedef struct FSMHandler \mbox{\hyperlink{_f_s_m__private_8h_a19064d5985c08b2ebbdfe2b27c6986ba}{FSMHandler}} \begin{DoxyCompactList}\small\item\em 状态处理函数集合,全部需要子类重新填充内容 \end{DoxyCompactList}\item -\Hypertarget{_f_s_m__private_8h_aa8470b4675b81ea69519ae6222c77e3f}\label{_f_s_m__private_8h_aa8470b4675b81ea69519ae6222c77e3f} -typedef struct FSMSignals {\bfseries FSMSignals} +typedef struct FSMSignals \mbox{\hyperlink{_f_s_m__private_8h_aa8470b4675b81ea69519ae6222c77e3f}{FSMSignals}} \begin{DoxyCompactList}\small\item\em 状态机用的信号,protected子类可以访问 \end{DoxyCompactList}\item typedef struct FSMData\+Loader \mbox{\hyperlink{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432}{FSMData\+Loader}} \item \Hypertarget{_f_s_m__private_8h_a51a08a9c63b45851707caacfafca8cf9}\label{_f_s_m__private_8h_a51a08a9c63b45851707caacfafca8cf9} typedef struct FSMPrivate\+Vars {\bfseries FSMPrivate\+Vars} \begin{DoxyCompactList}\small\item\em 基类状态机的私有变量和函数,子类不可直接访问 \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivate\+Vars}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{_f_s_m__private_8h_ac817972fed8a0babe2356c890f960e75}{new\+FMSPrivate\+Vars}} (int num\+State, int default\+State) +\begin{DoxyCompactList}\small\item\em 仅在\+FSM.\+c中调用,新建私有变量并分配空间 \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} 状态机框架的私有变量,只能在状态机框架内使用。 \begin{DoxyAuthor}{Author} -天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) +天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) \end{DoxyAuthor} -\begin{DoxyVersion}{Version} +基类私有变量对子类和外界隐藏实现,通过指针进行访问。 \begin{DoxyVersion}{Version} 2.\+1 \end{DoxyVersion} \begin{DoxyDate}{Date} @@ -57,7 +61,17 @@ typedef struct FSMPrivate\+Vars {\bfseries FSMPrivate\+Vars} 状态处理函数集合,全部需要子类重新填充内容 -这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 \Hypertarget{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432}\label{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432} +这个结构体是私有变量,子状态机和外界都不该访问。但是写在\+FSM\+\_\+protect.\+h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 \Hypertarget{_f_s_m__private_8h_aa8470b4675b81ea69519ae6222c77e3f}\label{_f_s_m__private_8h_aa8470b4675b81ea69519ae6222c77e3f} +\index{FSM\_private.h@{FSM\_private.h}!FSMSignals@{FSMSignals}} +\index{FSMSignals@{FSMSignals}!FSM\_private.h@{FSM\_private.h}} +\doxysubsubsection{\texorpdfstring{FSMSignals}{FSMSignals}} +{\footnotesize\ttfamily typedef struct FSMSignals FSMSignals} + + + +状态机用的信号,protected子类可以访问 + +外部只能通过\+Set\+Signal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。 \Hypertarget{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432}\label{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432} \index{FSM\_private.h@{FSM\_private.h}!FSMDataLoader@{FSMDataLoader}} \index{FSMDataLoader@{FSMDataLoader}!FSM\_private.h@{FSM\_private.h}} \doxysubsubsection{\texorpdfstring{FSMDataLoader}{FSMDataLoader}} @@ -65,3 +79,26 @@ typedef struct FSMPrivate\+Vars {\bfseries FSMPrivate\+Vars} \begin{DoxyRefDesc}{Deprecated} \item[\mbox{\hyperlink{deprecated__deprecated000006}{Deprecated}}]预装载器弃用\end{DoxyRefDesc} + + +\doxysubsection{Function Documentation} +\Hypertarget{_f_s_m__private_8h_ac817972fed8a0babe2356c890f960e75}\label{_f_s_m__private_8h_ac817972fed8a0babe2356c890f960e75} +\index{FSM\_private.h@{FSM\_private.h}!newFMSPrivateVars@{newFMSPrivateVars}} +\index{newFMSPrivateVars@{newFMSPrivateVars}!FSM\_private.h@{FSM\_private.h}} +\doxysubsubsection{\texorpdfstring{newFMSPrivateVars()}{newFMSPrivateVars()}} +{\footnotesize\ttfamily \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivate\+Vars}} \texorpdfstring{$\ast$}{*} new\+FMSPrivate\+Vars (\begin{DoxyParamCaption}\item[{int}]{num\+State, }\item[{int}]{default\+State }\end{DoxyParamCaption})} + + + +仅在\+FSM.\+c中调用,新建私有变量并分配空间 + + +\begin{DoxyParams}{Parameters} +{\em num\+State} & \\ +\hline +{\em default\+State} & \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +FSMPrivate\+Vars\texorpdfstring{$\ast$}{*} +\end{DoxyReturn} diff --git a/vscode/manual/latex/_f_s_m__private_8h_source.tex b/vscode/manual/latex/_f_s_m__private_8h_source.tex index 9f97185..3ac856a 100644 --- a/vscode/manual/latex/_f_s_m__private_8h_source.tex +++ b/vscode/manual/latex/_f_s_m__private_8h_source.tex @@ -3,72 +3,71 @@ \mbox{\hyperlink{_f_s_m__private_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{00001\ } -\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#ifndef\ \_\_FSM\_PRIVATE\_H\_}} -\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#define\ \_\_FSM\_PRIVATE\_H\_}} -\DoxyCodeLine{00015\ } -\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_f_s_m__protected_8h}{FSM\_protected.h}}"{}}} -\DoxyCodeLine{00018\ } -\DoxyCodeLine{00019\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ \mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}};} -\DoxyCodeLine{00020\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSM\ FSM;} -\DoxyCodeLine{00021\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}};} -\DoxyCodeLine{00022\ } -\DoxyCodeLine{00023\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00024\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ private数据类型\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00025\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00031\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_data_loader}{FSMDataLoader}}} -\DoxyCodeLine{00032\ \{\ \ \ } -\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordtype}{void}\ *shadowData;} -\DoxyCodeLine{00034\ \ \ \ \ \textcolor{keywordtype}{int}\ isReady;} -\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{int}\ isOverflow;} -\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ size;} -\DoxyCodeLine{00037\ \}\mbox{\hyperlink{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432}{FSMDataLoader}};} -\DoxyCodeLine{00038\ } +\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#ifndef\ \_\_FSM\_PRIVATE\_H\_}} +\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#define\ \_\_FSM\_PRIVATE\_H\_}} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_f_s_m__protected_8h}{FSM\_protected.h}}"{}}} +\DoxyCodeLine{00019\ } +\DoxyCodeLine{00020\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ \mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}};} +\DoxyCodeLine{00021\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSM\ FSM;} +\DoxyCodeLine{00022\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}};} +\DoxyCodeLine{00023\ } +\DoxyCodeLine{00024\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00025\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ private数据类型\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00026\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00032\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_data_loader}{FSMDataLoader}}} +\DoxyCodeLine{00033\ \{\ \ \ } +\DoxyCodeLine{00034\ \ \ \ \ \textcolor{keywordtype}{void}\ *shadowData;} +\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{int}\ isReady;} +\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordtype}{int}\ isOverflow;} +\DoxyCodeLine{00037\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ size;} +\DoxyCodeLine{00038\ \}\mbox{\hyperlink{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432}{FSMDataLoader}};} \DoxyCodeLine{00039\ } -\DoxyCodeLine{00044\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}} -\DoxyCodeLine{00045\ \{} -\DoxyCodeLine{00046\ \ \ \ \ \textcolor{keywordtype}{int}\ numState;\ \ } -\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe}{defaultState}};\ } -\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keywordtype}{int}\ curState;\ \ \ \ } -\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c}{nextState}};\ \ \ } -\DoxyCodeLine{00051\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_ab14d89d4db1639abfab4a24f05cca6a7}{index}};\ \ } -\DoxyCodeLine{00053\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ fcns;\ \ \ \ } -\DoxyCodeLine{00054\ } -\DoxyCodeLine{00055\ \ \ \ \ \textcolor{keywordtype}{int}\ numChild;} -\DoxyCodeLine{00056\ \ \ \ \ FSM\ **childFSM;} -\DoxyCodeLine{00057\ } -\DoxyCodeLine{00058\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_data_loader}{FSMDataLoader}}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}{preloader}};\ \ \ \ } -\DoxyCodeLine{00060\ \}\mbox{\hyperlink{_f_s_m__private_8h_a51a08a9c63b45851707caacfafca8cf9}{FSMPrivateVars}};} -\DoxyCodeLine{00061\ } -\DoxyCodeLine{00062\ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}*\ newFMSPrivateVars(\textcolor{keywordtype}{int}\ numState,\ \textcolor{keywordtype}{int}\ defaultState)\{} -\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keyword}{typedef}\ void\ (*StateFuncPtr)(\textcolor{keywordtype}{void}\ *);\ } -\DoxyCodeLine{00064\ \ \ \ \ \textcolor{keyword}{typedef}\ void\ (*ChildFSMStepFuncPtr)(FSM\ **);\ } -\DoxyCodeLine{00065\ \ \ \ \ \textcolor{keyword}{typedef}\ int\ (*TransitionFuncPtr)(\textcolor{keywordtype}{void}\ *,\ \textcolor{keywordtype}{int}\ *);} -\DoxyCodeLine{00066\ \ \ \ \ \textcolor{keyword}{typedef}\ int\ (*SelectNextStateFcnPtr)(\textcolor{keywordtype}{void}\ *,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *);} -\DoxyCodeLine{00067\ } -\DoxyCodeLine{00068\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}\ *privateVars\ =\ calloc(1,\ \textcolor{keyword}{sizeof}(\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}));} -\DoxyCodeLine{00069\ \ \ \ \ privateVars-\/>numState\ =\ numState;} -\DoxyCodeLine{00070\ \ \ \ \ privateVars-\/>defaultState\ =\ defaultState;} -\DoxyCodeLine{00071\ \ \ \ \ privateVars-\/>curState\ =\ 0;} -\DoxyCodeLine{00072\ \ \ \ \ privateVars-\/>nextState\ =\ 0;} -\DoxyCodeLine{00073\ \ \ \ \ privateVars-\/>numChild\ =\ 0;} -\DoxyCodeLine{00074\ } -\DoxyCodeLine{00075\ \ \ \ \ privateVars-\/>preloader.isReady\ =\ 0;} -\DoxyCodeLine{00076\ } -\DoxyCodeLine{00077\ \ \ \ \ privateVars-\/>fcns.duringActionTable\ =\ calloc(numState,\ \ \textcolor{keyword}{sizeof}(StateFuncPtr));} -\DoxyCodeLine{00078\ \ \ \ \ privateVars-\/>fcns.enterActionTable\ =\ calloc(numState,\ \textcolor{keyword}{sizeof}(StateFuncPtr));} -\DoxyCodeLine{00079\ \ \ \ \ privateVars-\/>fcns.exitActionTable\ =\ calloc(numState,\ \textcolor{keyword}{sizeof}(StateFuncPtr));} -\DoxyCodeLine{00080\ \ \ \ \ } -\DoxyCodeLine{00081\ \ \ \ \ privateVars-\/>fcns.selectNextState\ =\ calloc(numState,\ \textcolor{keyword}{sizeof}(SelectNextStateFcnPtr));} -\DoxyCodeLine{00082\ \ \ \ \ privateVars-\/>fcns.transitionTable\ =\ calloc(numState\ *\ numState,\ \textcolor{keyword}{sizeof}(TransitionFuncPtr));} -\DoxyCodeLine{00083\ \ \ \ \ privateVars-\/>fcns.transitionGeneralAction\ =\ calloc(1,\ \textcolor{keyword}{sizeof}(StateFuncPtr));} +\DoxyCodeLine{00040\ } +\DoxyCodeLine{00045\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}} +\DoxyCodeLine{00046\ \{} +\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a9f8a355881f1e3e990987090e6e9e37c}{numState}};\ \ } +\DoxyCodeLine{00048\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe}{defaultState}};\ } +\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a1e013b34f3da19006fdaef781e386ba7}{curState}};\ \ \ \ } +\DoxyCodeLine{00051\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c}{nextState}};\ \ \ } +\DoxyCodeLine{00052\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_ab14d89d4db1639abfab4a24f05cca6a7}{index}};\ \ } +\DoxyCodeLine{00054\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a38fc9622245dd2e2272d0511a603db69}{fcns}};\ \ \ \ } +\DoxyCodeLine{00056\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{struct_f_s_m_private_vars_ac66fa0241dc6aa44e48e6b16811a8091}{numChild}};\ \ \ \ \ \ \ \ } +\DoxyCodeLine{00057\ \ \ \ \ FSM\ **\mbox{\hyperlink{struct_f_s_m_private_vars_ad20548555264a67dac6b18b757e01821}{childFSM}};\ \ \ \ \ } +\DoxyCodeLine{00059\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_data_loader}{FSMDataLoader}}\ \mbox{\hyperlink{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}{preloader}};\ \ \ \ } +\DoxyCodeLine{00061\ \}\mbox{\hyperlink{_f_s_m__private_8h_a51a08a9c63b45851707caacfafca8cf9}{FSMPrivateVars}};} +\DoxyCodeLine{00062\ } +\DoxyCodeLine{00063\ } +\DoxyCodeLine{00064\ } +\DoxyCodeLine{00072\ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}*\ \mbox{\hyperlink{_f_s_m__private_8h_ac817972fed8a0babe2356c890f960e75}{newFMSPrivateVars}}(\textcolor{keywordtype}{int}\ numState,\ \textcolor{keywordtype}{int}\ defaultState)\{} +\DoxyCodeLine{00073\ \ \ \ \ \textcolor{keyword}{typedef}\ void\ (*StateFuncPtr)(\textcolor{keywordtype}{void}\ *);\ } +\DoxyCodeLine{00074\ \ \ \ \ \textcolor{keyword}{typedef}\ void\ (*ChildFSMStepFuncPtr)(FSM\ **);\ } +\DoxyCodeLine{00075\ \ \ \ \ \textcolor{keyword}{typedef}\ int\ (*TransitionFuncPtr)(\textcolor{keywordtype}{void}\ *,\ \textcolor{keywordtype}{int}\ *);} +\DoxyCodeLine{00076\ \ \ \ \ \textcolor{keyword}{typedef}\ int\ (*SelectNextStateFcnPtr)(\textcolor{keywordtype}{void}\ *,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *);} +\DoxyCodeLine{00077\ } +\DoxyCodeLine{00078\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}\ *privateVars\ =\ calloc(1,\ \textcolor{keyword}{sizeof}(\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}));} +\DoxyCodeLine{00079\ \ \ \ \ privateVars-\/>numState\ =\ numState;} +\DoxyCodeLine{00080\ \ \ \ \ privateVars-\/>defaultState\ =\ defaultState;} +\DoxyCodeLine{00081\ \ \ \ \ privateVars-\/>curState\ =\ 0;} +\DoxyCodeLine{00082\ \ \ \ \ privateVars-\/>nextState\ =\ 0;} +\DoxyCodeLine{00083\ \ \ \ \ privateVars-\/>numChild\ =\ 0;} \DoxyCodeLine{00084\ } -\DoxyCodeLine{00085\ \ \ \ \ privateVars-\/>fcns.childFSMStepTable\ =\ calloc(numState\ *\ numState,\ \textcolor{keyword}{sizeof}(ChildFSMStepFuncPtr));} -\DoxyCodeLine{00086\ \ \ \ \ } -\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keywordflow}{return}\ privateVars;} -\DoxyCodeLine{00088\ } -\DoxyCodeLine{00089\ \}} -\DoxyCodeLine{00090\ } -\DoxyCodeLine{00091\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{00085\ \ \ \ \ privateVars-\/>preloader.isReady\ =\ 0;} +\DoxyCodeLine{00086\ } +\DoxyCodeLine{00087\ \ \ \ \ privateVars-\/>fcns.duringActionTable\ =\ calloc(numState,\ \ \textcolor{keyword}{sizeof}(StateFuncPtr));} +\DoxyCodeLine{00088\ \ \ \ \ privateVars-\/>fcns.enterActionTable\ =\ calloc(numState,\ \textcolor{keyword}{sizeof}(StateFuncPtr));} +\DoxyCodeLine{00089\ \ \ \ \ privateVars-\/>fcns.exitActionTable\ =\ calloc(numState,\ \textcolor{keyword}{sizeof}(StateFuncPtr));} +\DoxyCodeLine{00090\ \ \ \ \ } +\DoxyCodeLine{00091\ \ \ \ \ privateVars-\/>fcns.selectNextState\ =\ calloc(numState,\ \textcolor{keyword}{sizeof}(SelectNextStateFcnPtr));} +\DoxyCodeLine{00092\ \ \ \ \ privateVars-\/>fcns.transitionTable\ =\ calloc(numState\ *\ numState,\ \textcolor{keyword}{sizeof}(TransitionFuncPtr));} +\DoxyCodeLine{00093\ \ \ \ \ privateVars-\/>fcns.transitionGeneralAction\ =\ calloc(1,\ \textcolor{keyword}{sizeof}(StateFuncPtr));} +\DoxyCodeLine{00094\ } +\DoxyCodeLine{00095\ \ \ \ \ privateVars-\/>fcns.childFSMStepTable\ =\ calloc(numState\ *\ numState,\ \textcolor{keyword}{sizeof}(ChildFSMStepFuncPtr));} +\DoxyCodeLine{00096\ \ \ \ \ } +\DoxyCodeLine{00097\ \ \ \ \ \textcolor{keywordflow}{return}\ privateVars;} +\DoxyCodeLine{00098\ \}} +\DoxyCodeLine{00099\ } +\DoxyCodeLine{00100\ \textcolor{preprocessor}{\#endif}} \end{DoxyCode} diff --git a/vscode/manual/latex/_f_s_m__protected_8h.tex b/vscode/manual/latex/_f_s_m__protected_8h.tex index c0a9b85..4de1527 100644 --- a/vscode/manual/latex/_f_s_m__protected_8h.tex +++ b/vscode/manual/latex/_f_s_m__protected_8h.tex @@ -25,8 +25,7 @@ struct \mbox{\hyperlink{struct_f_s_m_pure_vtbl}{FSMPure\+Vtbl}} \item typedef struct FSMHandler \mbox{\hyperlink{_f_s_m__protected_8h_a19064d5985c08b2ebbdfe2b27c6986ba}{FSMHandler}} \begin{DoxyCompactList}\small\item\em 状态处理函数集合,全部需要子类重新填充内容 \end{DoxyCompactList}\item -\Hypertarget{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f}\label{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f} -typedef struct FSMSignals {\bfseries FSMSignals} +typedef struct FSMSignals \mbox{\hyperlink{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f}{FSMSignals}} \begin{DoxyCompactList}\small\item\em 状态机用的信号,protected子类可以访问 \end{DoxyCompactList}\item \Hypertarget{_f_s_m__protected_8h_a5cfbf21b07540615b7ac4ea49a60b037}\label{_f_s_m__protected_8h_a5cfbf21b07540615b7ac4ea49a60b037} typedef struct FSMPure\+Vtbl {\bfseries FSMPure\+Vtbl} @@ -62,7 +61,7 @@ void \mbox{\hyperlink{_f_s_m__protected_8h_a9bab0f8eedb805136ee573eac09b6ebb}{st \doxysubsubsection{\texorpdfstring{Idle\_Signal}{Idle\_Signal}} {\footnotesize\ttfamily \#define Idle\+\_\+\+Signal~0} -啥意思? +清空上次触发信号,占用第一个信号位 \doxysubsection{Typedef Documentation} \Hypertarget{_f_s_m__protected_8h_a19064d5985c08b2ebbdfe2b27c6986ba}\label{_f_s_m__protected_8h_a19064d5985c08b2ebbdfe2b27c6986ba} @@ -75,7 +74,17 @@ void \mbox{\hyperlink{_f_s_m__protected_8h_a9bab0f8eedb805136ee573eac09b6ebb}{st 状态处理函数集合,全部需要子类重新填充内容 -这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 +这个结构体是私有变量,子状态机和外界都不该访问。但是写在\+FSM\+\_\+protect.\+h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 \Hypertarget{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f}\label{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f} +\index{FSM\_protected.h@{FSM\_protected.h}!FSMSignals@{FSMSignals}} +\index{FSMSignals@{FSMSignals}!FSM\_protected.h@{FSM\_protected.h}} +\doxysubsubsection{\texorpdfstring{FSMSignals}{FSMSignals}} +{\footnotesize\ttfamily typedef struct FSMSignals FSMSignals} + + + +状态机用的信号,protected子类可以访问 + +外部只能通过\+Set\+Signal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。 \doxysubsection{Function Documentation} \Hypertarget{_f_s_m__protected_8h_a9bab0f8eedb805136ee573eac09b6ebb}\label{_f_s_m__protected_8h_a9bab0f8eedb805136ee573eac09b6ebb} diff --git a/vscode/manual/latex/_f_s_m__protected_8h_source.tex b/vscode/manual/latex/_f_s_m__protected_8h_source.tex index d69eb8a..58b860a 100644 --- a/vscode/manual/latex/_f_s_m__protected_8h_source.tex +++ b/vscode/manual/latex/_f_s_m__protected_8h_source.tex @@ -6,7 +6,7 @@ \DoxyCodeLine{00012\ \textcolor{preprocessor}{\#ifndef\ \_\_FSM\_PROTECTED\_H\_}} \DoxyCodeLine{00013\ \textcolor{preprocessor}{\#define\ \_\_FSM\_PROTECTED\_H\_}} \DoxyCodeLine{00014\ } -\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ "{}FSM\_public.h"{}}} +\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_f_s_m__public_8h}{FSM\_public.h}}"{}}} \DoxyCodeLine{00016\ } \DoxyCodeLine{00017\ \textcolor{comment}{//\ \#define\ DSP28377}} \DoxyCodeLine{00018\ \textcolor{preprocessor}{\#ifdef\ \ \ \ \ \ DSP28377}} @@ -42,92 +42,87 @@ \DoxyCodeLine{00048\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}};} \DoxyCodeLine{00049\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}\ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}};} \DoxyCodeLine{00050\ } -\DoxyCodeLine{00051\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_State\_Fcns)(\textcolor{keywordtype}{void}\ *data,\ FSM\ **childFSM);} +\DoxyCodeLine{00051\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_State\_Fcns)(\textcolor{keywordtype}{void}\ *data,\ FSM\ **\mbox{\hyperlink{struct_f_s_m_private_vars_ad20548555264a67dac6b18b757e01821}{childFSM}});} \DoxyCodeLine{00052\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_General\_Handlers)(\textcolor{keywordtype}{void}\ *data);} \DoxyCodeLine{00053\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_Transition\_Handler)(\textcolor{keywordtype}{void}\ *data);} \DoxyCodeLine{00054\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_Overrider\_Fcns)(FSM\ *pFSM);} \DoxyCodeLine{00055\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_ResetSignals\_Fcns)(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}*\ signals,\ \textcolor{keywordtype}{void}\ *);} \DoxyCodeLine{00056\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_loadData\_Fcns)(\textcolor{keywordtype}{void}*);} \DoxyCodeLine{00057\ \textcolor{keyword}{typedef}\ int\ (*Avoid\_WARNING\_SelectNextState)(\textcolor{keywordtype}{void}\ *data,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}*\ signals);} -\DoxyCodeLine{00058\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_void\_fcns)(\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ *fcns);} +\DoxyCodeLine{00058\ \textcolor{keyword}{typedef}\ void\ (*Avoid\_WARNING\_void\_fcns)(\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ *\mbox{\hyperlink{struct_f_s_m_private_vars_a38fc9622245dd2e2272d0511a603db69}{fcns}});} \DoxyCodeLine{00059\ } \DoxyCodeLine{00060\ } \DoxyCodeLine{00067\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\{} \DoxyCodeLine{00068\ \ \ \ \ int\ (**\mbox{\hyperlink{struct_f_s_m_handler_a934ff7d1a2f7714694b8a2927b5f8451}{selectNextState}})(\textcolor{keywordtype}{void}\ *data,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}*\ signals);\ } -\DoxyCodeLine{00070\ \ \ \ \ void\ (**transitionTable)(\textcolor{keywordtype}{void}\ *data);} -\DoxyCodeLine{00071\ \ \ \ \ void\ (*transitionGeneralAction)(\textcolor{keywordtype}{void}\ *data);} -\DoxyCodeLine{00072\ } -\DoxyCodeLine{00073\ \ \ \ \ void\ (**enterActionTable)(\textcolor{keywordtype}{void}\ *data,\ FSM\ **cFSM);} -\DoxyCodeLine{00074\ \ \ \ \ void\ (**duringActionTable)(\textcolor{keywordtype}{void}\ *data,\ FSM\ **cFSM);} -\DoxyCodeLine{00075\ \ \ \ \ void\ (**exitActionTable)(\textcolor{keywordtype}{void}\ *data,\ FSM\ **cFSM);} -\DoxyCodeLine{00076\ } -\DoxyCodeLine{00077\ \ \ \ \ void\ (**childFSMStepTable)(FSM\ **cFSM);} +\DoxyCodeLine{00070\ \ \ \ \ void\ (**\mbox{\hyperlink{struct_f_s_m_handler_ac3b9fc077f8ba0368e8cba02a890aa2f}{transitionTable}})(\textcolor{keywordtype}{void}\ *data);\ \ \ \ } +\DoxyCodeLine{00071\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_handler_ab199071e132b4409d71883155e6b81f2}{transitionGeneralAction}})(\textcolor{keywordtype}{void}\ *data);\ \ \ \ } +\DoxyCodeLine{00073\ \ \ \ \ void\ (**\mbox{\hyperlink{struct_f_s_m_handler_aa733ab89a48f8a63b4afb623b4d6be90}{enterActionTable}})(\textcolor{keywordtype}{void}\ *data,\ FSM\ **cFSM);\ \ } +\DoxyCodeLine{00074\ \ \ \ \ void\ (**\mbox{\hyperlink{struct_f_s_m_handler_ad3506a53c3ee76655a117f7db0da7d3d}{duringActionTable}})(\textcolor{keywordtype}{void}\ *data,\ FSM\ **cFSM);\ } +\DoxyCodeLine{00075\ \ \ \ \ void\ (**\mbox{\hyperlink{struct_f_s_m_handler_a04721875a9baabc8a51c54a668db9a2c}{exitActionTable}})(\textcolor{keywordtype}{void}\ *data,\ FSM\ **cFSM);\ } +\DoxyCodeLine{00077\ \ \ \ \ void\ (**\mbox{\hyperlink{struct_f_s_m_handler_a976b4147d1c0c9aeb4a61c3cc85376bf}{childFSMStepTable}})(FSM\ **cFSM);\ } \DoxyCodeLine{00078\ \}\mbox{\hyperlink{_f_s_m__protected_8h_a19064d5985c08b2ebbdfe2b27c6986ba}{FSMHandler}};} \DoxyCodeLine{00079\ } -\DoxyCodeLine{00084\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}} -\DoxyCodeLine{00085\ \{} -\DoxyCodeLine{00086\ \ \ \ \ Uint16\ \mbox{\hyperlink{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c}{external}};\ \ \ \ } -\DoxyCodeLine{00087\ \ \ \ \ Uint16\ \mbox{\hyperlink{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d}{lastTriggeredSignal}};\ } -\DoxyCodeLine{00088\ \}\mbox{\hyperlink{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f}{FSMSignals}};} -\DoxyCodeLine{00089\ \textcolor{preprocessor}{\#define\ \ \ \ \ Idle\_Signal\ \ \ \ \ 0\ }} -\DoxyCodeLine{00091\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00092\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ 纯虚函数,子类必须重新实现,父类构造函数不会初始化\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00093\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00094\ } -\DoxyCodeLine{00099\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_pure_vtbl}{FSMPureVtbl}}\ \{} -\DoxyCodeLine{00100\ \ \ \ \ \textcolor{comment}{//\ 状态机控制}} -\DoxyCodeLine{00101\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a5fe3628ecfac4830ad9f64b1439fe57d}{setupHandler}})(\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ *fcns);\ \ \ \ } -\DoxyCodeLine{00103\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a24fea698707e18e2d84385bfca118db1}{initData}})(FSM\ *pFSM);\ \ \ \ } -\DoxyCodeLine{00104\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a4973df3b86e460a458c9edf4699aa68d}{loadExternalData}})(\textcolor{keywordtype}{void}\ *extData);\ \ \ \ } -\DoxyCodeLine{00106\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_aebfd1efad93210ac02249a81159d1472}{initDataLoader}})(FSM\ *pFSM);\ \ \ \ } -\DoxyCodeLine{00108\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a58c666f5941e07c4a6ef054f1250dbd8}{initSignals}})(FSM\ *pFSM);\ \ \ \ } -\DoxyCodeLine{00109\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a65489698aee35862a265b30dff280ad1}{resetSignals}})(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signalRegs,\ \textcolor{keywordtype}{void}\ *data);\ \ \ } -\DoxyCodeLine{00110\ \}\mbox{\hyperlink{_f_s_m__protected_8h_a5cfbf21b07540615b7ac4ea49a60b037}{FSMPureVtbl}};} -\DoxyCodeLine{00111\ } +\DoxyCodeLine{00085\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}} +\DoxyCodeLine{00086\ \{} +\DoxyCodeLine{00087\ \ \ \ \ Uint16\ \mbox{\hyperlink{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b}{all}};\ \ \ \ } +\DoxyCodeLine{00088\ \ \ \ \ Uint16\ \mbox{\hyperlink{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d}{lastTriggeredSignal}};\ } +\DoxyCodeLine{00089\ \}\mbox{\hyperlink{_f_s_m__protected_8h_aa8470b4675b81ea69519ae6222c77e3f}{FSMSignals}};} +\DoxyCodeLine{00090\ \textcolor{preprocessor}{\#define\ \ \ \ \ Idle\_Signal\ \ \ \ \ 0\ \ \ }} +\DoxyCodeLine{00092\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00093\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ 纯虚函数,子类必须重新实现,父类构造函数不会初始化\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00094\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00095\ } +\DoxyCodeLine{00100\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_f_s_m_pure_vtbl}{FSMPureVtbl}}\ \{} +\DoxyCodeLine{00101\ \ \ \ \ \textcolor{comment}{//\ 状态机控制}} +\DoxyCodeLine{00102\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a5fe3628ecfac4830ad9f64b1439fe57d}{setupHandler}})(\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}}\ *fcns);\ \ \ \ } +\DoxyCodeLine{00104\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a24fea698707e18e2d84385bfca118db1}{initData}})(FSM\ *pFSM);\ \ \ \ } +\DoxyCodeLine{00105\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a4973df3b86e460a458c9edf4699aa68d}{loadExternalData}})(\textcolor{keywordtype}{void}\ *extData);\ \ \ \ } +\DoxyCodeLine{00107\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_aebfd1efad93210ac02249a81159d1472}{initDataLoader}})(FSM\ *pFSM);\ \ \ \ } +\DoxyCodeLine{00109\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_a58c666f5941e07c4a6ef054f1250dbd8}{initSignals}})(FSM\ *pFSM);\ \ \ \ } +\DoxyCodeLine{00110\ \ \ \ \ void\ (*\mbox{\hyperlink{struct_f_s_m_pure_vtbl_ae326d855d6a29d089f312d965bf032f2}{resetSignals}})(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals,\ \textcolor{keywordtype}{void}\ *data);\ \ \ } +\DoxyCodeLine{00111\ \}\mbox{\hyperlink{_f_s_m__protected_8h_a5cfbf21b07540615b7ac4ea49a60b037}{FSMPureVtbl}};} \DoxyCodeLine{00112\ } \DoxyCodeLine{00113\ } -\DoxyCodeLine{00114\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00115\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 基类定义,纯虚类\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00116\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00117\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSM} -\DoxyCodeLine{00118\ \{} -\DoxyCodeLine{00119\ \ \ \ \ \textcolor{comment}{//\ public\ functions}} -\DoxyCodeLine{00120\ \ \ \ \ void\ (*step)(FSM\ *pFSM);\ \ \ \ \textcolor{comment}{//\ 子类重新实现可以添加一些打印信息}} -\DoxyCodeLine{00121\ \ \ \ \ void\ (*reset)(FSM\ *pFSM);\ \ \ \textcolor{comment}{//\ 子类重新实现可以添加一些打印信息}} -\DoxyCodeLine{00122\ } -\DoxyCodeLine{00123\ \ \ \ \ \textcolor{comment}{//\ protected}} -\DoxyCodeLine{00124\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_pure_vtbl}{FSMPureVtbl}}\ pureVtbl;} -\DoxyCodeLine{00125\ \ \ \ \ } -\DoxyCodeLine{00126\ \ \ \ \ \textcolor{keywordtype}{void}\ *data;} -\DoxyCodeLine{00127\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ signals;} -\DoxyCodeLine{00128\ \ \ \ \ \textcolor{comment}{//\ private}} -\DoxyCodeLine{00129\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}*\ privateVars;\ } -\DoxyCodeLine{00130\ \}\ FSM;} -\DoxyCodeLine{00131\ } -\DoxyCodeLine{00132\ } +\DoxyCodeLine{00114\ } +\DoxyCodeLine{00115\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00116\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 基类定义,纯虚类\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00117\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00118\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSM} +\DoxyCodeLine{00119\ \{} +\DoxyCodeLine{00120\ \ \ \ \ FSMPublicFcns\ publicFcns;} +\DoxyCodeLine{00121\ \ \ \ \ \textcolor{comment}{//\ protected}} +\DoxyCodeLine{00122\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_pure_vtbl}{FSMPureVtbl}}\ pureVtbl;} +\DoxyCodeLine{00123\ \ \ \ \ } +\DoxyCodeLine{00124\ \ \ \ \ \textcolor{keywordtype}{void}\ *data;} +\DoxyCodeLine{00125\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ signals;} +\DoxyCodeLine{00126\ \ \ \ \ \textcolor{comment}{//\ private}} +\DoxyCodeLine{00127\ \ \ \ \ \mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivateVars}}*\ privateVars;\ } +\DoxyCodeLine{00128\ \}\ FSM;} +\DoxyCodeLine{00129\ } +\DoxyCodeLine{00130\ } +\DoxyCodeLine{00131\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00132\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ protected函数,子类能用外界用不了\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} \DoxyCodeLine{00133\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00134\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ protected函数,子类能用外界用不了\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00135\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00136\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{_f_s_m__protected_8h_a9bab0f8eedb805136ee573eac09b6ebb}{stepBaseFSM}}(FSM\ *pFSM);} -\DoxyCodeLine{00137\ \textcolor{keywordtype}{void}\ constructFSM(FSM*\ pFSM);} -\DoxyCodeLine{00138\ FSM*\ \ newBaseFSM(\textcolor{keywordtype}{int}\ numState,\ \textcolor{keywordtype}{int}\ defaultState);} -\DoxyCodeLine{00139\ \textcolor{keywordtype}{void}\ resetBaseFSM(FSM\ *pFSM);} -\DoxyCodeLine{00140\ } -\DoxyCodeLine{00141\ } +\DoxyCodeLine{00134\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{_f_s_m__protected_8h_a9bab0f8eedb805136ee573eac09b6ebb}{stepBaseFSM}}(FSM\ *pFSM);} +\DoxyCodeLine{00135\ \textcolor{keywordtype}{void}\ constructFSM(FSM*\ pFSM);} +\DoxyCodeLine{00136\ FSM*\ \ newBaseFSM(\textcolor{keywordtype}{int}\ numState,\ \textcolor{keywordtype}{int}\ defaultState);} +\DoxyCodeLine{00137\ \textcolor{keywordtype}{void}\ resetBaseFSM(FSM\ *pFSM);} +\DoxyCodeLine{00138\ } +\DoxyCodeLine{00139\ } +\DoxyCodeLine{00140\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00141\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 内联函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} \DoxyCodeLine{00142\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00143\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 内联函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00144\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00145\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ clearSignal(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals,\ Uint16\ signalFlag)\{} -\DoxyCodeLine{00146\ \ \ \ \ signals-\/>\mbox{\hyperlink{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c}{external}}\ \&=\ \string~(1\ <<\ signalFlag);} -\DoxyCodeLine{00147\ \}} -\DoxyCodeLine{00148\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ Uint16\ getSignal(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals,\ Uint16\ signalFlag)\{} -\DoxyCodeLine{00149\ \ \ \ \ \textcolor{keywordflow}{return}\ (signals-\/>\mbox{\hyperlink{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c}{external}}\ >>\ signalFlag)\ \&\ 1;} -\DoxyCodeLine{00150\ \}} -\DoxyCodeLine{00151\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ clearAllSignals(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals)\{} -\DoxyCodeLine{00152\ \ \ \ \ signals-\/>\mbox{\hyperlink{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c}{external}}\ =\ 0;} -\DoxyCodeLine{00153\ \}} -\DoxyCodeLine{00154\ } -\DoxyCodeLine{00155\ } -\DoxyCodeLine{00156\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{00143\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ clearSignal(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals,\ Uint16\ signalFlag)\{} +\DoxyCodeLine{00144\ \ \ \ \ signals-\/>\mbox{\hyperlink{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b}{all}}\ \&=\ \string~(1\ <<\ signalFlag);} +\DoxyCodeLine{00145\ \}} +\DoxyCodeLine{00146\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ Uint16\ getSignal(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals,\ Uint16\ signalFlag)\{} +\DoxyCodeLine{00147\ \ \ \ \ \textcolor{keywordflow}{return}\ (signals-\/>\mbox{\hyperlink{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b}{all}}\ >>\ signalFlag)\ \&\ 1;} +\DoxyCodeLine{00148\ \}} +\DoxyCodeLine{00149\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ clearAllSignals(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals)\{} +\DoxyCodeLine{00150\ \ \ \ \ signals-\/>\mbox{\hyperlink{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b}{all}}\ =\ 0;} +\DoxyCodeLine{00151\ \}} +\DoxyCodeLine{00152\ } +\DoxyCodeLine{00153\ } +\DoxyCodeLine{00154\ \textcolor{preprocessor}{\#endif}} \end{DoxyCode} diff --git a/vscode/manual/latex/_f_s_m__public_8h.tex b/vscode/manual/latex/_f_s_m__public_8h.tex new file mode 100644 index 0000000..6aca4ea --- /dev/null +++ b/vscode/manual/latex/_f_s_m__public_8h.tex @@ -0,0 +1,149 @@ +\doxysection{FSM\+\_\+\+OOP/base\+FSM/\+FSM\+\_\+public.h File Reference} +\hypertarget{_f_s_m__public_8h}{}\label{_f_s_m__public_8h}\index{FSM\_OOP/baseFSM/FSM\_public.h@{FSM\_OOP/baseFSM/FSM\_public.h}} +\doxysubsubsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \mbox{\hyperlink{_f_s_m__public_8h_a6cea0d8653df195e4325754c662be6a4}{Step}}(p\+FSM)~\+\_\+step\+FSM((FSM \texorpdfstring{$\ast$}{*})p\+FSM) +\item +\#define \mbox{\hyperlink{_f_s_m__public_8h_a336c6a01ee8af1e00bd175553788ec63}{Get\+Data}}(p\+FSM)~\+\_\+get\+Data((FSM\texorpdfstring{$\ast$}{*})p\+FSM) +\item +\#define \mbox{\hyperlink{_f_s_m__public_8h_aee4d6cf9b551102cbb7cb2f3e1e65377}{Set\+Signal}}(p\+FSM, signal)~\+\_\+set\+Signal((FSM\texorpdfstring{$\ast$}{*})p\+FSM, signal) +\item +\#define \mbox{\hyperlink{_f_s_m__public_8h_aa4b1ff528d718db75faeba03a845fe46}{Preloader\+Get\+Ready}}(p\+FSM)~\mbox{\hyperlink{_f_s_m_8c_a6e2a8d16f390efeaecc8938ec8f2e728}{\+\_\+preloader\+Get\+Ready}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM); +\item +\#define \mbox{\hyperlink{_f_s_m__public_8h_aef66ec3c44c151b23fbc98c10c514d32}{Get\+Preloader\+Over\+Flag}}(p\+FSM)~\mbox{\hyperlink{_f_s_m_8c_a704103961964dbb8582b59fd161a3348}{\+\_\+get\+Preloader\+Over\+Flag}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM) +\item +\#define \mbox{\hyperlink{_f_s_m__public_8h_ac11e3ebda7ba02fc42ac5de33fcfd148}{Clear\+Preloader\+Over\+Flag}}(p\+FSM)~\mbox{\hyperlink{_f_s_m_8c_aad909acd21e17b8073d5d9dfb8892ccb}{\+\_\+clear\+Preloader\+Over\+Flag}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM) +\end{DoxyCompactItemize} +\doxysubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{_f_s_m__public_8h_a9c285ac5bbad90b0b04de18d393cf4ce}{\+\_\+preload\+In}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +void \mbox{\hyperlink{_f_s_m__public_8h_a6e2a8d16f390efeaecc8938ec8f2e728}{\+\_\+preloader\+Get\+Ready}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +int \mbox{\hyperlink{_f_s_m__public_8h_a704103961964dbb8582b59fd161a3348}{\+\_\+get\+Preloader\+Over\+Flag}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +void \mbox{\hyperlink{_f_s_m__public_8h_aad909acd21e17b8073d5d9dfb8892ccb}{\+\_\+clear\+Preloader\+Over\+Flag}} (FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +\begin{DoxyAuthor}{Author} +天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) +\end{DoxyAuthor} +\begin{DoxyVersion}{Version} +2.\+1 +\end{DoxyVersion} +\begin{DoxyDate}{Date} +2024-\/05-\/07 +\end{DoxyDate} +\begin{DoxyCopyright}{Copyright} +天神创意无限公司 2024 +\end{DoxyCopyright} + + +\doxysubsection{Macro Definition Documentation} +\Hypertarget{_f_s_m__public_8h_a6cea0d8653df195e4325754c662be6a4}\label{_f_s_m__public_8h_a6cea0d8653df195e4325754c662be6a4} +\index{FSM\_public.h@{FSM\_public.h}!Step@{Step}} +\index{Step@{Step}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{Step}{Step}} +{\footnotesize\ttfamily \#define Step(\begin{DoxyParamCaption}\item[{}]{p\+FSM }\end{DoxyParamCaption})~\+\_\+step\+FSM((FSM \texorpdfstring{$\ast$}{*})p\+FSM)} + +外界调用这个 \Hypertarget{_f_s_m__public_8h_a336c6a01ee8af1e00bd175553788ec63}\label{_f_s_m__public_8h_a336c6a01ee8af1e00bd175553788ec63} +\index{FSM\_public.h@{FSM\_public.h}!GetData@{GetData}} +\index{GetData@{GetData}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{GetData}{GetData}} +{\footnotesize\ttfamily \#define Get\+Data(\begin{DoxyParamCaption}\item[{}]{p\+FSM }\end{DoxyParamCaption})~\+\_\+get\+Data((FSM\texorpdfstring{$\ast$}{*})p\+FSM)} + +外界调用这个 \Hypertarget{_f_s_m__public_8h_aee4d6cf9b551102cbb7cb2f3e1e65377}\label{_f_s_m__public_8h_aee4d6cf9b551102cbb7cb2f3e1e65377} +\index{FSM\_public.h@{FSM\_public.h}!SetSignal@{SetSignal}} +\index{SetSignal@{SetSignal}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{SetSignal}{SetSignal}} +{\footnotesize\ttfamily \#define Set\+Signal(\begin{DoxyParamCaption}\item[{}]{p\+FSM, }\item[{}]{signal }\end{DoxyParamCaption})~\+\_\+set\+Signal((FSM\texorpdfstring{$\ast$}{*})p\+FSM, signal)} + +外界调用这个 \Hypertarget{_f_s_m__public_8h_aa4b1ff528d718db75faeba03a845fe46}\label{_f_s_m__public_8h_aa4b1ff528d718db75faeba03a845fe46} +\index{FSM\_public.h@{FSM\_public.h}!PreloaderGetReady@{PreloaderGetReady}} +\index{PreloaderGetReady@{PreloaderGetReady}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{PreloaderGetReady}{PreloaderGetReady}} +{\footnotesize\ttfamily \#define Preloader\+Get\+Ready(\begin{DoxyParamCaption}\item[{}]{p\+FSM }\end{DoxyParamCaption})~\mbox{\hyperlink{_f_s_m_8c_a6e2a8d16f390efeaecc8938ec8f2e728}{\+\_\+preloader\+Get\+Ready}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM);} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000013}{Deprecated}}]\end{DoxyRefDesc} +\Hypertarget{_f_s_m__public_8h_aef66ec3c44c151b23fbc98c10c514d32}\label{_f_s_m__public_8h_aef66ec3c44c151b23fbc98c10c514d32} +\index{FSM\_public.h@{FSM\_public.h}!GetPreloaderOverFlag@{GetPreloaderOverFlag}} +\index{GetPreloaderOverFlag@{GetPreloaderOverFlag}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{GetPreloaderOverFlag}{GetPreloaderOverFlag}} +{\footnotesize\ttfamily \#define Get\+Preloader\+Over\+Flag(\begin{DoxyParamCaption}\item[{}]{p\+FSM }\end{DoxyParamCaption})~\mbox{\hyperlink{_f_s_m_8c_a704103961964dbb8582b59fd161a3348}{\+\_\+get\+Preloader\+Over\+Flag}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM)} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000014}{Deprecated}}]\end{DoxyRefDesc} +\Hypertarget{_f_s_m__public_8h_ac11e3ebda7ba02fc42ac5de33fcfd148}\label{_f_s_m__public_8h_ac11e3ebda7ba02fc42ac5de33fcfd148} +\index{FSM\_public.h@{FSM\_public.h}!ClearPreloaderOverFlag@{ClearPreloaderOverFlag}} +\index{ClearPreloaderOverFlag@{ClearPreloaderOverFlag}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{ClearPreloaderOverFlag}{ClearPreloaderOverFlag}} +{\footnotesize\ttfamily \#define Clear\+Preloader\+Over\+Flag(\begin{DoxyParamCaption}\item[{}]{p\+FSM }\end{DoxyParamCaption})~\mbox{\hyperlink{_f_s_m_8c_aad909acd21e17b8073d5d9dfb8892ccb}{\+\_\+clear\+Preloader\+Over\+Flag}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM)} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000015}{Deprecated}}]\end{DoxyRefDesc} + + +\doxysubsection{Function Documentation} +\Hypertarget{_f_s_m__public_8h_a9c285ac5bbad90b0b04de18d393cf4ce}\label{_f_s_m__public_8h_a9c285ac5bbad90b0b04de18d393cf4ce} +\index{FSM\_public.h@{FSM\_public.h}!\_preloadIn@{\_preloadIn}} +\index{\_preloadIn@{\_preloadIn}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{\_preloadIn()}{\_preloadIn()}} +{\footnotesize\ttfamily void \texorpdfstring{$\ast$}{*} \+\_\+preload\+In (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000002}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +void\texorpdfstring{$\ast$}{*} +\end{DoxyReturn} +\Hypertarget{_f_s_m__public_8h_a6e2a8d16f390efeaecc8938ec8f2e728}\label{_f_s_m__public_8h_a6e2a8d16f390efeaecc8938ec8f2e728} +\index{FSM\_public.h@{FSM\_public.h}!\_preloaderGetReady@{\_preloaderGetReady}} +\index{\_preloaderGetReady@{\_preloaderGetReady}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{\_preloaderGetReady()}{\_preloaderGetReady()}} +{\footnotesize\ttfamily void \+\_\+preloader\+Get\+Ready (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000003}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\Hypertarget{_f_s_m__public_8h_a704103961964dbb8582b59fd161a3348}\label{_f_s_m__public_8h_a704103961964dbb8582b59fd161a3348} +\index{FSM\_public.h@{FSM\_public.h}!\_getPreloaderOverFlag@{\_getPreloaderOverFlag}} +\index{\_getPreloaderOverFlag@{\_getPreloaderOverFlag}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{\_getPreloaderOverFlag()}{\_getPreloaderOverFlag()}} +{\footnotesize\ttfamily int \+\_\+get\+Preloader\+Over\+Flag (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000004}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +int +\end{DoxyReturn} +\Hypertarget{_f_s_m__public_8h_aad909acd21e17b8073d5d9dfb8892ccb}\label{_f_s_m__public_8h_aad909acd21e17b8073d5d9dfb8892ccb} +\index{FSM\_public.h@{FSM\_public.h}!\_clearPreloaderOverFlag@{\_clearPreloaderOverFlag}} +\index{\_clearPreloaderOverFlag@{\_clearPreloaderOverFlag}!FSM\_public.h@{FSM\_public.h}} +\doxysubsubsection{\texorpdfstring{\_clearPreloaderOverFlag()}{\_clearPreloaderOverFlag()}} +{\footnotesize\ttfamily void \+\_\+clear\+Preloader\+Over\+Flag (\begin{DoxyParamCaption}\item[{FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000005}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} diff --git a/vscode/manual/latex/_f_s_m__public_8h_source.tex b/vscode/manual/latex/_f_s_m__public_8h_source.tex index cc2589f..01ad102 100644 --- a/vscode/manual/latex/_f_s_m__public_8h_source.tex +++ b/vscode/manual/latex/_f_s_m__public_8h_source.tex @@ -1,55 +1,52 @@ \doxysection{FSM\+\_\+public.\+h} \hypertarget{_f_s_m__public_8h_source}{}\label{_f_s_m__public_8h_source}\index{FSM\_OOP/baseFSM/FSM\_public.h@{FSM\_OOP/baseFSM/FSM\_public.h}} - +\mbox{\hyperlink{_f_s_m__public_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} -\DoxyCodeLine{00001\ \textcolor{comment}{/*}} -\DoxyCodeLine{00002\ \textcolor{comment}{\ *\ @Author:\ godcreator02\ qq974980621@gmail.com}} -\DoxyCodeLine{00003\ \textcolor{comment}{\ *\ @Date:\ 2024-\/04-\/20\ 18:52:14}} -\DoxyCodeLine{00004\ \textcolor{comment}{\ *\ @LastEditors:\ godcreator02\ qq974980621@gmail.com}} -\DoxyCodeLine{00005\ \textcolor{comment}{\ *\ @LastEditTime:\ 2024-\/04-\/23\ 21:51:55}} -\DoxyCodeLine{00006\ \textcolor{comment}{\ *\ @FilePath:\ \(\backslash\)vscode\(\backslash\)FSM\_OOP\(\backslash\)baseFSM\(\backslash\)FSM\_public.h}} -\DoxyCodeLine{00007\ \textcolor{comment}{\ *\ @Description:\ 这是默认设置,请设置`customMade`,\ 打开koroFileHeader查看配置\ 进行设置:\ https://github.com/OBKoro1/koro1FileHeader/wiki/\%E9\%85\%8D\%E7\%BD\%AE}} -\DoxyCodeLine{00008\ \textcolor{comment}{\ */}} -\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#ifndef\ \_\_FSM\_PUBLIC\_H\_}} -\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#define\ \_\_FSM\_PUBLIC\_H\_}} -\DoxyCodeLine{00011\ } -\DoxyCodeLine{00012\ \textcolor{keyword}{typedef}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ Uint16;} -\DoxyCodeLine{00013\ \textcolor{keyword}{typedef}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{long}\ \ \ \ \ \ \ \ Uint32;} -\DoxyCodeLine{00014\ } -\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#define\ \ \ \ \ BASE\_FSM(ptr)\ \ \ \ \ \ \ \ \ \ ((FSM\ *)(ptr))}} -\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#define\ \ \ \ \ BASE\_PTR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (FSM\ *)}} -\DoxyCodeLine{00017\ } -\DoxyCodeLine{00018\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSM\ FSM;} +\DoxyCodeLine{00001\ } +\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#ifndef\ \_\_FSM\_PUBLIC\_H\_}} +\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#define\ \_\_FSM\_PUBLIC\_H\_}} +\DoxyCodeLine{00013\ } +\DoxyCodeLine{00014\ \textcolor{keyword}{typedef}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ Uint16;} +\DoxyCodeLine{00015\ \textcolor{keyword}{typedef}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{long}\ \ \ \ \ \ \ \ Uint32;} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#define\ \ \ \ \ BASE\_FSM(ptr)\ \ \ \ \ \ \ \ \ \ ((FSM\ *)(ptr))}} +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#define\ \ \ \ \ BASE\_PTR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (FSM\ *)}} \DoxyCodeLine{00019\ } -\DoxyCodeLine{00020\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ 避免警告的函数定义\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#define\ \ \ \ \ Step(pFSM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_stepFSM((FSM\ *)pFSM)}} -\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#define\ \ \ \ \ PreloaderGetReady(pFSM)\ \ \ \ \ \ \ \ \ \ \_preloaderGetReady((FSM\ *)pFSM);}} -\DoxyCodeLine{00023\ \textcolor{preprocessor}{\#define\ \ \ \ \ GetPreloaderOverFlag(pFSM)\ \ \ \ \ \ \ \_getPreloaderOverFlag((FSM\ *)pFSM)}} -\DoxyCodeLine{00024\ \textcolor{preprocessor}{\#define\ \ \ \ \ ClearPreloaderOverFlag(pFSM)\ \ \ \ \ \_clearPreloaderOverFlag((FSM\ *)pFSM)}} -\DoxyCodeLine{00025\ \textcolor{preprocessor}{\#define\ \ \ \ \ GetData(pFSM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_getData((FSM*)pFSM)}} -\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#define\ \ \ \ \ SetSignal(pFSM,\ signal)\ \ \ \ \ \ \ \ \ \ \_setSignal((FSM*)pFSM,\ signal)}} -\DoxyCodeLine{00027\ } +\DoxyCodeLine{00020\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSM\ FSM;} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }FSMPublicFcns} +\DoxyCodeLine{00023\ \{} +\DoxyCodeLine{00024\ \ \ \ \ void\ (*step)(FSM\ *pFSM);\ \ \ \ \textcolor{comment}{//\ 子类重新实现可以添加一些打印信息}} +\DoxyCodeLine{00025\ \ \ \ \ void\ (*reset)(FSM\ *pFSM);\ \ \ \textcolor{comment}{//\ 子类重新实现可以添加一些打印信息}} +\DoxyCodeLine{00026\ } +\DoxyCodeLine{00027\ \}FSMPublicFcns;} \DoxyCodeLine{00028\ } -\DoxyCodeLine{00029\ } -\DoxyCodeLine{00030\ \textcolor{keywordtype}{void}\ \_stepFSM(FSM\ *pFSM);} -\DoxyCodeLine{00031\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ 状态机信息获取\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00032\ \textcolor{keywordtype}{int}\ getFSMCurState(FSM\ *pFSM);} -\DoxyCodeLine{00033\ \textcolor{keywordtype}{int}\ getFSMNextState(FSM\ *pFSM);} -\DoxyCodeLine{00034\ \textcolor{keywordtype}{void}\ setChildNum(FSM\ *pFSM,\ \textcolor{keywordtype}{int}\ num);} -\DoxyCodeLine{00035\ \textcolor{keywordtype}{void}\ registerChildFSM(FSM\ *parent,\ FSM\ *child,\ \textcolor{keywordtype}{int}\ index);} -\DoxyCodeLine{00036\ } -\DoxyCodeLine{00037\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ Data和Signals\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00038\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *\_getData(FSM*\ pFSM);} -\DoxyCodeLine{00039\ \textcolor{keywordtype}{void}\ \_setSignal(FSM\ *pFSM,\ Uint16\ signalFlag);} -\DoxyCodeLine{00040\ } -\DoxyCodeLine{00041\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ 预装载器\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00042\ \textcolor{keywordtype}{void}\ *\_preloadIn(FSM\ *pFSM);} -\DoxyCodeLine{00043\ \textcolor{keywordtype}{void}\ \_preloaderGetReady(FSM\ *pFSM);} -\DoxyCodeLine{00044\ \textcolor{keywordtype}{int}\ \_getPreloaderOverFlag(FSM\ *pFSM);} -\DoxyCodeLine{00045\ \textcolor{keywordtype}{void}\ \_clearPreloaderOverFlag(FSM\ *pFSM);} +\DoxyCodeLine{00029\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ 避免警告的函数定义\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00030\ \textcolor{preprocessor}{\#define\ \ \ \ \ Step(pFSM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_stepFSM((FSM\ *)pFSM)\ }} +\DoxyCodeLine{00031\ \textcolor{preprocessor}{\#define\ \ \ \ \ GetData(pFSM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_getData((FSM*)pFSM)\ \ }} +\DoxyCodeLine{00032\ \textcolor{preprocessor}{\#define\ \ \ \ \ SetSignal(pFSM,\ signal)\ \ \ \ \ \ \ \ \ \ \_setSignal((FSM*)pFSM,\ signal)\ \ }} +\DoxyCodeLine{00035\ \textcolor{preprocessor}{\#define\ \ \ \ \ PreloaderGetReady(pFSM)\ \ \ \ \ \ \ \ \ \ \_preloaderGetReady((FSM\ *)pFSM);\ \ \ }} +\DoxyCodeLine{00036\ \textcolor{preprocessor}{\#define\ \ \ \ \ GetPreloaderOverFlag(pFSM)\ \ \ \ \ \ \ \_getPreloaderOverFlag((FSM\ *)pFSM)\ }} +\DoxyCodeLine{00037\ \textcolor{preprocessor}{\#define\ \ \ \ \ ClearPreloaderOverFlag(pFSM)\ \ \ \ \ \_clearPreloaderOverFlag((FSM\ *)pFSM)\ }} +\DoxyCodeLine{00040\ \textcolor{keywordtype}{void}\ \_stepFSM(FSM\ *pFSM);} +\DoxyCodeLine{00041\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ 状态机信息获取\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00042\ \textcolor{keywordtype}{int}\ getFSMCurState(FSM\ *pFSM);} +\DoxyCodeLine{00043\ \textcolor{keywordtype}{int}\ getFSMNextState(FSM\ *pFSM);} +\DoxyCodeLine{00044\ \textcolor{keywordtype}{void}\ setChildNum(FSM\ *pFSM,\ \textcolor{keywordtype}{int}\ num);} +\DoxyCodeLine{00045\ \textcolor{keywordtype}{void}\ registerChildFSM(FSM\ *parent,\ FSM\ *child,\ \textcolor{keywordtype}{int}\ index);} \DoxyCodeLine{00046\ } -\DoxyCodeLine{00047\ } -\DoxyCodeLine{00048\ } -\DoxyCodeLine{00049\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{00047\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ Data和Signals\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00048\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *\_getData(FSM*\ pFSM);} +\DoxyCodeLine{00049\ \textcolor{keywordtype}{void}\ \_setSignal(FSM\ *pFSM,\ Uint16\ signalFlag);} +\DoxyCodeLine{00050\ } +\DoxyCodeLine{00051\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ 预装载器\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00052\ \textcolor{keywordtype}{void}\ *\mbox{\hyperlink{_f_s_m__public_8h_a9c285ac5bbad90b0b04de18d393cf4ce}{\_preloadIn}}(FSM\ *pFSM);} +\DoxyCodeLine{00053\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{_f_s_m__public_8h_a6e2a8d16f390efeaecc8938ec8f2e728}{\_preloaderGetReady}}(FSM\ *pFSM);} +\DoxyCodeLine{00054\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{_f_s_m__public_8h_a704103961964dbb8582b59fd161a3348}{\_getPreloaderOverFlag}}(FSM\ *pFSM);} +\DoxyCodeLine{00055\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{_f_s_m__public_8h_aad909acd21e17b8073d5d9dfb8892ccb}{\_clearPreloaderOverFlag}}(FSM\ *pFSM);} +\DoxyCodeLine{00056\ } +\DoxyCodeLine{00057\ } +\DoxyCodeLine{00058\ } +\DoxyCodeLine{00059\ \textcolor{preprocessor}{\#endif}} \end{DoxyCode} diff --git a/vscode/manual/latex/annotated.tex b/vscode/manual/latex/annotated.tex index dad4d2f..e031b70 100644 --- a/vscode/manual/latex/annotated.tex +++ b/vscode/manual/latex/annotated.tex @@ -1,10 +1,10 @@ \doxysection{Data Structures} Here are the data structures with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{\mbox{\hyperlink{struct__template_f_s_m_external_data}{\+\_\+template\+FSMExternal\+Data}} \\*自定义外部数据 }{\pageref{struct__template_f_s_m_external_data}}{} -\item\contentsline{section}{\mbox{\hyperlink{struct__template_f_s_m_inner_data}{\+\_\+template\+FSMInner\+Data}} \\*自定义内部数据 }{\pageref{struct__template_f_s_m_inner_data}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_f_s_m_data_loader}{FSMData\+Loader}} }{\pageref{struct_f_s_m_data_loader}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}} \\*状态处理函数集合,全部需要子类重新填充内容 }{\pageref{struct_f_s_m_handler}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_f_s_m_private_vars}{FSMPrivate\+Vars}} \\*基类状态机的私有变量和函数,子类不可直接访问 }{\pageref{struct_f_s_m_private_vars}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_f_s_m_pure_vtbl}{FSMPure\+Vtbl}} \\*纯虚函数,子类必须重新实现,父类构造函数不会初始化 }{\pageref{struct_f_s_m_pure_vtbl}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \\*状态机用的信号,protected子类可以访问 }{\pageref{struct_f_s_m_signals}}{} +\item\contentsline{section}{\mbox{\hyperlink{struct_template_f_s_m_external_data}{Template\+FSMExternal\+Data}} \\*自定义外部数据 }{\pageref{struct_template_f_s_m_external_data}}{} +\item\contentsline{section}{\mbox{\hyperlink{struct_template_f_s_m_inner_data}{Template\+FSMInner\+Data}} \\*自定义内部数据 }{\pageref{struct_template_f_s_m_inner_data}}{} \end{DoxyCompactList} diff --git a/vscode/manual/latex/deprecated.tex b/vscode/manual/latex/deprecated.tex index bc92d97..ff53a49 100644 --- a/vscode/manual/latex/deprecated.tex +++ b/vscode/manual/latex/deprecated.tex @@ -2,16 +2,58 @@ \hypertarget{deprecated}{}\label{deprecated}\index{Deprecated List@{Deprecated List}} \begin{DoxyRefList} +\item[Global \doxylink{_f_s_m__public_8h_aad909acd21e17b8073d5d9dfb8892ccb}{\+\_\+clear\+Preloader\+Over\+Flag} (FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000005}% +\Hypertarget{deprecated__deprecated000005}% +弃用 +\item[Global \doxylink{_f_s_m__public_8h_a704103961964dbb8582b59fd161a3348}{\+\_\+get\+Preloader\+Over\+Flag} (FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000004}% +\Hypertarget{deprecated__deprecated000004}% +弃用 +\item[Global \doxylink{_f_s_m__public_8h_a6e2a8d16f390efeaecc8938ec8f2e728}{\+\_\+preloader\+Get\+Ready} (FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000003}% +\Hypertarget{deprecated__deprecated000003}% +弃用 +\item[Global \doxylink{_f_s_m__public_8h_a9c285ac5bbad90b0b04de18d393cf4ce}{\+\_\+preload\+In} (FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000002}% +\Hypertarget{deprecated__deprecated000002}% +弃用 +\item[Global \doxylink{_f_s_m__public_8h_ac11e3ebda7ba02fc42ac5de33fcfd148}{Clear\+Preloader\+Over\+Flag} (p\+FSM)]\label{deprecated__deprecated000015}% +\Hypertarget{deprecated__deprecated000015}% + \item[Global \doxylink{_f_s_m__private_8h_a9116b0a24810b38fafae2fb986517432}{FSMData\+Loader} ]\label{deprecated__deprecated000006}% \Hypertarget{deprecated__deprecated000006}% 预装载器弃用 -\item[Global \doxylink{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}{FSMPrivate\+Vars\+::preloader} ]\label{deprecated__deprecated000007}% -\Hypertarget{deprecated__deprecated000007}% -弃用 -\item[Global \doxylink{struct_f_s_m_pure_vtbl_aebfd1efad93210ac02249a81159d1472}{FSMPure\+Vtbl\+::init\+Data\+Loader} )(FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000009}% -\Hypertarget{deprecated__deprecated000009}% -和预装载器相关 -\item[Global \doxylink{struct_f_s_m_pure_vtbl_a4973df3b86e460a458c9edf4699aa68d}{FSMPure\+Vtbl\+::load\+External\+Data} )(void \texorpdfstring{$\ast$}{*}ext\+Data)]\label{deprecated__deprecated000008}% +\item[Global \doxylink{struct_f_s_m_handler_a976b4147d1c0c9aeb4a61c3cc85376bf}{FSMHandler\+::child\+FSMStep\+Table} )(FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM)]\label{deprecated__deprecated000010}% +\Hypertarget{deprecated__deprecated000010}% +子状态机暂时弃用 +\item[Global \doxylink{struct_f_s_m_private_vars_ad20548555264a67dac6b18b757e01821}{FSMPrivate\+Vars\+::child\+FSM} ]\label{deprecated__deprecated000008}% \Hypertarget{deprecated__deprecated000008}% -暂时没用,后续可能考虑外部数据是否允许随时修改 +和子状态机相关的暂时弃用 +\item[Global \doxylink{struct_f_s_m_private_vars_ac66fa0241dc6aa44e48e6b16811a8091}{FSMPrivate\+Vars\+::num\+Child} ]\label{deprecated__deprecated000007}% +\Hypertarget{deprecated__deprecated000007}% +和子状态机相关的暂时弃用 +\item[Global \doxylink{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}{FSMPrivate\+Vars\+::preloader} ]\label{deprecated__deprecated000009}% +\Hypertarget{deprecated__deprecated000009}% +弃用 +\item[Global \doxylink{struct_f_s_m_pure_vtbl_aebfd1efad93210ac02249a81159d1472}{FSMPure\+Vtbl\+::init\+Data\+Loader} )(FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000012}% +\Hypertarget{deprecated__deprecated000012}% +和预装载器相关 +\item[Global \doxylink{struct_f_s_m_pure_vtbl_a4973df3b86e460a458c9edf4699aa68d}{FSMPure\+Vtbl\+::load\+External\+Data} )(void \texorpdfstring{$\ast$}{*}ext\+Data)]\label{deprecated__deprecated000011}% +\Hypertarget{deprecated__deprecated000011}% +暂时没用,后续可能考虑外部数据是否允许随时修改 +\item[Global \doxylink{_f_s_m__public_8h_aef66ec3c44c151b23fbc98c10c514d32}{Get\+Preloader\+Over\+Flag} (p\+FSM)]\label{deprecated__deprecated000014}% +\Hypertarget{deprecated__deprecated000014}% + +\item[Global \doxylink{template_f_s_m_8c_a8b945e9059bb82bf66884af5133eb898}{init\+Data\+Loader} (Template\+FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000017}% +\Hypertarget{deprecated__deprecated000017}% +弃用 +\item[Global \doxylink{template_f_s_m_8c_a9e6eba3b03d1ff4c504705b2da864cb3}{load\+External\+Data} (Template\+FSMData \texorpdfstring{$\ast$}{*}data)]\label{deprecated__deprecated000016}% +\Hypertarget{deprecated__deprecated000016}% +暂时没用,后续考虑data是否需要加锁再说 +\item[Global \doxylink{_f_s_m_8c_a7fc6a4715e8cbd7660788fd9c59cb417}{preload} (FSM \texorpdfstring{$\ast$}{*}p\+FSM)]\label{deprecated__deprecated000001}% +\Hypertarget{deprecated__deprecated000001}% +去掉了所有和预装载器相关的内容 +\item[Global \doxylink{_f_s_m__public_8h_aa4b1ff528d718db75faeba03a845fe46}{Preloader\+Get\+Ready} (p\+FSM)]\label{deprecated__deprecated000013}% +\Hypertarget{deprecated__deprecated000013}% + +\item[Global \doxylink{template_f_s_m_8h_ab0325ef0b5aef6334743cdd7c1d70bd9}{Template\+FSM\+\_\+\+Input} (p\+FSM)]\label{deprecated__deprecated000018}% +\Hypertarget{deprecated__deprecated000018}% +暂时弃用 \end{DoxyRefList} \ No newline at end of file diff --git a/vscode/manual/latex/files.tex b/vscode/manual/latex/files.tex index ffee844..3d0f865 100644 --- a/vscode/manual/latex/files.tex +++ b/vscode/manual/latex/files.tex @@ -1,13 +1,15 @@ \doxysection{File List} Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{FSM\+\_\+\+OOP/base\+FSM/\mbox{\hyperlink{_f_s_m_8c}{FSM.\+c}} }{\pageref{_f_s_m_8c}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/base\+FSM/\mbox{\hyperlink{_f_s_m__private_8h}{FSM\+\_\+private.\+h}} \\*状态机框架的私有变量,只能在状态机框架内使用。 }{\pageref{_f_s_m__private_8h}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/base\+FSM/\mbox{\hyperlink{_f_s_m__protected_8h}{FSM\+\_\+protected.\+h}} \\*状态机框架的protected函数和变量,在继承的子类中可使用,在外界不可使用 }{\pageref{_f_s_m__protected_8h}}{} -\item\contentsline{section}{FSM\+\_\+\+OOP/base\+FSM/\mbox{\hyperlink{_f_s_m__public_8h_source}{FSM\+\_\+public.\+h}} }{\pageref{_f_s_m__public_8h_source}}{} +\item\contentsline{section}{FSM\+\_\+\+OOP/base\+FSM/\mbox{\hyperlink{_f_s_m__public_8h}{FSM\+\_\+public.\+h}} }{\pageref{_f_s_m__public_8h}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/childtest/\mbox{\hyperlink{child_f_s_m_8h_source}{child\+FSM.\+h}} }{\pageref{child_f_s_m_8h_source}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/childtest/\mbox{\hyperlink{child_f_s_m__private_8h_source}{child\+FSM\+\_\+private.\+h}} }{\pageref{child_f_s_m__private_8h_source}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/childtest/\mbox{\hyperlink{parent_f_s_m_8h_source}{parent\+FSM.\+h}} }{\pageref{parent_f_s_m_8h_source}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/keytest/\mbox{\hyperlink{key_f_s_m_8h_source}{key\+FSM.\+h}} }{\pageref{key_f_s_m_8h_source}}{} \item\contentsline{section}{FSM\+\_\+\+OOP/keytest/\mbox{\hyperlink{key_f_s_m__private_8h_source}{key\+FSM\+\_\+private.\+h}} }{\pageref{key_f_s_m__private_8h_source}}{} -\item\contentsline{section}{FSM\+\_\+\+OOP/template/\mbox{\hyperlink{template_f_s_m_8h_source}{template\+FSM.\+h}} }{\pageref{template_f_s_m_8h_source}}{} -\item\contentsline{section}{FSM\+\_\+\+OOP/template/\mbox{\hyperlink{template_f_s_m__private_8h_source}{template\+FSM\+\_\+private.\+h}} }{\pageref{template_f_s_m__private_8h_source}}{} +\item\contentsline{section}{FSM\+\_\+\+OOP/template/\mbox{\hyperlink{template_f_s_m_8c}{template\+FSM.\+c}} \\*重新实现几个必须实现的函数,并赋值到父类指针里 }{\pageref{template_f_s_m_8c}}{} +\item\contentsline{section}{FSM\+\_\+\+OOP/template/\mbox{\hyperlink{template_f_s_m_8h}{template\+FSM.\+h}} \\*对外暴露接口,外部可以设置状态机的信号 }{\pageref{template_f_s_m_8h}}{} +\item\contentsline{section}{FSM\+\_\+\+OOP/template/\mbox{\hyperlink{template_f_s_m__private_8h}{template\+FSM\+\_\+private.\+h}} \\*用来声明状态、状态函数等。这个文件只能被template\+FSM.\+c引用一次! }{\pageref{template_f_s_m__private_8h}}{} \end{DoxyCompactList} diff --git a/vscode/manual/latex/refman.tex b/vscode/manual/latex/refman.tex index e1f7efe..589067d 100644 --- a/vscode/manual/latex/refman.tex +++ b/vscode/manual/latex/refman.tex @@ -213,25 +213,30 @@ \chapter{File Index} \input{files} \chapter{Data Structure Documentation} -\input{struct__template_f_s_m_external_data} -\input{struct__template_f_s_m_inner_data} \input{struct_f_s_m_data_loader} \input{struct_f_s_m_handler} \input{struct_f_s_m_private_vars} \input{struct_f_s_m_pure_vtbl} \input{struct_f_s_m_signals} +\input{struct_template_f_s_m_external_data} +\input{struct_template_f_s_m_inner_data} \chapter{File Documentation} +\input{_f_s_m_8c} \input{_f_s_m__private_8h} \input{_f_s_m__private_8h_source} \input{_f_s_m__protected_8h} \input{_f_s_m__protected_8h_source} +\input{_f_s_m__public_8h} \input{_f_s_m__public_8h_source} \input{child_f_s_m_8h_source} \input{child_f_s_m__private_8h_source} \input{parent_f_s_m_8h_source} \input{key_f_s_m_8h_source} \input{key_f_s_m__private_8h_source} +\input{template_f_s_m_8c} +\input{template_f_s_m_8h} \input{template_f_s_m_8h_source} +\input{template_f_s_m__private_8h} \input{template_f_s_m__private_8h_source} %--- End generated contents --- % Index diff --git a/vscode/manual/latex/struct_f_s_m_handler.tex b/vscode/manual/latex/struct_f_s_m_handler.tex index 5e1a7ee..29e0801 100644 --- a/vscode/manual/latex/struct_f_s_m_handler.tex +++ b/vscode/manual/latex/struct_f_s_m_handler.tex @@ -13,13 +13,25 @@ \begin{DoxyCompactItemize} \item int(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_a934ff7d1a2f7714694b8a2927b5f8451}{select\+Next\+State}} )(void \texorpdfstring{$\ast$}{*}data, \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signals) +\item +void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_ac3b9fc077f8ba0368e8cba02a890aa2f}{transition\+Table}} )(void \texorpdfstring{$\ast$}{*}data) +\item +void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_ab199071e132b4409d71883155e6b81f2}{transition\+General\+Action}} )(void \texorpdfstring{$\ast$}{*}data) +\item +void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_aa733ab89a48f8a63b4afb623b4d6be90}{enter\+Action\+Table}} )(void \texorpdfstring{$\ast$}{*}data, FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM) +\item +void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_ad3506a53c3ee76655a117f7db0da7d3d}{during\+Action\+Table}} )(void \texorpdfstring{$\ast$}{*}data, FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM) +\item +void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_a04721875a9baabc8a51c54a668db9a2c}{exit\+Action\+Table}} )(void \texorpdfstring{$\ast$}{*}data, FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM) +\item +void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_handler_a976b4147d1c0c9aeb4a61c3cc85376bf}{child\+FSMStep\+Table}} )(FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM) \end{DoxyCompactItemize} \doxysubsection{Detailed Description} 状态处理函数集合,全部需要子类重新填充内容 -这个结构体暴露给protect文件,方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 +这个结构体是私有变量,子状态机和外界都不该访问。但是写在\+FSM\+\_\+protect.\+h文件,这样方便在子类中添加函数。不然添加函数得再写个函数添加, 有点麻烦 \doxysubsection{Field Documentation} \Hypertarget{struct_f_s_m_handler_a934ff7d1a2f7714694b8a2927b5f8451}\label{struct_f_s_m_handler_a934ff7d1a2f7714694b8a2927b5f8451} @@ -28,4 +40,41 @@ int(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct \doxysubsubsection{\texorpdfstring{selectNextState}{selectNextState}} {\footnotesize\ttfamily int(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMHandler\+::select\+Next\+State) (void \texorpdfstring{$\ast$}{*}data, \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signals)} -每个状态配置的状态选择函数 \ No newline at end of file +每个状态配置的状态选择函数 \Hypertarget{struct_f_s_m_handler_ac3b9fc077f8ba0368e8cba02a890aa2f}\label{struct_f_s_m_handler_ac3b9fc077f8ba0368e8cba02a890aa2f} +\index{FSMHandler@{FSMHandler}!transitionTable@{transitionTable}} +\index{transitionTable@{transitionTable}!FSMHandler@{FSMHandler}} +\doxysubsubsection{\texorpdfstring{transitionTable}{transitionTable}} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMHandler\+::transition\+Table) (void \texorpdfstring{$\ast$}{*}data)} + +状态转移函数表 \Hypertarget{struct_f_s_m_handler_ab199071e132b4409d71883155e6b81f2}\label{struct_f_s_m_handler_ab199071e132b4409d71883155e6b81f2} +\index{FSMHandler@{FSMHandler}!transitionGeneralAction@{transitionGeneralAction}} +\index{transitionGeneralAction@{transitionGeneralAction}!FSMHandler@{FSMHandler}} +\doxysubsubsection{\texorpdfstring{transitionGeneralAction}{transitionGeneralAction}} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*} FSMHandler\+::transition\+General\+Action) (void \texorpdfstring{$\ast$}{*}data)} + +通用状态转移函数,不论有没有独立的状态转移函数都会执行 \Hypertarget{struct_f_s_m_handler_aa733ab89a48f8a63b4afb623b4d6be90}\label{struct_f_s_m_handler_aa733ab89a48f8a63b4afb623b4d6be90} +\index{FSMHandler@{FSMHandler}!enterActionTable@{enterActionTable}} +\index{enterActionTable@{enterActionTable}!FSMHandler@{FSMHandler}} +\doxysubsubsection{\texorpdfstring{enterActionTable}{enterActionTable}} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMHandler\+::enter\+Action\+Table) (void \texorpdfstring{$\ast$}{*}data, FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM)} + +进入状态时运行的函数,和plecs对标 \Hypertarget{struct_f_s_m_handler_ad3506a53c3ee76655a117f7db0da7d3d}\label{struct_f_s_m_handler_ad3506a53c3ee76655a117f7db0da7d3d} +\index{FSMHandler@{FSMHandler}!duringActionTable@{duringActionTable}} +\index{duringActionTable@{duringActionTable}!FSMHandler@{FSMHandler}} +\doxysubsubsection{\texorpdfstring{duringActionTable}{duringActionTable}} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMHandler\+::during\+Action\+Table) (void \texorpdfstring{$\ast$}{*}data, FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM)} + +状态不变时运行的函数,和plecs对标 \Hypertarget{struct_f_s_m_handler_a04721875a9baabc8a51c54a668db9a2c}\label{struct_f_s_m_handler_a04721875a9baabc8a51c54a668db9a2c} +\index{FSMHandler@{FSMHandler}!exitActionTable@{exitActionTable}} +\index{exitActionTable@{exitActionTable}!FSMHandler@{FSMHandler}} +\doxysubsubsection{\texorpdfstring{exitActionTable}{exitActionTable}} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMHandler\+::exit\+Action\+Table) (void \texorpdfstring{$\ast$}{*}data, FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM)} + +状态退出时运行的函数,和plecs对标 \Hypertarget{struct_f_s_m_handler_a976b4147d1c0c9aeb4a61c3cc85376bf}\label{struct_f_s_m_handler_a976b4147d1c0c9aeb4a61c3cc85376bf} +\index{FSMHandler@{FSMHandler}!childFSMStepTable@{childFSMStepTable}} +\index{childFSMStepTable@{childFSMStepTable}!FSMHandler@{FSMHandler}} +\doxysubsubsection{\texorpdfstring{childFSMStepTable}{childFSMStepTable}} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMHandler\+::child\+FSMStep\+Table) (FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}c\+FSM)} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000010}{Deprecated}}]子状态机暂时弃用 \end{DoxyRefDesc} diff --git a/vscode/manual/latex/struct_f_s_m_private_vars.tex b/vscode/manual/latex/struct_f_s_m_private_vars.tex index c470dcd..1e068c4 100644 --- a/vscode/manual/latex/struct_f_s_m_private_vars.tex +++ b/vscode/manual/latex/struct_f_s_m_private_vars.tex @@ -12,12 +12,22 @@ \doxysubsubsection*{Data Fields} \begin{DoxyCompactItemize} \item +int \mbox{\hyperlink{struct_f_s_m_private_vars_a9f8a355881f1e3e990987090e6e9e37c}{num\+State}} +\item int \mbox{\hyperlink{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe}{default\+State}} \item +int \mbox{\hyperlink{struct_f_s_m_private_vars_a1e013b34f3da19006fdaef781e386ba7}{cur\+State}} +\item int \mbox{\hyperlink{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c}{next\+State}} \item int \mbox{\hyperlink{struct_f_s_m_private_vars_ab14d89d4db1639abfab4a24f05cca6a7}{index}} \item +\mbox{\hyperlink{_f_s_m__private_8h_a19064d5985c08b2ebbdfe2b27c6986ba}{FSMHandler}} \mbox{\hyperlink{struct_f_s_m_private_vars_a38fc9622245dd2e2272d0511a603db69}{fcns}} +\item +int \mbox{\hyperlink{struct_f_s_m_private_vars_ac66fa0241dc6aa44e48e6b16811a8091}{num\+Child}} +\item +FSM \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_private_vars_ad20548555264a67dac6b18b757e01821}{child\+FSM}} +\item \mbox{\hyperlink{struct_f_s_m_data_loader}{FSMData\+Loader}} \mbox{\hyperlink{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}{preloader}} \end{DoxyCompactItemize} @@ -26,13 +36,25 @@ int \mbox{\hyperlink{struct_f_s_m_private_vars_ab14d89d4db1639abfab4a24f05cca6a7 基类状态机的私有变量和函数,子类不可直接访问 \doxysubsection{Field Documentation} -\Hypertarget{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe}\label{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe} +\Hypertarget{struct_f_s_m_private_vars_a9f8a355881f1e3e990987090e6e9e37c}\label{struct_f_s_m_private_vars_a9f8a355881f1e3e990987090e6e9e37c} +\index{FSMPrivateVars@{FSMPrivateVars}!numState@{numState}} +\index{numState@{numState}!FSMPrivateVars@{FSMPrivateVars}} +\doxysubsubsection{\texorpdfstring{numState}{numState}} +{\footnotesize\ttfamily int FSMPrivate\+Vars\+::num\+State} + +状态数量 \Hypertarget{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe}\label{struct_f_s_m_private_vars_a4cc735365b8c3946ff83d1984e2565fe} \index{FSMPrivateVars@{FSMPrivateVars}!defaultState@{defaultState}} \index{defaultState@{defaultState}!FSMPrivateVars@{FSMPrivateVars}} \doxysubsubsection{\texorpdfstring{defaultState}{defaultState}} {\footnotesize\ttfamily int FSMPrivate\+Vars\+::default\+State} -Idle状态不能停留,必须指定一个初始状态 \Hypertarget{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c}\label{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c} +Idle状态不能停留,必须指定一个初始状态 \Hypertarget{struct_f_s_m_private_vars_a1e013b34f3da19006fdaef781e386ba7}\label{struct_f_s_m_private_vars_a1e013b34f3da19006fdaef781e386ba7} +\index{FSMPrivateVars@{FSMPrivateVars}!curState@{curState}} +\index{curState@{curState}!FSMPrivateVars@{FSMPrivateVars}} +\doxysubsubsection{\texorpdfstring{curState}{curState}} +{\footnotesize\ttfamily int FSMPrivate\+Vars\+::cur\+State} + +当前状态 \Hypertarget{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c}\label{struct_f_s_m_private_vars_a4312b61c7165398d2415c0794ac1fa8c} \index{FSMPrivateVars@{FSMPrivateVars}!nextState@{nextState}} \index{nextState@{nextState}!FSMPrivateVars@{FSMPrivateVars}} \doxysubsubsection{\texorpdfstring{nextState}{nextState}} @@ -44,11 +66,33 @@ next\+State为\+Idle代表状态机不发生变化 \Hypertarget{struct_f_s_m_pri \doxysubsubsection{\texorpdfstring{index}{index}} {\footnotesize\ttfamily int FSMPrivate\+Vars\+::index} -状态转移函数表对应的标号 \Hypertarget{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}\label{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1} +状态转移函数表对应的标号 \Hypertarget{struct_f_s_m_private_vars_a38fc9622245dd2e2272d0511a603db69}\label{struct_f_s_m_private_vars_a38fc9622245dd2e2272d0511a603db69} +\index{FSMPrivateVars@{FSMPrivateVars}!fcns@{fcns}} +\index{fcns@{fcns}!FSMPrivateVars@{FSMPrivateVars}} +\doxysubsubsection{\texorpdfstring{fcns}{fcns}} +{\footnotesize\ttfamily \mbox{\hyperlink{_f_s_m__private_8h_a19064d5985c08b2ebbdfe2b27c6986ba}{FSMHandler}} FSMPrivate\+Vars\+::fcns} + +状态函数表 \Hypertarget{struct_f_s_m_private_vars_ac66fa0241dc6aa44e48e6b16811a8091}\label{struct_f_s_m_private_vars_ac66fa0241dc6aa44e48e6b16811a8091} +\index{FSMPrivateVars@{FSMPrivateVars}!numChild@{numChild}} +\index{numChild@{numChild}!FSMPrivateVars@{FSMPrivateVars}} +\doxysubsubsection{\texorpdfstring{numChild}{numChild}} +{\footnotesize\ttfamily int FSMPrivate\+Vars\+::num\+Child} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000007}{Deprecated}}]和子状态机相关的暂时弃用 \end{DoxyRefDesc} +\Hypertarget{struct_f_s_m_private_vars_ad20548555264a67dac6b18b757e01821}\label{struct_f_s_m_private_vars_ad20548555264a67dac6b18b757e01821} +\index{FSMPrivateVars@{FSMPrivateVars}!childFSM@{childFSM}} +\index{childFSM@{childFSM}!FSMPrivateVars@{FSMPrivateVars}} +\doxysubsubsection{\texorpdfstring{childFSM}{childFSM}} +{\footnotesize\ttfamily FSM\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FSMPrivate\+Vars\+::child\+FSM} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000008}{Deprecated}}]和子状态机相关的暂时弃用 \end{DoxyRefDesc} +\Hypertarget{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1}\label{struct_f_s_m_private_vars_a71ba0d8bee3f15ed5a0dd92dda0e0ed1} \index{FSMPrivateVars@{FSMPrivateVars}!preloader@{preloader}} \index{preloader@{preloader}!FSMPrivateVars@{FSMPrivateVars}} \doxysubsubsection{\texorpdfstring{preloader}{preloader}} {\footnotesize\ttfamily \mbox{\hyperlink{struct_f_s_m_data_loader}{FSMData\+Loader}} FSMPrivate\+Vars\+::preloader} \begin{DoxyRefDesc}{Deprecated} -\item[\mbox{\hyperlink{deprecated__deprecated000007}{Deprecated}}]弃用 \end{DoxyRefDesc} +\item[\mbox{\hyperlink{deprecated__deprecated000009}{Deprecated}}]弃用 \end{DoxyRefDesc} diff --git a/vscode/manual/latex/struct_f_s_m_pure_vtbl.tex b/vscode/manual/latex/struct_f_s_m_pure_vtbl.tex index 8b0fc3b..1a644e8 100644 --- a/vscode/manual/latex/struct_f_s_m_pure_vtbl.tex +++ b/vscode/manual/latex/struct_f_s_m_pure_vtbl.tex @@ -22,7 +22,7 @@ void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_pure_vtbl_aebfd1ef \item void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_pure_vtbl_a58c666f5941e07c4a6ef054f1250dbd8}{init\+Signals}} )(FSM \texorpdfstring{$\ast$}{*}p\+FSM) \item -void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_pure_vtbl_a65489698aee35862a265b30dff280ad1}{reset\+Signals}} )(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signal\+Regs, void \texorpdfstring{$\ast$}{*}data) +void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_pure_vtbl_ae326d855d6a29d089f312d965bf032f2}{reset\+Signals}} )(\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signals, void \texorpdfstring{$\ast$}{*}data) \end{DoxyCompactItemize} @@ -49,7 +49,7 @@ void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_pure_vtbl_a6548969 {\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*} FSMPure\+Vtbl\+::load\+External\+Data) (void \texorpdfstring{$\ast$}{*}ext\+Data)} \begin{DoxyRefDesc}{Deprecated} -\item[\mbox{\hyperlink{deprecated__deprecated000008}{Deprecated}}]暂时没用,后续可能考虑外部数据是否允许随时修改 \end{DoxyRefDesc} +\item[\mbox{\hyperlink{deprecated__deprecated000011}{Deprecated}}]暂时没用,后续可能考虑外部数据是否允许随时修改 \end{DoxyRefDesc} \Hypertarget{struct_f_s_m_pure_vtbl_aebfd1efad93210ac02249a81159d1472}\label{struct_f_s_m_pure_vtbl_aebfd1efad93210ac02249a81159d1472} \index{FSMPureVtbl@{FSMPureVtbl}!initDataLoader@{initDataLoader}} \index{initDataLoader@{initDataLoader}!FSMPureVtbl@{FSMPureVtbl}} @@ -57,17 +57,17 @@ void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_f_s_m_pure_vtbl_a6548969 {\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*} FSMPure\+Vtbl\+::init\+Data\+Loader) (FSM \texorpdfstring{$\ast$}{*}p\+FSM)} \begin{DoxyRefDesc}{Deprecated} -\item[\mbox{\hyperlink{deprecated__deprecated000009}{Deprecated}}]和预装载器相关 \end{DoxyRefDesc} +\item[\mbox{\hyperlink{deprecated__deprecated000012}{Deprecated}}]和预装载器相关 \end{DoxyRefDesc} \Hypertarget{struct_f_s_m_pure_vtbl_a58c666f5941e07c4a6ef054f1250dbd8}\label{struct_f_s_m_pure_vtbl_a58c666f5941e07c4a6ef054f1250dbd8} \index{FSMPureVtbl@{FSMPureVtbl}!initSignals@{initSignals}} \index{initSignals@{initSignals}!FSMPureVtbl@{FSMPureVtbl}} \doxysubsubsection{\texorpdfstring{initSignals}{initSignals}} {\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*} FSMPure\+Vtbl\+::init\+Signals) (FSM \texorpdfstring{$\ast$}{*}p\+FSM)} -初始化状态机信号 \Hypertarget{struct_f_s_m_pure_vtbl_a65489698aee35862a265b30dff280ad1}\label{struct_f_s_m_pure_vtbl_a65489698aee35862a265b30dff280ad1} +初始化状态机信号 \Hypertarget{struct_f_s_m_pure_vtbl_ae326d855d6a29d089f312d965bf032f2}\label{struct_f_s_m_pure_vtbl_ae326d855d6a29d089f312d965bf032f2} \index{FSMPureVtbl@{FSMPureVtbl}!resetSignals@{resetSignals}} \index{resetSignals@{resetSignals}!FSMPureVtbl@{FSMPureVtbl}} \doxysubsubsection{\texorpdfstring{resetSignals}{resetSignals}} -{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*} FSMPure\+Vtbl\+::reset\+Signals) (\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signal\+Regs, void \texorpdfstring{$\ast$}{*}data)} +{\footnotesize\ttfamily void(\texorpdfstring{$\ast$}{*} FSMPure\+Vtbl\+::reset\+Signals) (\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signals, void \texorpdfstring{$\ast$}{*}data)} 根据条件重置状态机信号 \ No newline at end of file diff --git a/vscode/manual/latex/struct_f_s_m_signals.tex b/vscode/manual/latex/struct_f_s_m_signals.tex index 4785011..225a836 100644 --- a/vscode/manual/latex/struct_f_s_m_signals.tex +++ b/vscode/manual/latex/struct_f_s_m_signals.tex @@ -12,7 +12,7 @@ \doxysubsubsection*{Data Fields} \begin{DoxyCompactItemize} \item -Uint16 \mbox{\hyperlink{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c}{external}} +Uint16 \mbox{\hyperlink{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b}{all}} \item Uint16 \mbox{\hyperlink{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d}{last\+Triggered\+Signal}} \end{DoxyCompactItemize} @@ -21,12 +21,14 @@ Uint16 \mbox{\hyperlink{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d}{ \doxysubsection{Detailed Description} 状态机用的信号,protected子类可以访问 +外部只能通过\+Set\+Signal函数对信号进行设置,在状态机运行时会根据信号清除函数清除信号。信号 利用位进行存储,每个位代表一个信号,通过移位操作设置和清除信号。 + \doxysubsection{Field Documentation} -\Hypertarget{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c}\label{struct_f_s_m_signals_af67ec8fc1e3f46fda173b939dbe9116c} -\index{FSMSignals@{FSMSignals}!external@{external}} -\index{external@{external}!FSMSignals@{FSMSignals}} -\doxysubsubsection{\texorpdfstring{external}{external}} -{\footnotesize\ttfamily Uint16 FSMSignals\+::external} +\Hypertarget{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b}\label{struct_f_s_m_signals_a9586b8cdc522f49e9bc62d2b67a1d79b} +\index{FSMSignals@{FSMSignals}!all@{all}} +\index{all@{all}!FSMSignals@{FSMSignals}} +\doxysubsubsection{\texorpdfstring{all}{all}} +{\footnotesize\ttfamily Uint16 FSMSignals\+::all} 外部信号 \Hypertarget{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d}\label{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d} \index{FSMSignals@{FSMSignals}!lastTriggeredSignal@{lastTriggeredSignal}} @@ -34,4 +36,4 @@ Uint16 \mbox{\hyperlink{struct_f_s_m_signals_a0ed78b85dbee15c4928fc85546eaa10d}{ \doxysubsubsection{\texorpdfstring{lastTriggeredSignal}{lastTriggeredSignal}} {\footnotesize\ttfamily Uint16 FSMSignals\+::last\+Triggered\+Signal} -上一次触发的外部信号 \ No newline at end of file +上一次触发的外部信号,用于信号清除 \ No newline at end of file diff --git a/vscode/manual/latex/struct_template_f_s_m_external_data.tex b/vscode/manual/latex/struct_template_f_s_m_external_data.tex new file mode 100644 index 0000000..8acbf6c --- /dev/null +++ b/vscode/manual/latex/struct_template_f_s_m_external_data.tex @@ -0,0 +1,15 @@ +\doxysection{Template\+FSMExternal\+Data Struct Reference} +\hypertarget{struct_template_f_s_m_external_data}{}\label{struct_template_f_s_m_external_data}\index{TemplateFSMExternalData@{TemplateFSMExternalData}} + + +自定义外部数据 + + + + +{\ttfamily \#include $<$template\+FSM.\+h$>$} + + + +\doxysubsection{Detailed Description} +自定义外部数据 \ No newline at end of file diff --git a/vscode/manual/latex/struct_template_f_s_m_inner_data.tex b/vscode/manual/latex/struct_template_f_s_m_inner_data.tex new file mode 100644 index 0000000..7539bf0 --- /dev/null +++ b/vscode/manual/latex/struct_template_f_s_m_inner_data.tex @@ -0,0 +1,15 @@ +\doxysection{Template\+FSMInner\+Data Struct Reference} +\hypertarget{struct_template_f_s_m_inner_data}{}\label{struct_template_f_s_m_inner_data}\index{TemplateFSMInnerData@{TemplateFSMInnerData}} + + +自定义内部数据 + + + + +{\ttfamily \#include $<$template\+FSM.\+h$>$} + + + +\doxysubsection{Detailed Description} +自定义内部数据 \ No newline at end of file diff --git a/vscode/manual/latex/template_f_s_m_8c.tex b/vscode/manual/latex/template_f_s_m_8c.tex new file mode 100644 index 0000000..edc9e3c --- /dev/null +++ b/vscode/manual/latex/template_f_s_m_8c.tex @@ -0,0 +1,151 @@ +\doxysection{FSM\+\_\+\+OOP/template/template\+FSM.c File Reference} +\hypertarget{template_f_s_m_8c}{}\label{template_f_s_m_8c}\index{FSM\_OOP/template/templateFSM.c@{FSM\_OOP/template/templateFSM.c}} + + +重新实现几个必须实现的函数,并赋值到父类指针里 + + +{\ttfamily \#include $<$stdio.\+h$>$}\newline +{\ttfamily \#include $<$stdlib.\+h$>$}\newline +{\ttfamily \#include $<$string.\+h$>$}\newline +{\ttfamily \#include "{}FSM\+\_\+protected.\+h"{}}\newline +{\ttfamily \#include "{}template\+FSM.\+h"{}}\newline +{\ttfamily \#include "{}template\+FSM\+\_\+private.\+h"{}}\newline +\doxysubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +static void \mbox{\hyperlink{template_f_s_m_8c_a9e6eba3b03d1ff4c504705b2da864cb3}{load\+External\+Data}} (Template\+FSMData \texorpdfstring{$\ast$}{*}data) +\item +static void \mbox{\hyperlink{template_f_s_m_8c_a7ae1c0974bb8e7f8b00f959a17d91f60}{reset\+Signals}} (\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}signals, Template\+FSMData \texorpdfstring{$\ast$}{*}data) +\begin{DoxyCompactList}\small\item\em 根据条件重置信号 \end{DoxyCompactList}\item +static void \mbox{\hyperlink{template_f_s_m_8c_a5ebc219bfad056d35b189b8e6fa94896}{init\+Data}} (Template\+FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\begin{DoxyCompactList}\small\item\em 给所有内部、外部数据分配堆空间 \end{DoxyCompactList}\item +static void \mbox{\hyperlink{template_f_s_m_8c_a8b945e9059bb82bf66884af5133eb898}{init\+Data\+Loader}} (Template\+FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\item +static void \mbox{\hyperlink{template_f_s_m_8c_a48fc6ebf7882fb5d4437c4d64b96255b}{setup\+Handler}} (\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}} \texorpdfstring{$\ast$}{*}fcns) +\begin{DoxyCompactList}\small\item\em 设置状态选择函数、状态内函数和状态转移函数 \end{DoxyCompactList}\item +static void \mbox{\hyperlink{template_f_s_m_8c_ac23edf7d09bf4b52ca0cfbc1224c4c0d}{step}} (Template\+FSM \texorpdfstring{$\ast$}{*}p\+FSM) +\begin{DoxyCompactList}\small\item\em 重新实现基类的step函数,添加一些打印信息 \end{DoxyCompactList}\item +Template\+FSM \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{template_f_s_m_8c_ab0fc4d91dbcaaffccd8f14e56173d696}{create\+Template\+FSM}} () +\begin{DoxyCompactList}\small\item\em Create a Template FSM object. \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +重新实现几个必须实现的函数,并赋值到父类指针里 + +\begin{DoxyAuthor}{Author} +天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) +\end{DoxyAuthor} +\begin{DoxyVersion}{Version} +2.\+1 +\end{DoxyVersion} +\begin{DoxyDate}{Date} +2024-\/05-\/07 +\end{DoxyDate} +\begin{DoxyCopyright}{Copyright} +天神创意无限公司 2024 +\end{DoxyCopyright} + + +\doxysubsection{Function Documentation} +\Hypertarget{template_f_s_m_8c_a9e6eba3b03d1ff4c504705b2da864cb3}\label{template_f_s_m_8c_a9e6eba3b03d1ff4c504705b2da864cb3} +\index{templateFSM.c@{templateFSM.c}!loadExternalData@{loadExternalData}} +\index{loadExternalData@{loadExternalData}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{loadExternalData()}{loadExternalData()}} +{\footnotesize\ttfamily static void load\+External\+Data (\begin{DoxyParamCaption}\item[{Template\+FSMData \texorpdfstring{$\ast$}{*}}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000016}{Deprecated}}]暂时没用,后续考虑data是否需要加锁再说 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em data} & 主要是外部数据 \\ +\hline +\end{DoxyParams} +\Hypertarget{template_f_s_m_8c_a7ae1c0974bb8e7f8b00f959a17d91f60}\label{template_f_s_m_8c_a7ae1c0974bb8e7f8b00f959a17d91f60} +\index{templateFSM.c@{templateFSM.c}!resetSignals@{resetSignals}} +\index{resetSignals@{resetSignals}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{resetSignals()}{resetSignals()}} +{\footnotesize\ttfamily static void reset\+Signals (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}} \texorpdfstring{$\ast$}{*}}]{signals, }\item[{Template\+FSMData \texorpdfstring{$\ast$}{*}}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +根据条件重置信号 + +清除被响应信号和所有小于被响应信号优先级的信号,具体可以参考notion +\begin{DoxyParams}{Parameters} +{\em signals} & 状态机接收到的信号 \\ +\hline +{\em data} & 状态机数据 \\ +\hline +\end{DoxyParams} +\Hypertarget{template_f_s_m_8c_a5ebc219bfad056d35b189b8e6fa94896}\label{template_f_s_m_8c_a5ebc219bfad056d35b189b8e6fa94896} +\index{templateFSM.c@{templateFSM.c}!initData@{initData}} +\index{initData@{initData}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{initData()}{initData()}} +{\footnotesize\ttfamily static void init\+Data (\begin{DoxyParamCaption}\item[{Template\+FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +给所有内部、外部数据分配堆空间 + + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\Hypertarget{template_f_s_m_8c_a8b945e9059bb82bf66884af5133eb898}\label{template_f_s_m_8c_a8b945e9059bb82bf66884af5133eb898} +\index{templateFSM.c@{templateFSM.c}!initDataLoader@{initDataLoader}} +\index{initDataLoader@{initDataLoader}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{initDataLoader()}{initDataLoader()}} +{\footnotesize\ttfamily static void init\+Data\+Loader (\begin{DoxyParamCaption}\item[{Template\+FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000017}{Deprecated}}]弃用 \end{DoxyRefDesc} + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & \\ +\hline +\end{DoxyParams} +\Hypertarget{template_f_s_m_8c_a48fc6ebf7882fb5d4437c4d64b96255b}\label{template_f_s_m_8c_a48fc6ebf7882fb5d4437c4d64b96255b} +\index{templateFSM.c@{templateFSM.c}!setupHandler@{setupHandler}} +\index{setupHandler@{setupHandler}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{setupHandler()}{setupHandler()}} +{\footnotesize\ttfamily static void setup\+Handler (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_f_s_m_handler}{FSMHandler}} \texorpdfstring{$\ast$}{*}}]{fcns }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +设置状态选择函数、状态内函数和状态转移函数 + + +\begin{DoxyParams}{Parameters} +{\em fcns} & 状态机函数表 \\ +\hline +\end{DoxyParams} +\Hypertarget{template_f_s_m_8c_ac23edf7d09bf4b52ca0cfbc1224c4c0d}\label{template_f_s_m_8c_ac23edf7d09bf4b52ca0cfbc1224c4c0d} +\index{templateFSM.c@{templateFSM.c}!step@{step}} +\index{step@{step}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{step()}{step()}} +{\footnotesize\ttfamily static void step (\begin{DoxyParamCaption}\item[{Template\+FSM \texorpdfstring{$\ast$}{*}}]{p\+FSM }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +重新实现基类的step函数,添加一些打印信息 + + +\begin{DoxyParams}{Parameters} +{\em p\+FSM} & 子类状态机指针 \\ +\hline +\end{DoxyParams} +\Hypertarget{template_f_s_m_8c_ab0fc4d91dbcaaffccd8f14e56173d696}\label{template_f_s_m_8c_ab0fc4d91dbcaaffccd8f14e56173d696} +\index{templateFSM.c@{templateFSM.c}!createTemplateFSM@{createTemplateFSM}} +\index{createTemplateFSM@{createTemplateFSM}!templateFSM.c@{templateFSM.c}} +\doxysubsubsection{\texorpdfstring{createTemplateFSM()}{createTemplateFSM()}} +{\footnotesize\ttfamily Template\+FSM \texorpdfstring{$\ast$}{*} create\+Template\+FSM (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Create a Template FSM object. + +子类状态机细节对外隐藏,外部只能访问基类的公有函数来操作子类变量 \begin{DoxyReturn}{Returns} +Template\+FSM\texorpdfstring{$\ast$}{*} +\end{DoxyReturn} diff --git a/vscode/manual/latex/template_f_s_m_8h.tex b/vscode/manual/latex/template_f_s_m_8h.tex new file mode 100644 index 0000000..964c68f --- /dev/null +++ b/vscode/manual/latex/template_f_s_m_8h.tex @@ -0,0 +1,103 @@ +\doxysection{FSM\+\_\+\+OOP/template/template\+FSM.h File Reference} +\hypertarget{template_f_s_m_8h}{}\label{template_f_s_m_8h}\index{FSM\_OOP/template/templateFSM.h@{FSM\_OOP/template/templateFSM.h}} + + +对外暴露接口,外部可以设置状态机的信号 + + +\doxysubsubsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \mbox{\hyperlink{struct_template_f_s_m_external_data}{Template\+FSMExternal\+Data}} +\begin{DoxyCompactList}\small\item\em 自定义外部数据 \end{DoxyCompactList}\item +struct \mbox{\hyperlink{struct_template_f_s_m_inner_data}{Template\+FSMInner\+Data}} +\begin{DoxyCompactList}\small\item\em 自定义内部数据 \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \mbox{\hyperlink{template_f_s_m_8h_ab0325ef0b5aef6334743cdd7c1d70bd9}{Template\+FSM\+\_\+\+Input}}(p\+FSM)~((\mbox{\hyperlink{struct_template_f_s_m_external_data}{Template\+FSMExternal\+Data}} \texorpdfstring{$\ast$}{*})\mbox{\hyperlink{_f_s_m_8c_a9c285ac5bbad90b0b04de18d393cf4ce}{\+\_\+preload\+In}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM)) +\end{DoxyCompactItemize} +\doxysubsubsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +\Hypertarget{template_f_s_m_8h_ad30e63631e0a6c61ac9cc9a47e31a5a5}\label{template_f_s_m_8h_ad30e63631e0a6c61ac9cc9a47e31a5a5} +typedef struct Template\+FSMExternal\+Data {\bfseries Template\+FSMExternal\+Data} +\begin{DoxyCompactList}\small\item\em 自定义外部数据 \end{DoxyCompactList}\item +\Hypertarget{template_f_s_m_8h_adfdfb9e9cda040324f0952d1e8b80e05}\label{template_f_s_m_8h_adfdfb9e9cda040324f0952d1e8b80e05} +typedef struct Template\+FSMInner\+Data {\bfseries Template\+FSMInner\+Data} +\begin{DoxyCompactList}\small\item\em 自定义内部数据 \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Enumerations} +\begin{DoxyCompactItemize} +\item +enum \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1}{Template\+FSMSignals}} \{ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}{Signal\+\_\+A}} = 1 +, {\bfseries Signal\+\_\+B} + \} +\begin{DoxyCompactList}\small\item\em 自定义外部信号,目前最多15个 \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +Template\+FSM \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{template_f_s_m_8h_ab0fc4d91dbcaaffccd8f14e56173d696}{create\+Template\+FSM}} () +\begin{DoxyCompactList}\small\item\em Create a Template FSM object. \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +对外暴露接口,外部可以设置状态机的信号 + +\begin{DoxyAuthor}{Author} +天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) +\end{DoxyAuthor} +\begin{DoxyVersion}{Version} +2.\+1 +\end{DoxyVersion} +\begin{DoxyDate}{Date} +2024-\/05-\/07 +\end{DoxyDate} +\begin{DoxyCopyright}{Copyright} +天神创意无限公司 2024 +\end{DoxyCopyright} + + +\doxysubsection{Macro Definition Documentation} +\Hypertarget{template_f_s_m_8h_ab0325ef0b5aef6334743cdd7c1d70bd9}\label{template_f_s_m_8h_ab0325ef0b5aef6334743cdd7c1d70bd9} +\index{templateFSM.h@{templateFSM.h}!TemplateFSM\_Input@{TemplateFSM\_Input}} +\index{TemplateFSM\_Input@{TemplateFSM\_Input}!templateFSM.h@{templateFSM.h}} +\doxysubsubsection{\texorpdfstring{TemplateFSM\_Input}{TemplateFSM\_Input}} +{\footnotesize\ttfamily \#define Template\+FSM\+\_\+\+Input(\begin{DoxyParamCaption}\item[{}]{p\+FSM }\end{DoxyParamCaption})~((\mbox{\hyperlink{struct_template_f_s_m_external_data}{Template\+FSMExternal\+Data}} \texorpdfstring{$\ast$}{*})\mbox{\hyperlink{_f_s_m_8c_a9c285ac5bbad90b0b04de18d393cf4ce}{\+\_\+preload\+In}}((FSM \texorpdfstring{$\ast$}{*})p\+FSM))} + +\begin{DoxyRefDesc}{Deprecated} +\item[\mbox{\hyperlink{deprecated__deprecated000018}{Deprecated}}]暂时弃用 \end{DoxyRefDesc} + + +\doxysubsection{Enumeration Type Documentation} +\Hypertarget{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1}\label{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1} +\index{templateFSM.h@{templateFSM.h}!TemplateFSMSignals@{TemplateFSMSignals}} +\index{TemplateFSMSignals@{TemplateFSMSignals}!templateFSM.h@{templateFSM.h}} +\doxysubsubsection{\texorpdfstring{TemplateFSMSignals}{TemplateFSMSignals}} +{\footnotesize\ttfamily enum \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1}{Template\+FSMSignals}}} + + + +自定义外部信号,目前最多15个 + +因为是\+Unint16存储的信号位 \begin{DoxyEnumFields}{Enumerator} +\raisebox{\heightof{T}}[0pt][0pt]{\index{Signal\_A@{Signal\_A}!templateFSM.h@{templateFSM.h}}\index{templateFSM.h@{templateFSM.h}!Signal\_A@{Signal\_A}}}\Hypertarget{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}\label{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee} +Signal\+\_\+A&必须从1开始,0预留给\+Idle信号了 \\ +\hline + +\end{DoxyEnumFields} + + +\doxysubsection{Function Documentation} +\Hypertarget{template_f_s_m_8h_ab0fc4d91dbcaaffccd8f14e56173d696}\label{template_f_s_m_8h_ab0fc4d91dbcaaffccd8f14e56173d696} +\index{templateFSM.h@{templateFSM.h}!createTemplateFSM@{createTemplateFSM}} +\index{createTemplateFSM@{createTemplateFSM}!templateFSM.h@{templateFSM.h}} +\doxysubsubsection{\texorpdfstring{createTemplateFSM()}{createTemplateFSM()}} +{\footnotesize\ttfamily Template\+FSM \texorpdfstring{$\ast$}{*} create\+Template\+FSM (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Create a Template FSM object. + +子类状态机细节对外隐藏,外部只能访问基类的公有函数来操作子类变量 \begin{DoxyReturn}{Returns} +Template\+FSM\texorpdfstring{$\ast$}{*} +\end{DoxyReturn} diff --git a/vscode/manual/latex/template_f_s_m_8h_source.tex b/vscode/manual/latex/template_f_s_m_8h_source.tex index 8c2b643..08a2b77 100644 --- a/vscode/manual/latex/template_f_s_m_8h_source.tex +++ b/vscode/manual/latex/template_f_s_m_8h_source.tex @@ -1,51 +1,51 @@ \doxysection{template\+FSM.\+h} \hypertarget{template_f_s_m_8h_source}{}\label{template_f_s_m_8h_source}\index{FSM\_OOP/template/templateFSM.h@{FSM\_OOP/template/templateFSM.h}} - +\mbox{\hyperlink{template_f_s_m_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} -\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_TEMPLATE\_FSM\_H\_}} -\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_TEMPLATE\_FSM\_H\_}} -\DoxyCodeLine{00003\ } -\DoxyCodeLine{00004\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00005\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 提前做类型声明\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00006\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00007\ } -\DoxyCodeLine{00008\ } -\DoxyCodeLine{00009\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00010\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 自定义数据和信号\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00011\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00016\ \textcolor{keyword}{enum}\ TemplateFSMSignals\{} -\DoxyCodeLine{00017\ \ \ \ \ Signal\_A\ =\ 1,\ } -\DoxyCodeLine{00018\ \ \ \ \ Signal\_B,} -\DoxyCodeLine{00019\ \};} -\DoxyCodeLine{00020\ } -\DoxyCodeLine{00025\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct__template_f_s_m_external_data}{\_templateFSMExternalData}}} -\DoxyCodeLine{00026\ \{} -\DoxyCodeLine{00027\ \ \ \ \ \textcolor{keywordtype}{int}\ arrindex;} -\DoxyCodeLine{00028\ \ \ \ \ \textcolor{keywordtype}{int}\ x;} -\DoxyCodeLine{00029\ \}\mbox{\hyperlink{struct__template_f_s_m_external_data}{TemplateFSMExternalData}};} -\DoxyCodeLine{00030\ } -\DoxyCodeLine{00031\ } -\DoxyCodeLine{00036\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct__template_f_s_m_inner_data}{\_templateFSMInnerData}}} -\DoxyCodeLine{00037\ \{} -\DoxyCodeLine{00038\ \ \ \ \ \textcolor{keywordtype}{int}\ y1;} -\DoxyCodeLine{00039\ \ \ \ \ \textcolor{keywordtype}{int}\ inner1;} -\DoxyCodeLine{00040\ \}\mbox{\hyperlink{struct__template_f_s_m_inner_data}{TemplateFSMInnerData}};} -\DoxyCodeLine{00041\ } -\DoxyCodeLine{00042\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00043\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 下面的改个名字就行了\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00044\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00045\ \textcolor{preprocessor}{\#define\ \ \ \ \ TemplateFSM\_Input(pFSM)\ \ \ \ \ \ \ \ \ \ ((TemplateFSMExternalData\ *)\_preloadIn((FSM\ *)pFSM))}} -\DoxyCodeLine{00046\ } -\DoxyCodeLine{00047\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\_templateFSMData} -\DoxyCodeLine{00048\ \{} -\DoxyCodeLine{00049\ \ \ \ \ \mbox{\hyperlink{struct__template_f_s_m_external_data}{TemplateFSMExternalData}}\ external;} -\DoxyCodeLine{00050\ \ \ \ \ \mbox{\hyperlink{struct__template_f_s_m_inner_data}{TemplateFSMInnerData}}\ internal;} -\DoxyCodeLine{00051\ \}TemplateFSMData;} -\DoxyCodeLine{00052\ } -\DoxyCodeLine{00053\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\_TemplateFSM\ TemplateFSM;} -\DoxyCodeLine{00054\ TemplateFSM\ *createTemplateFSM();} -\DoxyCodeLine{00055\ } -\DoxyCodeLine{00056\ } -\DoxyCodeLine{00057\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{00001\ } +\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#ifndef\ \_\_TEMPLATE\_FSM\_H\_}} +\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#define\ \_\_TEMPLATE\_FSM\_H\_}} +\DoxyCodeLine{00014\ } +\DoxyCodeLine{00015\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00016\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 提前做类型声明\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00017\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00018\ } +\DoxyCodeLine{00019\ } +\DoxyCodeLine{00020\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00021\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 自定义数据和信号\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00022\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00028\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1}{TemplateFSMSignals}}\{} +\DoxyCodeLine{00029\ \ \ \ \ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}{Signal\_A}}\ =\ 1,\ } +\DoxyCodeLine{00030\ \ \ \ \ Signal\_B,} +\DoxyCodeLine{00031\ \};} +\DoxyCodeLine{00032\ } +\DoxyCodeLine{00037\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_template_f_s_m_external_data}{TemplateFSMExternalData}}} +\DoxyCodeLine{00038\ \{} +\DoxyCodeLine{00039\ \ \ \ \ \textcolor{keywordtype}{int}\ arrindex;} +\DoxyCodeLine{00040\ \ \ \ \ \textcolor{keywordtype}{int}\ x;} +\DoxyCodeLine{00041\ \}\mbox{\hyperlink{template_f_s_m_8h_ad30e63631e0a6c61ac9cc9a47e31a5a5}{TemplateFSMExternalData}};} +\DoxyCodeLine{00042\ } +\DoxyCodeLine{00043\ } +\DoxyCodeLine{00048\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct_template_f_s_m_inner_data}{TemplateFSMInnerData}}} +\DoxyCodeLine{00049\ \{} +\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordtype}{int}\ y1;} +\DoxyCodeLine{00051\ \ \ \ \ \textcolor{keywordtype}{int}\ inner1;} +\DoxyCodeLine{00052\ \}\mbox{\hyperlink{template_f_s_m_8h_adfdfb9e9cda040324f0952d1e8b80e05}{TemplateFSMInnerData}};} +\DoxyCodeLine{00053\ } +\DoxyCodeLine{00054\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00055\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 下面的改个名字就行了\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00056\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00057\ \textcolor{preprocessor}{\#define\ \ \ \ \ TemplateFSM\_Input(pFSM)\ \ \ \ \ \ \ \ \ \ ((TemplateFSMExternalData\ *)\_preloadIn((FSM\ *)pFSM))\ }} +\DoxyCodeLine{00059\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }TemplateFSMData} +\DoxyCodeLine{00060\ \{} +\DoxyCodeLine{00061\ \ \ \ \ \mbox{\hyperlink{struct_template_f_s_m_external_data}{TemplateFSMExternalData}}\ external;} +\DoxyCodeLine{00062\ \ \ \ \ \mbox{\hyperlink{struct_template_f_s_m_inner_data}{TemplateFSMInnerData}}\ internal;} +\DoxyCodeLine{00063\ \}TemplateFSMData;} +\DoxyCodeLine{00064\ } +\DoxyCodeLine{00065\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }TemplateFSM\ TemplateFSM;} +\DoxyCodeLine{00066\ TemplateFSM\ *\mbox{\hyperlink{template_f_s_m_8h_ab0fc4d91dbcaaffccd8f14e56173d696}{createTemplateFSM}}();} +\DoxyCodeLine{00067\ } +\DoxyCodeLine{00068\ } +\DoxyCodeLine{00069\ \textcolor{preprocessor}{\#endif}} \end{DoxyCode} diff --git a/vscode/manual/latex/template_f_s_m__private_8h.tex b/vscode/manual/latex/template_f_s_m__private_8h.tex new file mode 100644 index 0000000..2283fe8 --- /dev/null +++ b/vscode/manual/latex/template_f_s_m__private_8h.tex @@ -0,0 +1,79 @@ +\doxysection{FSM\+\_\+\+OOP/template/template\+FSM\+\_\+private.h File Reference} +\hypertarget{template_f_s_m__private_8h}{}\label{template_f_s_m__private_8h}\index{FSM\_OOP/template/templateFSM\_private.h@{FSM\_OOP/template/templateFSM\_private.h}} + + +用来声明状态、状态函数等。这个文件只能被template\+FSM.\+c引用一次! + + +{\ttfamily \#include "{}FSM\+\_\+protected.\+h"{}}\newline +{\ttfamily \#include "{}template\+FSM.\+h"{}}\newline +{\ttfamily \#include $<$stdio.\+h$>$}\newline +\doxysubsubsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \mbox{\hyperlink{template_f_s_m__private_8h_af93d7c80faa6ebd086460cde2d5dd27e}{DEFAULT\+\_\+\+STATE}}~E +\end{DoxyCompactItemize} +\doxysubsubsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +\Hypertarget{template_f_s_m__private_8h_adc4b74d6f88de7c72d2e260e836d267f}\label{template_f_s_m__private_8h_adc4b74d6f88de7c72d2e260e836d267f} +typedef enum \+\_\+\+State {\bfseries State} +\begin{DoxyCompactList}\small\item\em 状态机内状态定义,\+Idle和\+Count\+\_\+\+State必须占据开头和结尾两个位置 \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Enumerations} +\begin{DoxyCompactItemize} +\item +enum \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855b}{\+\_\+\+State}} \{ \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}{Idle}} +, {\bfseries D} +, {\bfseries E} +, \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394}{Count\+\_\+\+State}} + \} +\begin{DoxyCompactList}\small\item\em 状态机内状态定义,\+Idle和\+Count\+\_\+\+State必须占据开头和结尾两个位置 \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +用来声明状态、状态函数等。这个文件只能被template\+FSM.\+c引用一次! + +\begin{DoxyAuthor}{Author} +天神 (\href{mailto:dalaoshi@stu.xjtu.edu.cn}{\texttt{ dalaoshi@stu.\+xjtu.\+edu.\+cn}}) +\end{DoxyAuthor} +\begin{DoxyVersion}{Version} +2.\+1 +\end{DoxyVersion} +\begin{DoxyDate}{Date} +2024-\/05-\/07 +\end{DoxyDate} +\begin{DoxyCopyright}{Copyright} +天神创意无限公司 2024 +\end{DoxyCopyright} + + +\doxysubsection{Macro Definition Documentation} +\Hypertarget{template_f_s_m__private_8h_af93d7c80faa6ebd086460cde2d5dd27e}\label{template_f_s_m__private_8h_af93d7c80faa6ebd086460cde2d5dd27e} +\index{templateFSM\_private.h@{templateFSM\_private.h}!DEFAULT\_STATE@{DEFAULT\_STATE}} +\index{DEFAULT\_STATE@{DEFAULT\_STATE}!templateFSM\_private.h@{templateFSM\_private.h}} +\doxysubsubsection{\texorpdfstring{DEFAULT\_STATE}{DEFAULT\_STATE}} +{\footnotesize\ttfamily \#define DEFAULT\+\_\+\+STATE~E} + +默认状态,\+Idle状态会先跳转到默认状态 + +\doxysubsection{Enumeration Type Documentation} +\Hypertarget{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855b}\label{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855b} +\index{templateFSM\_private.h@{templateFSM\_private.h}!\_State@{\_State}} +\index{\_State@{\_State}!templateFSM\_private.h@{templateFSM\_private.h}} +\doxysubsubsection{\texorpdfstring{\_State}{\_State}} +{\footnotesize\ttfamily enum \+\_\+\+State} + + + +状态机内状态定义,\+Idle和\+Count\+\_\+\+State必须占据开头和结尾两个位置 + +\begin{DoxyEnumFields}{Enumerator} +\raisebox{\heightof{T}}[0pt][0pt]{\index{Idle@{Idle}!templateFSM\_private.h@{templateFSM\_private.h}}\index{templateFSM\_private.h@{templateFSM\_private.h}!Idle@{Idle}}}\Hypertarget{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}\label{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19} +Idle&必须在开头,并且枚举值=0 \\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Count\_State@{Count\_State}!templateFSM\_private.h@{templateFSM\_private.h}}\index{templateFSM\_private.h@{templateFSM\_private.h}!Count\_State@{Count\_State}}}\Hypertarget{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394}\label{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394} +Count\+\_\+\+State&必须在结尾,用来统计状态数量 \\ +\hline + +\end{DoxyEnumFields} diff --git a/vscode/manual/latex/template_f_s_m__private_8h_source.tex b/vscode/manual/latex/template_f_s_m__private_8h_source.tex index 001cda6..6de2b50 100644 --- a/vscode/manual/latex/template_f_s_m__private_8h_source.tex +++ b/vscode/manual/latex/template_f_s_m__private_8h_source.tex @@ -1,149 +1,154 @@ \doxysection{template\+FSM\+\_\+private.\+h} \hypertarget{template_f_s_m__private_8h_source}{}\label{template_f_s_m__private_8h_source}\index{FSM\_OOP/template/templateFSM\_private.h@{FSM\_OOP/template/templateFSM\_private.h}} - +\mbox{\hyperlink{template_f_s_m__private_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} -\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifdef\ \_\_TEMPLATE\_PRIVATE\_FSM\_H\_}} -\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#error\ This\ file\ can\ only\ be\ included\ once!!!}} -\DoxyCodeLine{00003\ } -\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#else}} -\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#define\ \_\_TEMPLATE\_PRIVATE\_FSM\_H\_}} -\DoxyCodeLine{00006\ } -\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_f_s_m__protected_8h}{FSM\_protected.h}}"{}}} -\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ "{}templateFSM.h"{}}} -\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{00010\ } -\DoxyCodeLine{00011\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00012\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 用到的外部变量\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00013\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00014\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{int}\ arrindex;} -\DoxyCodeLine{00015\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{int}\ x;} -\DoxyCodeLine{00016\ } +\DoxyCodeLine{00001\ } +\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#ifdef\ \_\_TEMPLATE\_PRIVATE\_FSM\_H\_}} +\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#error\ This\ file\ can\ only\ be\ included\ once!!!}} +\DoxyCodeLine{00014\ } +\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#else}} +\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#define\ \_\_TEMPLATE\_PRIVATE\_FSM\_H\_}} \DoxyCodeLine{00017\ } -\DoxyCodeLine{00018\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00019\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 继承基类\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00020\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00021\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\_TemplateFSM} -\DoxyCodeLine{00022\ \{\ \ \ } -\DoxyCodeLine{00023\ \ \ \ \ FSM\ base;} -\DoxyCodeLine{00024\ \}TemplateFSM;} -\DoxyCodeLine{00025\ } -\DoxyCodeLine{00026\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00027\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 状态定义\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00028\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00029\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{enum}\ \_State} -\DoxyCodeLine{00030\ \{} -\DoxyCodeLine{00031\ \ \ \ \ Idle,} -\DoxyCodeLine{00032\ \ \ \ \ D,} -\DoxyCodeLine{00033\ \ \ \ \ E,} -\DoxyCodeLine{00034\ } -\DoxyCodeLine{00035\ \ \ \ \ Count\_State,} -\DoxyCodeLine{00036\ \}\ State;} -\DoxyCodeLine{00037\ \textcolor{preprocessor}{\#define\ \ \ \ \ DEFAULT\_STATE\ \ \ \ \ \ \ E}} -\DoxyCodeLine{00038\ } +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_f_s_m__protected_8h}{FSM\_protected.h}}"{}}} +\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{template_f_s_m_8h}{templateFSM.h}}"{}}} +\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00023\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 用到的外部变量\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00024\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00025\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{int}\ arrindex;} +\DoxyCodeLine{00026\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{int}\ x;} +\DoxyCodeLine{00027\ } +\DoxyCodeLine{00028\ } +\DoxyCodeLine{00029\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00030\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 继承基类\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00031\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00032\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }TemplateFSM} +\DoxyCodeLine{00033\ \{\ \ \ } +\DoxyCodeLine{00034\ \ \ \ \ FSM\ base;} +\DoxyCodeLine{00035\ \}TemplateFSM;} +\DoxyCodeLine{00036\ } +\DoxyCodeLine{00037\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00038\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 状态定义\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} \DoxyCodeLine{00039\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00040\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 下一个状态选择函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00041\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00042\ } -\DoxyCodeLine{00043\ } -\DoxyCodeLine{00044\ \textcolor{keyword}{static}\ State\ selectNextStateFcn(D)(TemplateFSMData\ *data,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals)\{} -\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keywordflow}{if}(getSignal(signals,\ Signal\_A))\{} -\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ signals-\/>lastTriggeredSignal\ =\ Signal\_A;} -\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ E;} -\DoxyCodeLine{00048\ \ \ \ \ \}} -\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(arrindex\ ==\ 0)\{} -\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ E;} -\DoxyCodeLine{00051\ \ \ \ \ \}} -\DoxyCodeLine{00052\ \ \ \ \ \textcolor{keywordflow}{return}\ Idle;} -\DoxyCodeLine{00053\ \}} -\DoxyCodeLine{00054\ } -\DoxyCodeLine{00055\ \textcolor{keyword}{static}\ State\ selectNextStateFcn(E)(TemplateFSMData\ *data,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals)\{} -\DoxyCodeLine{00056\ \ \ \ \ \textcolor{keywordflow}{if}(getSignal(signals,\ Signal\_A))\{} -\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ signals-\/>lastTriggeredSignal\ =\ Signal\_A;} -\DoxyCodeLine{00058\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ D;} -\DoxyCodeLine{00059\ \ \ \ \ \}} -\DoxyCodeLine{00060\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(x\ ==\ 0)\{} -\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ D;} -\DoxyCodeLine{00062\ \ \ \ \ \}} -\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keywordflow}{return}\ Idle;} -\DoxyCodeLine{00064\ \}} -\DoxyCodeLine{00065\ } -\DoxyCodeLine{00066\ } -\DoxyCodeLine{00067\ } -\DoxyCodeLine{00068\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00069\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 对应的\ action,\ exit,\ during\ 函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00070\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00071\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(enter,\ D)()} -\DoxyCodeLine{00072\ \{} -\DoxyCodeLine{00073\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ enterD\ "{}});} -\DoxyCodeLine{00074\ \}} -\DoxyCodeLine{00075\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(during,\ D)()} -\DoxyCodeLine{00076\ \{} -\DoxyCodeLine{00077\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ duringD\ "{}});} -\DoxyCodeLine{00078\ \}} -\DoxyCodeLine{00079\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(exit,\ D)()} -\DoxyCodeLine{00080\ \{} -\DoxyCodeLine{00081\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ exitD\ "{}});} -\DoxyCodeLine{00082\ \}} +\DoxyCodeLine{00040\ } +\DoxyCodeLine{00045\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{enum}\ \_State} +\DoxyCodeLine{00046\ \{} +\DoxyCodeLine{00047\ \ \ \ \ \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}{Idle}},\ } +\DoxyCodeLine{00048\ \ \ \ \ D,} +\DoxyCodeLine{00049\ \ \ \ \ E,} +\DoxyCodeLine{00050\ } +\DoxyCodeLine{00051\ \ \ \ \ \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855ba1413c9e060de9405cf1898973fc25394}{Count\_State}},\ } +\DoxyCodeLine{00052\ \}\ \mbox{\hyperlink{template_f_s_m__private_8h_adc4b74d6f88de7c72d2e260e836d267f}{State}};} +\DoxyCodeLine{00053\ \textcolor{preprocessor}{\#define\ \ \ \ \ DEFAULT\_STATE\ \ \ \ \ \ \ E\ }} +\DoxyCodeLine{00055\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00056\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 下一个状态选择函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00057\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00058\ } +\DoxyCodeLine{00059\ } +\DoxyCodeLine{00060\ \textcolor{keyword}{static}\ State\ selectNextStateFcn(D)(TemplateFSMData\ *data,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals)\{} +\DoxyCodeLine{00061\ \ \ \ \ \textcolor{keywordflow}{if}(getSignal(signals,\ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}{Signal\_A}}))\{} +\DoxyCodeLine{00062\ \ \ \ \ \ \ \ \ signals-\/>lastTriggeredSignal\ =\ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}{Signal\_A}};} +\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ E;} +\DoxyCodeLine{00064\ \ \ \ \ \}} +\DoxyCodeLine{00065\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(arrindex\ ==\ 0)\{} +\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ E;} +\DoxyCodeLine{00067\ \ \ \ \ \}} +\DoxyCodeLine{00068\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}{Idle}};} +\DoxyCodeLine{00069\ \}} +\DoxyCodeLine{00070\ } +\DoxyCodeLine{00071\ \textcolor{keyword}{static}\ State\ selectNextStateFcn(E)(TemplateFSMData\ *data,\ \mbox{\hyperlink{struct_f_s_m_signals}{FSMSignals}}\ *signals)\{} +\DoxyCodeLine{00072\ \ \ \ \ \textcolor{keywordflow}{if}(getSignal(signals,\ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}{Signal\_A}}))\{} +\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ signals-\/>lastTriggeredSignal\ =\ \mbox{\hyperlink{template_f_s_m_8h_a62dbe2e9cfc18e5dc1229d428d794aa1acfabc94ee46cf07698eaa479452c78ee}{Signal\_A}};} +\DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ D;} +\DoxyCodeLine{00075\ \ \ \ \ \}} +\DoxyCodeLine{00076\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(x\ ==\ 0)\{} +\DoxyCodeLine{00077\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ D;} +\DoxyCodeLine{00078\ \ \ \ \ \}} +\DoxyCodeLine{00079\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}{Idle}};} +\DoxyCodeLine{00080\ \}} +\DoxyCodeLine{00081\ } +\DoxyCodeLine{00082\ } \DoxyCodeLine{00083\ } -\DoxyCodeLine{00084\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(enter,\ E)()} -\DoxyCodeLine{00085\ \{} -\DoxyCodeLine{00086\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ enterE\ "{}});} -\DoxyCodeLine{00087\ \}} -\DoxyCodeLine{00088\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(during,\ E)()} -\DoxyCodeLine{00089\ \{} -\DoxyCodeLine{00090\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ duringE\ "{}});} -\DoxyCodeLine{00091\ \}} -\DoxyCodeLine{00092\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(exit,\ E)()} -\DoxyCodeLine{00093\ \{} -\DoxyCodeLine{00094\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ exitE\ "{}});} -\DoxyCodeLine{00095\ \}} -\DoxyCodeLine{00096\ } -\DoxyCodeLine{00097\ } -\DoxyCodeLine{00098\ } -\DoxyCodeLine{00099\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00100\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 转移函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00101\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00102\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionGeneralAction(TemplateFSMData\ *data)\{} -\DoxyCodeLine{00103\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}general"{}});} -\DoxyCodeLine{00104\ \}} -\DoxyCodeLine{00105\ } -\DoxyCodeLine{00106\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(Idle,\ D)()} -\DoxyCodeLine{00107\ \{} -\DoxyCodeLine{00108\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ Idle2D\ "{}});} -\DoxyCodeLine{00109\ \}} -\DoxyCodeLine{00110\ } -\DoxyCodeLine{00111\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(Idle,\ E)()} -\DoxyCodeLine{00112\ \{} -\DoxyCodeLine{00113\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ Idle2E\ "{}});} -\DoxyCodeLine{00114\ \}} -\DoxyCodeLine{00115\ } -\DoxyCodeLine{00116\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(D,\ E)(TemplateFSMData\ *data,\ \textcolor{keywordtype}{int}\ *delayedIndex)} -\DoxyCodeLine{00117\ \{} -\DoxyCodeLine{00118\ \ \ \ \ *delayedIndex\ =\ index(D,\ E);} -\DoxyCodeLine{00119\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ D2E\ "{}});} +\DoxyCodeLine{00084\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00085\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 对应的\ action,\ exit,\ during\ 函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00086\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00087\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(enter,\ D)()} +\DoxyCodeLine{00088\ \{} +\DoxyCodeLine{00089\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ enterD\ "{}});} +\DoxyCodeLine{00090\ \}} +\DoxyCodeLine{00091\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(during,\ D)()} +\DoxyCodeLine{00092\ \{} +\DoxyCodeLine{00093\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ duringD\ "{}});} +\DoxyCodeLine{00094\ \}} +\DoxyCodeLine{00095\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(exit,\ D)()} +\DoxyCodeLine{00096\ \{} +\DoxyCodeLine{00097\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ exitD\ "{}});} +\DoxyCodeLine{00098\ \}} +\DoxyCodeLine{00099\ } +\DoxyCodeLine{00100\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(enter,\ E)()} +\DoxyCodeLine{00101\ \{} +\DoxyCodeLine{00102\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ enterE\ "{}});} +\DoxyCodeLine{00103\ \}} +\DoxyCodeLine{00104\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(during,\ E)()} +\DoxyCodeLine{00105\ \{} +\DoxyCodeLine{00106\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ duringE\ "{}});} +\DoxyCodeLine{00107\ \}} +\DoxyCodeLine{00108\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ actionFcn(exit,\ E)()} +\DoxyCodeLine{00109\ \{} +\DoxyCodeLine{00110\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ exitE\ "{}});} +\DoxyCodeLine{00111\ \}} +\DoxyCodeLine{00112\ } +\DoxyCodeLine{00113\ } +\DoxyCodeLine{00114\ } +\DoxyCodeLine{00115\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00116\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 转移函数\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00117\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00118\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionGeneralAction(FSM\ pFSM)\{} +\DoxyCodeLine{00119\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}general"{}});} \DoxyCodeLine{00120\ \}} \DoxyCodeLine{00121\ } -\DoxyCodeLine{00122\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(E,\ D)()} -\DoxyCodeLine{00123\ \{} -\DoxyCodeLine{00124\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ E2D\ "{}});} -\DoxyCodeLine{00125\ \}} -\DoxyCodeLine{00126\ } -\DoxyCodeLine{00127\ } -\DoxyCodeLine{00128\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00129\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 打印调试\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} -\DoxyCodeLine{00130\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} -\DoxyCodeLine{00131\ \textcolor{keyword}{const}\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{char}\ *stateStr[]\ =\ \{} -\DoxyCodeLine{00132\ \ \ \ \ \textcolor{stringliteral}{"{}Idle"{}},} -\DoxyCodeLine{00133\ \ \ \ \ \textcolor{stringliteral}{"{}D"{}},} -\DoxyCodeLine{00134\ \ \ \ \ \textcolor{stringliteral}{"{}E"{}},} -\DoxyCodeLine{00135\ \};} -\DoxyCodeLine{00136\ } -\DoxyCodeLine{00137\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ printFSM(TemplateFSM*\ pFSM)\{} -\DoxyCodeLine{00138\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ \(\backslash\)tTemplateFSM:\ "{}});} -\DoxyCodeLine{00139\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}预装载器溢出:\%d,\ 当前状态:\%s,\ 动作:"{}},\ \_getPreloaderOverFlag((FSM\ *)pFSM),\ stateStr[getFSMCurState((FSM\ *)pFSM)]);} +\DoxyCodeLine{00122\ \textcolor{comment}{//\ static\ void\ transitionGeneralAction(TemplateFSMData\ *data)\{}} +\DoxyCodeLine{00123\ \textcolor{comment}{//\ \ \ \ \ FSM\_LOG("{}general"{});}} +\DoxyCodeLine{00124\ \textcolor{comment}{//\ \}}} +\DoxyCodeLine{00125\ } +\DoxyCodeLine{00126\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(\mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}{Idle}},\ D)()} +\DoxyCodeLine{00127\ \{} +\DoxyCodeLine{00128\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ Idle2D\ "{}});} +\DoxyCodeLine{00129\ \}} +\DoxyCodeLine{00130\ } +\DoxyCodeLine{00131\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(\mbox{\hyperlink{template_f_s_m__private_8h_af5addeb46f2b4f7f88a4de82fbf5855bad3fa9ae9431d6cb1772f9d9df48cab19}{Idle}},\ E)()} +\DoxyCodeLine{00132\ \{} +\DoxyCodeLine{00133\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ Idle2E\ "{}});} +\DoxyCodeLine{00134\ \}} +\DoxyCodeLine{00135\ } +\DoxyCodeLine{00136\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(D,\ E)(TemplateFSMData\ *data,\ \textcolor{keywordtype}{int}\ *delayedIndex)} +\DoxyCodeLine{00137\ \{} +\DoxyCodeLine{00138\ \ \ \ \ *delayedIndex\ =\ index(D,\ E);} +\DoxyCodeLine{00139\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ D2E\ "{}});} \DoxyCodeLine{00140\ \}} \DoxyCodeLine{00141\ } -\DoxyCodeLine{00142\ } -\DoxyCodeLine{00143\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{00142\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ transitionHandler(E,\ D)()} +\DoxyCodeLine{00143\ \{} +\DoxyCodeLine{00144\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ E2D\ "{}});} +\DoxyCodeLine{00145\ \}} +\DoxyCodeLine{00146\ } +\DoxyCodeLine{00147\ } +\DoxyCodeLine{00148\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00149\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 打印调试\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}} +\DoxyCodeLine{00150\ \textcolor{comment}{/*\ -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ */}} +\DoxyCodeLine{00151\ \textcolor{keyword}{const}\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{char}\ *stateStr[]\ =\ \{} +\DoxyCodeLine{00152\ \ \ \ \ \textcolor{stringliteral}{"{}Idle"{}},} +\DoxyCodeLine{00153\ \ \ \ \ \textcolor{stringliteral}{"{}D"{}},} +\DoxyCodeLine{00154\ \ \ \ \ \textcolor{stringliteral}{"{}E"{}},} +\DoxyCodeLine{00155\ \};} +\DoxyCodeLine{00156\ } +\DoxyCodeLine{00157\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ printFSM(TemplateFSM*\ pFSM)\{} +\DoxyCodeLine{00158\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}\ \(\backslash\)tTemplateFSM:\ "{}});} +\DoxyCodeLine{00159\ \ \ \ \ FSM\_LOG(\textcolor{stringliteral}{"{}预装载器溢出:\%d,\ 当前状态:\%s,\ 动作:"{}},\ \mbox{\hyperlink{_f_s_m_8c_a704103961964dbb8582b59fd161a3348}{\_getPreloaderOverFlag}}((FSM\ *)pFSM),\ stateStr[getFSMCurState((FSM\ *)pFSM)]);} +\DoxyCodeLine{00160\ \}} +\DoxyCodeLine{00161\ } +\DoxyCodeLine{00162\ } +\DoxyCodeLine{00163\ \textcolor{preprocessor}{\#endif}} \end{DoxyCode} diff --git a/vscode/manual/rtf/refman.rtf b/vscode/manual/rtf/refman.rtf index acb4ec7..4a5d8f1 100644 --- a/vscode/manual/rtf/refman.rtf +++ b/vscode/manual/rtf/refman.rtf @@ -137,34 +137,118 @@ Version 0.1alpha\par\page\page\vertalt Deprecated List\par \pard\plain {\tc\tcl1 \v Deprecated List} {\xe \v Deprecated List} -{\bkmkstart AAAAAAAAAV} -{\bkmkend AAAAAAAAAV} +{\bkmkstart AAAAAAAACK} +{\bkmkend AAAAAAAACK} { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b _clearPreloaderOverFlag} (FSM *pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACL} +{\bkmkend AAAAAAAACL} +\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b _getPreloaderOverFlag} (FSM *pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACM} +{\bkmkend AAAAAAAACM} +\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b _preloaderGetReady} (FSM *pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACN} +{\bkmkend AAAAAAAACN} +\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b _preloadIn} (FSM *pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACO} +{\bkmkend AAAAAAAACO} +\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b ClearPreloaderOverFlag} (pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACP} +{\bkmkend AAAAAAAACP} + \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Global {\b FSMDataLoader} \par } -{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAAAW} -{\bkmkend AAAAAAAAAW} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACQ} +{\bkmkend AAAAAAAACQ} \'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E5\'BC\'83\'E7\'94\'A8 \par} {\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b FSMHandler::childFSMStepTable} )(FSM **cFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACR} +{\bkmkend AAAAAAAACR} +\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b FSMPrivateVars::childFSM} \par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACS} +{\bkmkend AAAAAAAACS} +\'E5\'92\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9B\'B8\'E5\'85\'B3\'E7\'9A\'84\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b FSMPrivateVars::numChild} \par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACT} +{\bkmkend AAAAAAAACT} +\'E5\'92\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9B\'B8\'E5\'85\'B3\'E7\'9A\'84\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Global {\b FSMPrivateVars::preloader} \par } -{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAAAX} -{\bkmkend AAAAAAAAAX} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACU} +{\bkmkend AAAAAAAACU} \'E5\'BC\'83\'E7\'94\'A8 \par} {\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Global {\b FSMPureVtbl::initDataLoader} )(FSM *pFSM)\par } -{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAAAY} -{\bkmkend AAAAAAAAAY} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACV} +{\bkmkend AAAAAAAACV} \'E5\'92\'8C\'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E7\'9B\'B8\'E5\'85\'B3 \par} {\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Global {\b FSMPureVtbl::loadExternalData} )(void *extData)\par } -{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAAAZ} -{\bkmkend AAAAAAAAAZ} -\'E6\'9A\'82\'E6\'97\'B6\'E6\'B2\'A1\'E7\'94\'A8\'EF\'BC\'8C\'E5\'90\'8E\'E7\'BB\'AD\'E5\'8F\'AF\'E8\'83\'BD\'E8\'80\'83\'E8\'99\'91\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE\'E6\'98\'AF\'E5\'90\'A6\'E5\'85\'81\'E8\'AE\'B8\'E9\'9A\'8F\'E6\'97\'B6\'E4\'BF\'AE\'E6\'94\'B9 \par} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACW} +{\bkmkend AAAAAAAACW} +\'E6\'9A\'82\'E6\'97\'B6\'E6\'B2\'A1\'E7\'94\'A8\'EF\'BC\'8C\'E5\'90\'8E\'E7\'BB\'AD\'E5\'8F\'AF\'E8\'83\'BD\'E8\'80\'83\'E8\'99\'91\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE\'E6\'98\'AF\'E5\'90\'A6\'E5\'85\'81\'E8\'AE\'B8\'E9\'9A\'8F\'E6\'97\'B6\'E4\'BF\'AE\'E6\'94\'B9 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b GetPreloaderOverFlag} (pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACX} +{\bkmkend AAAAAAAACX} + \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b initDataLoader} (TemplateFSM *pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACY} +{\bkmkend AAAAAAAACY} +\'E5\'BC\'83\'E7\'94\'A8 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b loadExternalData} (TemplateFSMData *data)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAACZ} +{\bkmkend AAAAAAAACZ} +\'E6\'9A\'82\'E6\'97\'B6\'E6\'B2\'A1\'E7\'94\'A8\'EF\'BC\'8C\'E5\'90\'8E\'E7\'BB\'AD\'E8\'80\'83\'E8\'99\'91data\'E6\'98\'AF\'E5\'90\'A6\'E9\'9C\'80\'E8\'A6\'81\'E5\'8A\'A0\'E9\'94\'81\'E5\'86\'8D\'E8\'AF\'B4 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b preload} (FSM *pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAADA} +{\bkmkend AAAAAAAADA} +\'E5\'8E\'BB\'E6\'8E\'89\'E4\'BA\'86\'E6\'89\'80\'E6\'9C\'89\'E5\'92\'8C\'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E7\'9B\'B8\'E5\'85\'B3\'E7\'9A\'84\'E5\'86\'85\'E5\'AE\'B9 \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b PreloaderGetReady} (pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAADB} +{\bkmkend AAAAAAAADB} + \par} +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Global {\b TemplateFSM_Input} (pFSM)\par +} +{\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\bkmkstart AAAAAAAADC} +{\bkmkend AAAAAAAADC} +\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par} }} \pard\plain \sect\sbkpage @@ -178,25 +262,25 @@ Data Structures\par \pard\plain { \par \pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid -{\b {\b _templateFSMExternalData} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABA \\*MERGEFORMAT}{\fldrslt pagenum}} -\par -{\b {\b _templateFSMInnerData} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABB \\*MERGEFORMAT}{\fldrslt pagenum}} -\par -{\b {\b FSMDataLoader} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABC \\*MERGEFORMAT}{\fldrslt pagenum}} +{\b {\b FSMDataLoader} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADD \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b FSMHandler} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E7\'8A\'B6\'E6\'80\'81\'E5\'A4\'84\'E7\'90\'86\'E5\'87\'BD\'E6\'95\'B0\'E9\'9B\'86\'E5\'90\'88\'EF\'BC\'8C\'E5\'85\'A8\'E9\'83\'A8\'E9\'9C\'80\'E8\'A6\'81\'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'A1\'AB\'E5\'85\'85\'E5\'86\'85\'E5\'AE\'B9 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABD \\*MERGEFORMAT}{\fldrslt pagenum}} +\'E7\'8A\'B6\'E6\'80\'81\'E5\'A4\'84\'E7\'90\'86\'E5\'87\'BD\'E6\'95\'B0\'E9\'9B\'86\'E5\'90\'88\'EF\'BC\'8C\'E5\'85\'A8\'E9\'83\'A8\'E9\'9C\'80\'E8\'A6\'81\'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'A1\'AB\'E5\'85\'85\'E5\'86\'85\'E5\'AE\'B9 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADE \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b FSMPrivateVars} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9A\'84\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'E5\'92\'8C\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'8D\'E5\'8F\'AF\'E7\'9B\'B4\'E6\'8E\'A5\'E8\'AE\'BF\'E9\'97\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABF \\*MERGEFORMAT}{\fldrslt pagenum}} +\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9A\'84\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'E5\'92\'8C\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'8D\'E5\'8F\'AF\'E7\'9B\'B4\'E6\'8E\'A5\'E8\'AE\'BF\'E9\'97\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADM \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b FSMPureVtbl} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E7\'BA\'AF\'E8\'99\'9A\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E5\'BF\'85\'E9\'A1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'EF\'BC\'8C\'E7\'88\'B6\'E7\'B1\'BB\'E6\'9E\'84\'E9\'80\'A0\'E5\'87\'BD\'E6\'95\'B0\'E4\'B8\'8D\'E4\'BC\'9A\'E5\'88\'9D\'E5\'A7\'8B\'E5\'8C\'96 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABK \\*MERGEFORMAT}{\fldrslt pagenum}} +\'E7\'BA\'AF\'E8\'99\'9A\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E5\'BF\'85\'E9\'A1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'EF\'BC\'8C\'E7\'88\'B6\'E7\'B1\'BB\'E6\'9E\'84\'E9\'80\'A0\'E5\'87\'BD\'E6\'95\'B0\'E4\'B8\'8D\'E4\'BC\'9A\'E5\'88\'9D\'E5\'A7\'8B\'E5\'8C\'96 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADW \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b FSMSignals} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABR \\*MERGEFORMAT}{\fldrslt pagenum}} +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAED \\*MERGEFORMAT}{\fldrslt pagenum}} +\par +{\b {\b TemplateFSMExternalData} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEG \\*MERGEFORMAT}{\fldrslt pagenum}} +\par +{\b {\b TemplateFSMInnerData} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEH \\*MERGEFORMAT}{\fldrslt pagenum}} \par \par} \pard\plain \sect\sbkpage @@ -210,13 +294,15 @@ File List\par \pard\plain { \par \pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid +{\b FSM_OOP/baseFSM/{\b FSM.c} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAK \\*MERGEFORMAT}{\fldrslt pagenum}} +\par {\b FSM_OOP/baseFSM/{\b FSM_private.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E7\'9A\'84\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'8F\'AA\'E8\'83\'BD\'E5\'9C\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E5\'86\'85\'E4\'BD\'BF\'E7\'94\'A8\'E3\'80\'82 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAK \\*MERGEFORMAT}{\fldrslt pagenum}} +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E7\'9A\'84\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'8F\'AA\'E8\'83\'BD\'E5\'9C\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E5\'86\'85\'E4\'BD\'BF\'E7\'94\'A8\'E3\'80\'82 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAS \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b FSM_OOP/baseFSM/{\b FSM_protected.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E7\'9A\'84protected\'E5\'87\'BD\'E6\'95\'B0\'E5\'92\'8C\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'9C\'A8\'E7\'BB\'A7\'E6\'89\'BF\'E7\'9A\'84\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E5\'8F\'AF\'E4\'BD\'BF\'E7\'94\'A8\'EF\'BC\'8C\'E5\'9C\'A8\'E5\'A4\'96\'E7\'95\'8C\'E4\'B8\'8D\'E5\'8F\'AF\'E4\'BD\'BF\'E7\'94\'A8 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAP \\*MERGEFORMAT}{\fldrslt pagenum}} +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E7\'9A\'84protected\'E5\'87\'BD\'E6\'95\'B0\'E5\'92\'8C\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'9C\'A8\'E7\'BB\'A7\'E6\'89\'BF\'E7\'9A\'84\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E5\'8F\'AF\'E4\'BD\'BF\'E7\'94\'A8\'EF\'BC\'8C\'E5\'9C\'A8\'E5\'A4\'96\'E7\'95\'8C\'E4\'B8\'8D\'E5\'8F\'AF\'E4\'BD\'BF\'E7\'94\'A8 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAY \\*MERGEFORMAT}{\fldrslt pagenum}} \par -{\b FSM_OOP/baseFSM/{\b FSM_public.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAC \\*MERGEFORMAT}{\fldrslt pagenum}} +{\b FSM_OOP/baseFSM/{\b FSM_public.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABE \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b FSM_OOP/childtest/{\b childFSM.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAD \\*MERGEFORMAT}{\fldrslt pagenum}} \par @@ -228,9 +314,14 @@ File List\par \pard\plain \par {\b FSM_OOP/keytest/{\b keyFSM_private.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAH \\*MERGEFORMAT}{\fldrslt pagenum}} \par -{\b FSM_OOP/template/{\b templateFSM.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAI \\*MERGEFORMAT}{\fldrslt pagenum}} +{\b FSM_OOP/template/{\b templateFSM.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'87\'A0\'E4\'B8\'AA\'E5\'BF\'85\'E9\'A1\'BB\'E5\'AE\'9E\'E7\'8E\'B0\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'B9\'B6\'E8\'B5\'8B\'E5\'80\'BC\'E5\'88\'B0\'E7\'88\'B6\'E7\'B1\'BB\'E6\'8C\'87\'E9\'92\'88\'E9\'87\'8C })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABP \\*MERGEFORMAT}{\fldrslt pagenum}} \par -{\b FSM_OOP/template/{\b templateFSM_private.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAJ \\*MERGEFORMAT}{\fldrslt pagenum}} +{\b FSM_OOP/template/{\b templateFSM.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'AF\'B9\'E5\'A4\'96\'E6\'9A\'B4\'E9\'9C\'B2\'E6\'8E\'A5\'E5\'8F\'A3\'EF\'BC\'8C\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BE\'E7\'BD\'AE\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABX \\*MERGEFORMAT}{\fldrslt pagenum}} +\par +{\b FSM_OOP/template/{\b templateFSM_private.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'94\'A8\'E6\'9D\'A5\'E5\'A3\'B0\'E6\'98\'8E\'E7\'8A\'B6\'E6\'80\'81\'E3\'80\'81\'E7\'8A\'B6\'E6\'80\'81\'E5\'87\'BD\'E6\'95\'B0\'E7\'AD\'89\'E3\'80\'82\'E8\'BF\'99\'E4\'B8\'AA\'E6\'96\'87\'E4\'BB\'B6\'E5\'8F\'AA\'E8\'83\'BD\'E8\'A2\'ABtemplateFSM.c\'E5\'BC\'95\'E7\'94\'A8\'E4\'B8\'80\'E6\'AC\'A1\'EF\'BC\'81 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACE \\*MERGEFORMAT}{\fldrslt pagenum}} \par \par} \pard\plain \sect\sbkpage @@ -238,59 +329,11 @@ File List\par \pard\plain Data Structure Documentation{\tc \v Data Structure Documentation} \par \pard\plain \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid -_templateFSMExternalData Struct Reference\par \pard\plain -{\tc\tcl2 \v _templateFSMExternalData} -{\xe \v _templateFSMExternalData} -{\bkmkstart AAAAAAAABA} -{\bkmkend AAAAAAAABA} -\par -{ -{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par -{ -{\f2 #include }}\par -{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} -\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid -Detailed Description\par -\pard\plain -{ -\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE \par -}} -\par \pard\plain - -\pard\plain \sect\sbkpage -\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid -\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid -_templateFSMInnerData Struct Reference\par \pard\plain -{\tc\tcl2 \v _templateFSMInnerData} -{\xe \v _templateFSMInnerData} -{\bkmkstart AAAAAAAABB} -{\bkmkend AAAAAAAABB} -\par -{ -{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par -{ -{\f2 #include }}\par -{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} -\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid -Detailed Description\par -\pard\plain -{ -\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE \par -}} -\par \pard\plain - -\pard\plain \sect\sbkpage -\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid -\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid FSMDataLoader Struct Reference\par \pard\plain {\tc\tcl2 \v FSMDataLoader} {\xe \v FSMDataLoader} -{\bkmkstart AAAAAAAABC} -{\bkmkend AAAAAAAABC} +{\bkmkstart AAAAAAAADD} +{\bkmkend AAAAAAAADD} \par { {\f2 #include }}\par @@ -313,8 +356,8 @@ Deprecated:\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \'E9 FSMHandler Struct Reference\par \pard\plain {\tc\tcl2 \v FSMHandler} {\xe \v FSMHandler} -{\bkmkstart AAAAAAAABD} -{\bkmkend AAAAAAAABD} +{\bkmkstart AAAAAAAADE} +{\bkmkend AAAAAAAADE} \par { {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -328,6 +371,18 @@ Data Fields\par { \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid int(** {\b selectNextState} )(void *data, {\b FSMSignals} *signals)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void(** {\b transitionTable} )(void *data)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void(* {\b transitionGeneralAction} )(void *data)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void(** {\b enterActionTable} )(void *data, FSM **cFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void(** {\b duringActionTable} )(void *data, FSM **cFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void(** {\b exitActionTable} )(void *data, FSM **cFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void(** {\b childFSMStepTable} )(FSM **cFSM)\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid @@ -339,7 +394,7 @@ Detailed Description\par } {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'BF\'99\'E4\'B8\'AA\'E7\'BB\'93\'E6\'9E\'84\'E4\'BD\'93\'E6\'9A\'B4\'E9\'9C\'B2\'E7\'BB\'99protect\'E6\'96\'87\'E4\'BB\'B6\'EF\'BC\'8C\'E6\'96\'B9\'E4\'BE\'BF\'E5\'9C\'A8\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'82\'E4\'B8\'8D\'E7\'84\'B6\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E5\'BE\'97\'E5\'86\'8D\'E5\'86\'99\'E4\'B8\'AA\'E5\'87\'BD\'E6\'95\'B0\'E6\'B7\'BB\'E5\'8A\'A0\'EF\'BC\'8C \'E6\'9C\'89\'E7\'82\'B9\'E9\'BA\'BB\'E7\'83\'A6 \par +\'E8\'BF\'99\'E4\'B8\'AA\'E7\'BB\'93\'E6\'9E\'84\'E4\'BD\'93\'E6\'98\'AF\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'92\'8C\'E5\'A4\'96\'E7\'95\'8C\'E9\'83\'BD\'E4\'B8\'8D\'E8\'AF\'A5\'E8\'AE\'BF\'E9\'97\'AE\'E3\'80\'82\'E4\'BD\'86\'E6\'98\'AF\'E5\'86\'99\'E5\'9C\'A8FSM_protect.h\'E6\'96\'87\'E4\'BB\'B6\'EF\'BC\'8C\'E8\'BF\'99\'E6\'A0\'B7\'E6\'96\'B9\'E4\'BE\'BF\'E5\'9C\'A8\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'82\'E4\'B8\'8D\'E7\'84\'B6\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E5\'BE\'97\'E5\'86\'8D\'E5\'86\'99\'E4\'B8\'AA\'E5\'87\'BD\'E6\'95\'B0\'E6\'B7\'BB\'E5\'8A\'A0\'EF\'BC\'8C \'E6\'9C\'89\'E7\'82\'B9\'E9\'BA\'BB\'E7\'83\'A6 \par }} {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid @@ -351,13 +406,94 @@ Field Documentation\par {\b int(** FSMHandler::selectNextState) (void *data, {\b FSMSignals} *signals)}} \par -{\bkmkstart AAAAAAAABE} -{\bkmkend AAAAAAAABE} +{\bkmkstart AAAAAAAADF} +{\bkmkend AAAAAAAADF} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E6\'AF\'8F\'E4\'B8\'AA\'E7\'8A\'B6\'E6\'80\'81\'E9\'85\'8D\'E7\'BD\'AE\'E7\'9A\'84\'E7\'8A\'B6\'E6\'80\'81\'E9\'80\'89\'E6\'8B\'A9\'E5\'87\'BD\'E6\'95\'B0 \par }} +{\xe \v transitionTable\:FSMHandler} +{\xe \v FSMHandler\:transitionTable} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void(** FSMHandler::transitionTable) (void *data)}} +\par +{\bkmkstart AAAAAAAADG} +{\bkmkend AAAAAAAADG} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0\'E8\'A1\'A8 \par +}} +{\xe \v transitionGeneralAction\:FSMHandler} +{\xe \v FSMHandler\:transitionGeneralAction} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void(* FSMHandler::transitionGeneralAction) (void *data)}} +\par +{\bkmkstart AAAAAAAADH} +{\bkmkend AAAAAAAADH} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'80\'9A\'E7\'94\'A8\'E7\'8A\'B6\'E6\'80\'81\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E4\'B8\'8D\'E8\'AE\'BA\'E6\'9C\'89\'E6\'B2\'A1\'E6\'9C\'89\'E7\'8B\'AC\'E7\'AB\'8B\'E7\'9A\'84\'E7\'8A\'B6\'E6\'80\'81\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0\'E9\'83\'BD\'E4\'BC\'9A\'E6\'89\'A7\'E8\'A1\'8C \par +}} +{\xe \v enterActionTable\:FSMHandler} +{\xe \v FSMHandler\:enterActionTable} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void(** FSMHandler::enterActionTable) (void *data, FSM **cFSM)}} +\par +{\bkmkstart AAAAAAAADI} +{\bkmkend AAAAAAAADI} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'BF\'9B\'E5\'85\'A5\'E7\'8A\'B6\'E6\'80\'81\'E6\'97\'B6\'E8\'BF\'90\'E8\'A1\'8C\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'92\'8Cplecs\'E5\'AF\'B9\'E6\'A0\'87 \par +}} +{\xe \v duringActionTable\:FSMHandler} +{\xe \v FSMHandler\:duringActionTable} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void(** FSMHandler::duringActionTable) (void *data, FSM **cFSM)}} +\par +{\bkmkstart AAAAAAAADJ} +{\bkmkend AAAAAAAADJ} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E4\'B8\'8D\'E5\'8F\'98\'E6\'97\'B6\'E8\'BF\'90\'E8\'A1\'8C\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'92\'8Cplecs\'E5\'AF\'B9\'E6\'A0\'87 \par +}} +{\xe \v exitActionTable\:FSMHandler} +{\xe \v FSMHandler\:exitActionTable} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void(** FSMHandler::exitActionTable) (void *data, FSM **cFSM)}} +\par +{\bkmkstart AAAAAAAADK} +{\bkmkend AAAAAAAADK} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E9\'80\'80\'E5\'87\'BA\'E6\'97\'B6\'E8\'BF\'90\'E8\'A1\'8C\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'92\'8Cplecs\'E5\'AF\'B9\'E6\'A0\'87 \par +}} +{\xe \v childFSMStepTable\:FSMHandler} +{\xe \v FSMHandler\:childFSMStepTable} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void(** FSMHandler::childFSMStepTable) (FSM **cFSM)}} +\par +{\bkmkstart AAAAAAAADL} +{\bkmkend AAAAAAAADL} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par +} +}} \par \pard\plain \pard\plain \sect\sbkpage @@ -366,8 +502,8 @@ int(** FSMHandler::selectNextState) (void *data, {\b FSMSignals} *signals)}} FSMPrivateVars Struct Reference\par \pard\plain {\tc\tcl2 \v FSMPrivateVars} {\xe \v FSMPrivateVars} -{\bkmkstart AAAAAAAABF} -{\bkmkend AAAAAAAABF} +{\bkmkstart AAAAAAAADM} +{\bkmkend AAAAAAAADM} \par { {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -380,12 +516,22 @@ Data Fields\par { \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +int {\b numState}\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid int {\b defaultState}\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +int {\b curState}\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid int {\b nextState}\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid int {\b index}\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +{\b FSMHandler} {\b fcns}\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +int {\b numChild}\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +FSM ** {\b childFSM}\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid {\b FSMDataLoader} {\b preloader}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} @@ -400,27 +546,53 @@ Detailed Description\par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Field Documentation\par \pard\plain +{\xe \v numState\:FSMPrivateVars} +{\xe \v FSMPrivateVars\:numState} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +int FSMPrivateVars::numState}} +\par +{\bkmkstart AAAAAAAADN} +{\bkmkend AAAAAAAADN} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E6\'95\'B0\'E9\'87\'8F \par +}} {\xe \v defaultState\:FSMPrivateVars} {\xe \v FSMPrivateVars\:defaultState} \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { {\b int FSMPrivateVars::defaultState}} \par -{\bkmkstart AAAAAAAABG} -{\bkmkend AAAAAAAABG} +{\bkmkstart AAAAAAAADO} +{\bkmkend AAAAAAAADO} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid Idle\'E7\'8A\'B6\'E6\'80\'81\'E4\'B8\'8D\'E8\'83\'BD\'E5\'81\'9C\'E7\'95\'99\'EF\'BC\'8C\'E5\'BF\'85\'E9\'A1\'BB\'E6\'8C\'87\'E5\'AE\'9A\'E4\'B8\'80\'E4\'B8\'AA\'E5\'88\'9D\'E5\'A7\'8B\'E7\'8A\'B6\'E6\'80\'81 \par }} +{\xe \v curState\:FSMPrivateVars} +{\xe \v FSMPrivateVars\:curState} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +int FSMPrivateVars::curState}} +\par +{\bkmkstart AAAAAAAADP} +{\bkmkend AAAAAAAADP} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'BD\'93\'E5\'89\'8D\'E7\'8A\'B6\'E6\'80\'81 \par +}} {\xe \v nextState\:FSMPrivateVars} {\xe \v FSMPrivateVars\:nextState} \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { {\b int FSMPrivateVars::nextState}} \par -{\bkmkstart AAAAAAAABH} -{\bkmkend AAAAAAAABH} +{\bkmkstart AAAAAAAADQ} +{\bkmkend AAAAAAAADQ} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -432,21 +604,66 @@ nextState\'E4\'B8\'BAIdle\'E4\'BB\'A3\'E8\'A1\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9 {\b int FSMPrivateVars::index}} \par -{\bkmkstart AAAAAAAABI} -{\bkmkend AAAAAAAABI} +{\bkmkstart AAAAAAAADR} +{\bkmkend AAAAAAAADR} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E7\'8A\'B6\'E6\'80\'81\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0\'E8\'A1\'A8\'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84\'E6\'A0\'87\'E5\'8F\'B7 \par }} +{\xe \v fcns\:FSMPrivateVars} +{\xe \v FSMPrivateVars\:fcns} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +{\b FSMHandler} FSMPrivateVars::fcns}} +\par +{\bkmkstart AAAAAAAADS} +{\bkmkend AAAAAAAADS} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E5\'87\'BD\'E6\'95\'B0\'E8\'A1\'A8 \par +}} +{\xe \v numChild\:FSMPrivateVars} +{\xe \v FSMPrivateVars\:numChild} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +int FSMPrivateVars::numChild}} +\par +{\bkmkstart AAAAAAAADT} +{\bkmkend AAAAAAAADT} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'92\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9B\'B8\'E5\'85\'B3\'E7\'9A\'84\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par +} +}} +{\xe \v childFSM\:FSMPrivateVars} +{\xe \v FSMPrivateVars\:childFSM} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +FSM** FSMPrivateVars::childFSM}} +\par +{\bkmkstart AAAAAAAADU} +{\bkmkend AAAAAAAADU} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'92\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9B\'B8\'E5\'85\'B3\'E7\'9A\'84\'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par +} +}} {\xe \v preloader\:FSMPrivateVars} {\xe \v FSMPrivateVars\:preloader} \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { {\b {\b FSMDataLoader} FSMPrivateVars::preloader}} \par -{\bkmkstart AAAAAAAABJ} -{\bkmkend AAAAAAAABJ} +{\bkmkstart AAAAAAAADV} +{\bkmkend AAAAAAAADV} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -463,8 +680,8 @@ Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5 FSMPureVtbl Struct Reference\par \pard\plain {\tc\tcl2 \v FSMPureVtbl} {\xe \v FSMPureVtbl} -{\bkmkstart AAAAAAAABK} -{\bkmkend AAAAAAAABK} +{\bkmkstart AAAAAAAADW} +{\bkmkend AAAAAAAADW} \par { {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -487,7 +704,7 @@ void(* {\b initDataLoader} )(FSM *pFSM)\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid void(* {\b initSignals} )(FSM *pFSM)\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void(* {\b resetSignals} )({\b FSMSignals} *signalRegs, void *data)\par +void(* {\b resetSignals} )({\b FSMSignals} *signals, void *data)\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid @@ -507,8 +724,8 @@ Field Documentation\par {\b void(* FSMPureVtbl::setupHandler) ({\b FSMHandler} *fcns)}} \par -{\bkmkstart AAAAAAAABL} -{\bkmkend AAAAAAAABL} +{\bkmkstart AAAAAAAADX} +{\bkmkend AAAAAAAADX} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -520,8 +737,8 @@ void(* FSMPureVtbl::setupHandler) ({\b FSMHandler} *fcns)}} {\b void(* FSMPureVtbl::initData) (FSM *pFSM)}} \par -{\bkmkstart AAAAAAAABM} -{\bkmkend AAAAAAAABM} +{\bkmkstart AAAAAAAADY} +{\bkmkend AAAAAAAADY} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -533,8 +750,8 @@ void(* FSMPureVtbl::initData) (FSM *pFSM)}} {\b void(* FSMPureVtbl::loadExternalData) (void *extData)}} \par -{\bkmkstart AAAAAAAABN} -{\bkmkend AAAAAAAABN} +{\bkmkstart AAAAAAAADZ} +{\bkmkend AAAAAAAADZ} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -549,8 +766,8 @@ Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E6 {\b void(* FSMPureVtbl::initDataLoader) (FSM *pFSM)}} \par -{\bkmkstart AAAAAAAABO} -{\bkmkend AAAAAAAABO} +{\bkmkstart AAAAAAAAEA} +{\bkmkend AAAAAAAAEA} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -565,8 +782,8 @@ Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5 {\b void(* FSMPureVtbl::initSignals) (FSM *pFSM)}} \par -{\bkmkstart AAAAAAAABP} -{\bkmkend AAAAAAAABP} +{\bkmkstart AAAAAAAAEB} +{\bkmkend AAAAAAAAEB} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -576,10 +793,10 @@ void(* FSMPureVtbl::initSignals) (FSM *pFSM)}} {\xe \v FSMPureVtbl\:resetSignals} \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { {\b -void(* FSMPureVtbl::resetSignals) ({\b FSMSignals} *signalRegs, void *data)}} +void(* FSMPureVtbl::resetSignals) ({\b FSMSignals} *signals, void *data)}} \par -{\bkmkstart AAAAAAAABQ} -{\bkmkend AAAAAAAABQ} +{\bkmkstart AAAAAAAAEC} +{\bkmkend AAAAAAAAEC} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -593,8 +810,8 @@ void(* FSMPureVtbl::resetSignals) ({\b FSMSignals} *signalRegs, void *data)}} FSMSignals Struct Reference\par \pard\plain {\tc\tcl2 \v FSMSignals} {\xe \v FSMSignals} -{\bkmkstart AAAAAAAABR} -{\bkmkend AAAAAAAABR} +{\bkmkstart AAAAAAAAED} +{\bkmkend AAAAAAAAED} \par { {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -607,7 +824,7 @@ Data Fields\par { \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -Uint16 {\b external}\par +Uint16 {\b all}\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid Uint16 {\b lastTriggeredSignal}\par } @@ -618,19 +835,23 @@ Detailed Description\par { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE \par +} + +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AA\'E8\'83\'BD\'E9\'80\'9A\'E8\'BF\'87SetSignal\'E5\'87\'BD\'E6\'95\'B0\'E5\'AF\'B9\'E4\'BF\'A1\'E5\'8F\'B7\'E8\'BF\'9B\'E8\'A1\'8C\'E8\'AE\'BE\'E7\'BD\'AE\'EF\'BC\'8C\'E5\'9C\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E8\'BF\'90\'E8\'A1\'8C\'E6\'97\'B6\'E4\'BC\'9A\'E6\'A0\'B9\'E6\'8D\'AE\'E4\'BF\'A1\'E5\'8F\'B7\'E6\'B8\'85\'E9\'99\'A4\'E5\'87\'BD\'E6\'95\'B0\'E6\'B8\'85\'E9\'99\'A4\'E4\'BF\'A1\'E5\'8F\'B7\'E3\'80\'82\'E4\'BF\'A1\'E5\'8F\'B7 \'E5\'88\'A9\'E7\'94\'A8\'E4\'BD\'8D\'E8\'BF\'9B\'E8\'A1\'8C\'E5\'AD\'98\'E5\'82\'A8\'EF\'BC\'8C\'E6\'AF\'8F\'E4\'B8\'AA\'E4\'BD\'8D\'E4\'BB\'A3\'E8\'A1\'A8\'E4\'B8\'80\'E4\'B8\'AA\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E9\'80\'9A\'E8\'BF\'87\'E7\'A7\'BB\'E4\'BD\'8D\'E6\'93\'8D\'E4\'BD\'9C\'E8\'AE\'BE\'E7\'BD\'AE\'E5\'92\'8C\'E6\'B8\'85\'E9\'99\'A4\'E4\'BF\'A1\'E5\'8F\'B7\'E3\'80\'82 \par }} {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Field Documentation\par \pard\plain -{\xe \v external\:FSMSignals} -{\xe \v FSMSignals\:external} +{\xe \v all\:FSMSignals} +{\xe \v FSMSignals\:all} \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { {\b -Uint16 FSMSignals::external}} +Uint16 FSMSignals::all}} \par -{\bkmkstart AAAAAAAABS} -{\bkmkend AAAAAAAABS} +{\bkmkstart AAAAAAAAEE} +{\bkmkend AAAAAAAAEE} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -642,12 +863,60 @@ Uint16 FSMSignals::external}} {\b Uint16 FSMSignals::lastTriggeredSignal}} \par -{\bkmkstart AAAAAAAABT} -{\bkmkend AAAAAAAABT} +{\bkmkstart AAAAAAAAEF} +{\bkmkend AAAAAAAAEF} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E4\'B8\'8A\'E4\'B8\'80\'E6\'AC\'A1\'E8\'A7\'A6\'E5\'8F\'91\'E7\'9A\'84\'E5\'A4\'96\'E9\'83\'A8\'E4\'BF\'A1\'E5\'8F\'B7 \par +\'E4\'B8\'8A\'E4\'B8\'80\'E6\'AC\'A1\'E8\'A7\'A6\'E5\'8F\'91\'E7\'9A\'84\'E5\'A4\'96\'E9\'83\'A8\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E7\'94\'A8\'E4\'BA\'8E\'E4\'BF\'A1\'E5\'8F\'B7\'E6\'B8\'85\'E9\'99\'A4 \par +}} +\par \pard\plain + +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +TemplateFSMExternalData Struct Reference\par \pard\plain +{\tc\tcl2 \v TemplateFSMExternalData} +{\xe \v TemplateFSMExternalData} +{\bkmkstart AAAAAAAAEG} +{\bkmkend AAAAAAAAEG} +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par +{ +{\f2 #include }}\par +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE \par +}} +\par \pard\plain + +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +TemplateFSMInnerData Struct Reference\par \pard\plain +{\tc\tcl2 \v TemplateFSMInnerData} +{\xe \v TemplateFSMInnerData} +{\bkmkstart AAAAAAAAEH} +{\bkmkend AAAAAAAAEH} +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par +{ +{\f2 #include }}\par +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE \par }} \pard\plain \sect\sbkpage @@ -655,11 +924,267 @@ Uint16 FSMSignals::lastTriggeredSignal}} File Documentation{\tc \v File Documentation} \par \pard\plain \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +FSM_OOP/baseFSM/FSM.c File Reference\par \pard\plain +{\tc\tcl2 \v FSM_OOP/baseFSM/FSM.c} +{\xe \v FSM_OOP/baseFSM/FSM.c} +{\bkmkstart AAAAAAAAAK} +{\bkmkend AAAAAAAAAK} +{ +\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par +{\f2 #include }\par +{\f2 #include }\par +{\f2 #include }\par +{\f2 #include "FSM_private.h"}\par +{\f2 #include "FSM_protected.h"}\par +{\f2 #include "FSM_public.h"}\par +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Functions\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b setNextState} (FSM *pFSM)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'AE\'BE\'E7\'BD\'AE\'E4\'B8\'8B\'E4\'B8\'80\'E4\'B8\'AA\'E7\'8A\'B6\'E6\'80\'81\'EF\'BC\'8C\'E9\'87\'8C\'E9\'9D\'A2\'E7\'9A\'84\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'9A\'82\'E6\'97\'B6\'E6\'B2\'A1\'E7\'94\'A8\'E5\'88\'B0 }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b preload} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void {\b stepBaseFSM} (FSM *pFSM)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'BF\'90\'E8\'A1\'8C\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'EF\'BC\'8C\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E7\'9A\'84\'E6\'A0\'B8\'E5\'BF\'83\'E5\'87\'BD\'E6\'95\'B0 }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void * {\b _preloadIn} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void {\b _preloaderGetReady} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +int {\b _getPreloaderOverFlag} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void {\b _clearPreloaderOverFlag} (FSM *pFSM)\par +} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Author\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn}) \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2.1 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2024-05-07\par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Copyright\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E\'E5\'88\'9B\'E6\'84\'8F\'E6\'97\'A0\'E9\'99\'90\'E5\'85\'AC\'E5\'8F\'B8 2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v setNextState\:FSM.c} +{\xe \v FSM.c\:setNextState} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void setNextState (FSM * {\i pFSM}){\f2 [inline]}, {\f2 [static]}}} +\par +{\bkmkstart AAAAAAAAAL} +{\bkmkend AAAAAAAAAL} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'AE\'BE\'E7\'BD\'AE\'E4\'B8\'8B\'E4\'B8\'80\'E4\'B8\'AA\'E7\'8A\'B6\'E6\'80\'81\'EF\'BC\'8C\'E9\'87\'8C\'E9\'9D\'A2\'E7\'9A\'84\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'9A\'82\'E6\'97\'B6\'E6\'B2\'A1\'E7\'94\'A8\'E5\'88\'B0 }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'8F\'98\'E9\'87\'8F\'E7\'9A\'84\'E5\'9F\'BA\'E7\'B1\'BB\'E6\'8C\'87\'E9\'92\'88 \cell } +{\row } +} +}} +{\xe \v preload\:FSM.c} +{\xe \v FSM.c\:preload} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void preload (FSM * {\i pFSM}){\f2 [inline]}, {\f2 [static]}}} +\par +{\bkmkstart AAAAAAAAAM} +{\bkmkend AAAAAAAAAM} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'8E\'BB\'E6\'8E\'89\'E4\'BA\'86\'E6\'89\'80\'E6\'9C\'89\'E5\'92\'8C\'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E7\'9B\'B8\'E5\'85\'B3\'E7\'9A\'84\'E5\'86\'85\'E5\'AE\'B9 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +{\xe \v stepBaseFSM\:FSM.c} +{\xe \v FSM.c\:stepBaseFSM} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void stepBaseFSM (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAAAN} +{\bkmkend AAAAAAAAAN} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'BF\'90\'E8\'A1\'8C\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'EF\'BC\'8C\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6\'E7\'9A\'84\'E6\'A0\'B8\'E5\'BF\'83\'E5\'87\'BD\'E6\'95\'B0 }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'85\'B1\'E5\'88\'86\'E4\'B8\'BA\'E4\'B8\'89\'E9\'83\'A8\'E9\'A6\'96\'E5\'85\'88\'E5\'88\'A4\'E6\'96\'AD\'E6\'98\'AF\'E5\'90\'A6\'E6\'9C\'89\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'88\'87\'E6\'8D\'A2\'EF\'BC\'8C {\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'9F\'BA\'E7\'B1\'BB\'E6\'8C\'87\'E9\'92\'88 \cell } +{\row } +} +}} +{\xe \v _preloadIn\:FSM.c} +{\xe \v FSM.c\:_preloadIn} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void * _preloadIn (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAAAO} +{\bkmkend AAAAAAAAAO} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +void* \par +}}}} +{\xe \v _preloaderGetReady\:FSM.c} +{\xe \v FSM.c\:_preloaderGetReady} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void _preloaderGetReady (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAAAP} +{\bkmkend AAAAAAAAAP} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +{\xe \v _getPreloaderOverFlag\:FSM.c} +{\xe \v FSM.c\:_getPreloaderOverFlag} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +int _getPreloaderOverFlag (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAAAQ} +{\bkmkend AAAAAAAAAQ} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +int \par +}}}} +{\xe \v _clearPreloaderOverFlag\:FSM.c} +{\xe \v FSM.c\:_clearPreloaderOverFlag} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void _clearPreloaderOverFlag (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAAAR} +{\bkmkend AAAAAAAAAR} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +\par \pard\plain + +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid FSM_OOP/baseFSM/FSM_private.h File Reference\par \pard\plain {\tc\tcl2 \v FSM_OOP/baseFSM/FSM_private.h} {\xe \v FSM_OOP/baseFSM/FSM_private.h} -{\bkmkstart AAAAAAAAAK} -{\bkmkend AAAAAAAAAK} +{\bkmkstart AAAAAAAAAS} +{\bkmkend AAAAAAAAAS} \par { {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -693,10 +1218,7 @@ typedef struct FSMHandler {\b FSMHandler}\par }\par }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -typedef struct FSMSignals {\b FSMSignals}{\bkmkstart AAAAAAAAAL} -{\bkmkend AAAAAAAAAL} -\par +typedef struct FSMSignals {\b FSMSignals}\par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE }{ @@ -706,8 +1228,8 @@ typedef struct FSMSignals {\b FSMSignals}{\bkmkstart AAAAAAAAAL} typedef struct FSMDataLoader {\b FSMDataLoader}\par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -typedef struct FSMPrivateVars {\b FSMPrivateVars}{\bkmkstart AAAAAAAAAM} -{\bkmkend AAAAAAAAAM} +typedef struct FSMPrivateVars {\b FSMPrivateVars}{\bkmkstart AAAAAAAAAT} +{\bkmkend AAAAAAAAAT} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -715,6 +1237,19 @@ typedef struct FSMPrivateVars {\b FSMPrivateVars}{\bkmkstart AAAAAAAAAM} }\par }\par} } +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Functions\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +{\b FSMPrivateVars} * {\b newFMSPrivateVars} (int numState, int defaultState)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E4\'BB\'85\'E5\'9C\'A8FSM.c\'E4\'B8\'AD\'E8\'B0\'83\'E7\'94\'A8\'EF\'BC\'8C\'E6\'96\'B0\'E5\'BB\'BA\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'E5\'B9\'B6\'E5\'88\'86\'E9\'85\'8D\'E7\'A9\'BA\'E9\'97\'B4 }{ +}\par +}\par} +} {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par @@ -726,8 +1261,9 @@ Detailed Description\par \par {{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Author\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 -\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn}) \par -}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn})\par +}}\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'E5\'AF\'B9\'E5\'AD\'90\'E7\'B1\'BB\'E5\'92\'8C\'E5\'A4\'96\'E7\'95\'8C\'E9\'9A\'90\'E8\'97\'8F\'E5\'AE\'9E\'E7\'8E\'B0\'EF\'BC\'8C\'E9\'80\'9A\'E8\'BF\'87\'E6\'8C\'87\'E9\'92\'88\'E8\'BF\'9B\'E8\'A1\'8C\'E8\'AE\'BF\'E9\'97\'AE\'E3\'80\'82 \par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 2.1 \par }}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid @@ -747,8 +1283,8 @@ Typedef Documentation\par {\b typedef struct FSMHandler FSMHandler}} \par -{\bkmkstart AAAAAAAAAN} -{\bkmkend AAAAAAAAAN} +{\bkmkstart AAAAAAAAAU} +{\bkmkend AAAAAAAAAU} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \par @@ -756,7 +1292,24 @@ typedef struct FSMHandler FSMHandler}} {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E7\'8A\'B6\'E6\'80\'81\'E5\'A4\'84\'E7\'90\'86\'E5\'87\'BD\'E6\'95\'B0\'E9\'9B\'86\'E5\'90\'88\'EF\'BC\'8C\'E5\'85\'A8\'E9\'83\'A8\'E9\'9C\'80\'E8\'A6\'81\'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'A1\'AB\'E5\'85\'85\'E5\'86\'85\'E5\'AE\'B9 }}\par {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'BF\'99\'E4\'B8\'AA\'E7\'BB\'93\'E6\'9E\'84\'E4\'BD\'93\'E6\'9A\'B4\'E9\'9C\'B2\'E7\'BB\'99protect\'E6\'96\'87\'E4\'BB\'B6\'EF\'BC\'8C\'E6\'96\'B9\'E4\'BE\'BF\'E5\'9C\'A8\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'82\'E4\'B8\'8D\'E7\'84\'B6\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E5\'BE\'97\'E5\'86\'8D\'E5\'86\'99\'E4\'B8\'AA\'E5\'87\'BD\'E6\'95\'B0\'E6\'B7\'BB\'E5\'8A\'A0\'EF\'BC\'8C \'E6\'9C\'89\'E7\'82\'B9\'E9\'BA\'BB\'E7\'83\'A6 \par +\'E8\'BF\'99\'E4\'B8\'AA\'E7\'BB\'93\'E6\'9E\'84\'E4\'BD\'93\'E6\'98\'AF\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'92\'8C\'E5\'A4\'96\'E7\'95\'8C\'E9\'83\'BD\'E4\'B8\'8D\'E8\'AF\'A5\'E8\'AE\'BF\'E9\'97\'AE\'E3\'80\'82\'E4\'BD\'86\'E6\'98\'AF\'E5\'86\'99\'E5\'9C\'A8FSM_protect.h\'E6\'96\'87\'E4\'BB\'B6\'EF\'BC\'8C\'E8\'BF\'99\'E6\'A0\'B7\'E6\'96\'B9\'E4\'BE\'BF\'E5\'9C\'A8\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'82\'E4\'B8\'8D\'E7\'84\'B6\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E5\'BE\'97\'E5\'86\'8D\'E5\'86\'99\'E4\'B8\'AA\'E5\'87\'BD\'E6\'95\'B0\'E6\'B7\'BB\'E5\'8A\'A0\'EF\'BC\'8C \'E6\'9C\'89\'E7\'82\'B9\'E9\'BA\'BB\'E7\'83\'A6 \par +}} +{\xe \v FSMSignals\:FSM_private.h} +{\xe \v FSM_private.h\:FSMSignals} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +typedef struct FSMSignals FSMSignals}} +\par +{\bkmkstart AAAAAAAAAV} +{\bkmkend AAAAAAAAAV} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AA\'E8\'83\'BD\'E9\'80\'9A\'E8\'BF\'87SetSignal\'E5\'87\'BD\'E6\'95\'B0\'E5\'AF\'B9\'E4\'BF\'A1\'E5\'8F\'B7\'E8\'BF\'9B\'E8\'A1\'8C\'E8\'AE\'BE\'E7\'BD\'AE\'EF\'BC\'8C\'E5\'9C\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E8\'BF\'90\'E8\'A1\'8C\'E6\'97\'B6\'E4\'BC\'9A\'E6\'A0\'B9\'E6\'8D\'AE\'E4\'BF\'A1\'E5\'8F\'B7\'E6\'B8\'85\'E9\'99\'A4\'E5\'87\'BD\'E6\'95\'B0\'E6\'B8\'85\'E9\'99\'A4\'E4\'BF\'A1\'E5\'8F\'B7\'E3\'80\'82\'E4\'BF\'A1\'E5\'8F\'B7 \'E5\'88\'A9\'E7\'94\'A8\'E4\'BD\'8D\'E8\'BF\'9B\'E8\'A1\'8C\'E5\'AD\'98\'E5\'82\'A8\'EF\'BC\'8C\'E6\'AF\'8F\'E4\'B8\'AA\'E4\'BD\'8D\'E4\'BB\'A3\'E8\'A1\'A8\'E4\'B8\'80\'E4\'B8\'AA\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E9\'80\'9A\'E8\'BF\'87\'E7\'A7\'BB\'E4\'BD\'8D\'E6\'93\'8D\'E4\'BD\'9C\'E8\'AE\'BE\'E7\'BD\'AE\'E5\'92\'8C\'E6\'B8\'85\'E9\'99\'A4\'E4\'BF\'A1\'E5\'8F\'B7\'E3\'80\'82 \par }} {\xe \v FSMDataLoader\:FSM_private.h} {\xe \v FSM_private.h\:FSMDataLoader} @@ -764,8 +1317,8 @@ typedef struct FSMHandler FSMHandler}} {\b typedef struct FSMDataLoader FSMDataLoader}} \par -{\bkmkstart AAAAAAAAAO} -{\bkmkend AAAAAAAAAO} +{\bkmkstart AAAAAAAAAW} +{\bkmkend AAAAAAAAAW} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -774,6 +1327,45 @@ typedef struct FSMDataLoader FSMDataLoader}} Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E5\'BC\'83\'E7\'94\'A8\par } }} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v newFMSPrivateVars\:FSM_private.h} +{\xe \v FSM_private.h\:newFMSPrivateVars} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +{\b FSMPrivateVars} * newFMSPrivateVars (int {\i numState}, int {\i defaultState})}} +\par +{\bkmkstart AAAAAAAAAX} +{\bkmkend AAAAAAAAAX} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E4\'BB\'85\'E5\'9C\'A8FSM.c\'E4\'B8\'AD\'E8\'B0\'83\'E7\'94\'A8\'EF\'BC\'8C\'E6\'96\'B0\'E5\'BB\'BA\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'E5\'B9\'B6\'E5\'88\'86\'E9\'85\'8D\'E7\'A9\'BA\'E9\'97\'B4 }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i numState} \cell }{\cell } +{\row } +\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i defaultState} \cell }{\cell } +{\row } +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +FSMPrivateVars* \par +}}}} \par \pard\plain \pard\plain \sect\sbkpage @@ -787,73 +1379,72 @@ FSM_private.h\par \pard\plain Go to the documentation of this file.\par { \pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par -13 {\cf21 #ifndef __FSM_PRIVATE_H_}\par -14 {\cf21 #define __FSM_PRIVATE_H_}\par -15 \par -16 {\cf21 #include }\par -17 {\cf21 #include "FSM_protected.h"}\par -18 \par -19 {\cf17 typedef} {\cf17 struct }FSMHandler FSMHandler;\par -20 {\cf17 typedef} {\cf17 struct }FSM FSM;\par -21 {\cf17 typedef} {\cf17 struct }FSMSignals FSMSignals;\par -22 \par -23 {\cf20 /* -------------------------------------------------------------------------- */}\par -24 {\cf20 /* private\'E6\'95\'B0\'E6\'8D\'AE\'E7\'B1\'BB\'E5\'9E\'8B */}\par -25 {\cf20 /* -------------------------------------------------------------------------- */}\par -31 {\cf17 typedef} {\cf17 struct }FSMDataLoader\par -32 \{ \par -33 {\cf18 void} *shadowData;\par -34 {\cf18 int} isReady;\par -35 {\cf18 int} isOverflow;\par -36 {\cf18 size_t} size;\par -37 \}FSMDataLoader;\par -38 \par +14 {\cf21 #ifndef __FSM_PRIVATE_H_}\par +15 {\cf21 #define __FSM_PRIVATE_H_}\par +16 \par +17 {\cf21 #include }\par +18 {\cf21 #include "FSM_protected.h"}\par +19 \par +20 {\cf17 typedef} {\cf17 struct }FSMHandler FSMHandler;\par +21 {\cf17 typedef} {\cf17 struct }FSM FSM;\par +22 {\cf17 typedef} {\cf17 struct }FSMSignals FSMSignals;\par +23 \par +24 {\cf20 /* -------------------------------------------------------------------------- */}\par +25 {\cf20 /* private\'E6\'95\'B0\'E6\'8D\'AE\'E7\'B1\'BB\'E5\'9E\'8B */}\par +26 {\cf20 /* -------------------------------------------------------------------------- */}\par +32 {\cf17 typedef} {\cf17 struct }FSMDataLoader\par +33 \{ \par +34 {\cf18 void} *shadowData;\par +35 {\cf18 int} isReady;\par +36 {\cf18 int} isOverflow;\par +37 {\cf18 size_t} size;\par +38 \}FSMDataLoader;\par 39 \par -44 {\cf17 typedef} {\cf17 struct }FSMPrivateVars\par -45 \{\par -46 {\cf18 int} numState; \par -47 {\cf18 int} defaultState; \par -49 {\cf18 int} curState; \par -50 {\cf18 int} nextState; \par -51 {\cf18 int} index; \par -53 FSMHandler fcns; \par -54 \par -55 {\cf18 int} numChild;\par -56 FSM **childFSM;\par -57 \par -58 FSMDataLoader preloader; \par -60 \}FSMPrivateVars;\par -61 \par -62 FSMPrivateVars* newFMSPrivateVars({\cf18 int} numState, {\cf18 int} defaultState)\{\par -63 {\cf17 typedef} void (*StateFuncPtr)({\cf18 void} *); \par -64 {\cf17 typedef} void (*ChildFSMStepFuncPtr)(FSM **); \par -65 {\cf17 typedef} int (*TransitionFuncPtr)({\cf18 void} *, {\cf18 int} *);\par -66 {\cf17 typedef} int (*SelectNextStateFcnPtr)({\cf18 void} *, FSMSignals *);\par -67 \par -68 FSMPrivateVars *privateVars = calloc(1, {\cf17 sizeof}(FSMPrivateVars));\par -69 privateVars->numState = numState;\par -70 privateVars->defaultState = defaultState;\par -71 privateVars->curState = 0;\par -72 privateVars->nextState = 0;\par -73 privateVars->numChild = 0;\par -74 \par -75 privateVars->preloader.isReady = 0;\par -76 \par -77 privateVars->fcns.duringActionTable = calloc(numState, {\cf17 sizeof}(StateFuncPtr));\par -78 privateVars->fcns.enterActionTable = calloc(numState, {\cf17 sizeof}(StateFuncPtr));\par -79 privateVars->fcns.exitActionTable = calloc(numState, {\cf17 sizeof}(StateFuncPtr));\par -80 \par -81 privateVars->fcns.selectNextState = calloc(numState, {\cf17 sizeof}(SelectNextStateFcnPtr));\par -82 privateVars->fcns.transitionTable = calloc(numState * numState, {\cf17 sizeof}(TransitionFuncPtr));\par -83 privateVars->fcns.transitionGeneralAction = calloc(1, {\cf17 sizeof}(StateFuncPtr));\par +40 \par +45 {\cf17 typedef} {\cf17 struct }FSMPrivateVars\par +46 \{\par +47 {\cf18 int} numState; \par +48 {\cf18 int} defaultState; \par +50 {\cf18 int} curState; \par +51 {\cf18 int} nextState; \par +52 {\cf18 int} index; \par +54 FSMHandler fcns; \par +56 {\cf18 int} numChild; \par +57 FSM **childFSM; \par +59 FSMDataLoader preloader; \par +61 \}FSMPrivateVars;\par +62 \par +63 \par +64 \par +72 FSMPrivateVars* newFMSPrivateVars({\cf18 int} numState, {\cf18 int} defaultState)\{\par +73 {\cf17 typedef} void (*StateFuncPtr)({\cf18 void} *); \par +74 {\cf17 typedef} void (*ChildFSMStepFuncPtr)(FSM **); \par +75 {\cf17 typedef} int (*TransitionFuncPtr)({\cf18 void} *, {\cf18 int} *);\par +76 {\cf17 typedef} int (*SelectNextStateFcnPtr)({\cf18 void} *, FSMSignals *);\par +77 \par +78 FSMPrivateVars *privateVars = calloc(1, {\cf17 sizeof}(FSMPrivateVars));\par +79 privateVars->numState = numState;\par +80 privateVars->defaultState = defaultState;\par +81 privateVars->curState = 0;\par +82 privateVars->nextState = 0;\par +83 privateVars->numChild = 0;\par 84 \par -85 privateVars->fcns.childFSMStepTable = calloc(numState * numState, {\cf17 sizeof}(ChildFSMStepFuncPtr));\par -86 \par -87 {\cf19 return} privateVars;\par -88 \par -89 \}\par -90 \par -91 {\cf21 #endif}\par +85 privateVars->preloader.isReady = 0;\par +86 \par +87 privateVars->fcns.duringActionTable = calloc(numState, {\cf17 sizeof}(StateFuncPtr));\par +88 privateVars->fcns.enterActionTable = calloc(numState, {\cf17 sizeof}(StateFuncPtr));\par +89 privateVars->fcns.exitActionTable = calloc(numState, {\cf17 sizeof}(StateFuncPtr));\par +90 \par +91 privateVars->fcns.selectNextState = calloc(numState, {\cf17 sizeof}(SelectNextStateFcnPtr));\par +92 privateVars->fcns.transitionTable = calloc(numState * numState, {\cf17 sizeof}(TransitionFuncPtr));\par +93 privateVars->fcns.transitionGeneralAction = calloc(1, {\cf17 sizeof}(StateFuncPtr));\par +94 \par +95 privateVars->fcns.childFSMStepTable = calloc(numState * numState, {\cf17 sizeof}(ChildFSMStepFuncPtr));\par +96 \par +97 {\cf19 return} privateVars;\par +98 \}\par +99 \par +100 {\cf21 #endif}\par } \par \pard\plain @@ -863,8 +1454,8 @@ Go to the documentation of this file.\par FSM_OOP/baseFSM/FSM_protected.h File Reference\par \pard\plain {\tc\tcl2 \v FSM_OOP/baseFSM/FSM_protected.h} {\xe \v FSM_OOP/baseFSM/FSM_protected.h} -{\bkmkstart AAAAAAAAAP} -{\bkmkend AAAAAAAAAP} +{\bkmkstart AAAAAAAAAY} +{\bkmkend AAAAAAAAAY} \par { {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -911,10 +1502,7 @@ typedef struct FSMHandler {\b FSMHandler}\par }\par }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -typedef struct FSMSignals {\b FSMSignals}{\bkmkstart AAAAAAAAAQ} -{\bkmkend AAAAAAAAAQ} -\par +typedef struct FSMSignals {\b FSMSignals}\par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE }{ @@ -922,8 +1510,8 @@ typedef struct FSMSignals {\b FSMSignals}{\bkmkstart AAAAAAAAAQ} }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -typedef struct FSMPureVtbl {\b FSMPureVtbl}{\bkmkstart AAAAAAAAAR} -{\bkmkend AAAAAAAAAR} +typedef struct FSMPureVtbl {\b FSMPureVtbl}{\bkmkstart AAAAAAAAAZ} +{\bkmkend AAAAAAAAAZ} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -976,12 +1564,12 @@ Macro Definition Documentation\par {\b #define Idle_Signal\~ 0}} \par -{\bkmkstart AAAAAAAAAS} -{\bkmkend AAAAAAAAAS} +{\bkmkstart AAAAAAAABA} +{\bkmkend AAAAAAAABA} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E5\'95\'A5\'E6\'84\'8F\'E6\'80\'9D\'EF\'BC\'9F \par +\'E6\'B8\'85\'E7\'A9\'BA\'E4\'B8\'8A\'E6\'AC\'A1\'E8\'A7\'A6\'E5\'8F\'91\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E5\'8D\'A0\'E7\'94\'A8\'E7\'AC\'AC\'E4\'B8\'80\'E4\'B8\'AA\'E4\'BF\'A1\'E5\'8F\'B7\'E4\'BD\'8D \par }} {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid @@ -993,8 +1581,8 @@ Typedef Documentation\par {\b typedef struct FSMHandler FSMHandler}} \par -{\bkmkstart AAAAAAAAAT} -{\bkmkend AAAAAAAAAT} +{\bkmkstart AAAAAAAABB} +{\bkmkend AAAAAAAABB} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \par @@ -1002,7 +1590,24 @@ typedef struct FSMHandler FSMHandler}} {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \'E7\'8A\'B6\'E6\'80\'81\'E5\'A4\'84\'E7\'90\'86\'E5\'87\'BD\'E6\'95\'B0\'E9\'9B\'86\'E5\'90\'88\'EF\'BC\'8C\'E5\'85\'A8\'E9\'83\'A8\'E9\'9C\'80\'E8\'A6\'81\'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'A1\'AB\'E5\'85\'85\'E5\'86\'85\'E5\'AE\'B9 }}\par {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -\'E8\'BF\'99\'E4\'B8\'AA\'E7\'BB\'93\'E6\'9E\'84\'E4\'BD\'93\'E6\'9A\'B4\'E9\'9C\'B2\'E7\'BB\'99protect\'E6\'96\'87\'E4\'BB\'B6\'EF\'BC\'8C\'E6\'96\'B9\'E4\'BE\'BF\'E5\'9C\'A8\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'82\'E4\'B8\'8D\'E7\'84\'B6\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E5\'BE\'97\'E5\'86\'8D\'E5\'86\'99\'E4\'B8\'AA\'E5\'87\'BD\'E6\'95\'B0\'E6\'B7\'BB\'E5\'8A\'A0\'EF\'BC\'8C \'E6\'9C\'89\'E7\'82\'B9\'E9\'BA\'BB\'E7\'83\'A6 \par +\'E8\'BF\'99\'E4\'B8\'AA\'E7\'BB\'93\'E6\'9E\'84\'E4\'BD\'93\'E6\'98\'AF\'E7\'A7\'81\'E6\'9C\'89\'E5\'8F\'98\'E9\'87\'8F\'EF\'BC\'8C\'E5\'AD\'90\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'92\'8C\'E5\'A4\'96\'E7\'95\'8C\'E9\'83\'BD\'E4\'B8\'8D\'E8\'AF\'A5\'E8\'AE\'BF\'E9\'97\'AE\'E3\'80\'82\'E4\'BD\'86\'E6\'98\'AF\'E5\'86\'99\'E5\'9C\'A8FSM_protect.h\'E6\'96\'87\'E4\'BB\'B6\'EF\'BC\'8C\'E8\'BF\'99\'E6\'A0\'B7\'E6\'96\'B9\'E4\'BE\'BF\'E5\'9C\'A8\'E5\'AD\'90\'E7\'B1\'BB\'E4\'B8\'AD\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'82\'E4\'B8\'8D\'E7\'84\'B6\'E6\'B7\'BB\'E5\'8A\'A0\'E5\'87\'BD\'E6\'95\'B0\'E5\'BE\'97\'E5\'86\'8D\'E5\'86\'99\'E4\'B8\'AA\'E5\'87\'BD\'E6\'95\'B0\'E6\'B7\'BB\'E5\'8A\'A0\'EF\'BC\'8C \'E6\'9C\'89\'E7\'82\'B9\'E9\'BA\'BB\'E7\'83\'A6 \par +}} +{\xe \v FSMSignals\:FSM_protected.h} +{\xe \v FSM_protected.h\:FSMSignals} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +typedef struct FSMSignals FSMSignals}} +\par +{\bkmkstart AAAAAAAABC} +{\bkmkend AAAAAAAABC} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8Cprotected\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BF\'E9\'97\'AE }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AA\'E8\'83\'BD\'E9\'80\'9A\'E8\'BF\'87SetSignal\'E5\'87\'BD\'E6\'95\'B0\'E5\'AF\'B9\'E4\'BF\'A1\'E5\'8F\'B7\'E8\'BF\'9B\'E8\'A1\'8C\'E8\'AE\'BE\'E7\'BD\'AE\'EF\'BC\'8C\'E5\'9C\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E8\'BF\'90\'E8\'A1\'8C\'E6\'97\'B6\'E4\'BC\'9A\'E6\'A0\'B9\'E6\'8D\'AE\'E4\'BF\'A1\'E5\'8F\'B7\'E6\'B8\'85\'E9\'99\'A4\'E5\'87\'BD\'E6\'95\'B0\'E6\'B8\'85\'E9\'99\'A4\'E4\'BF\'A1\'E5\'8F\'B7\'E3\'80\'82\'E4\'BF\'A1\'E5\'8F\'B7 \'E5\'88\'A9\'E7\'94\'A8\'E4\'BD\'8D\'E8\'BF\'9B\'E8\'A1\'8C\'E5\'AD\'98\'E5\'82\'A8\'EF\'BC\'8C\'E6\'AF\'8F\'E4\'B8\'AA\'E4\'BD\'8D\'E4\'BB\'A3\'E8\'A1\'A8\'E4\'B8\'80\'E4\'B8\'AA\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E9\'80\'9A\'E8\'BF\'87\'E7\'A7\'BB\'E4\'BD\'8D\'E6\'93\'8D\'E4\'BD\'9C\'E8\'AE\'BE\'E7\'BD\'AE\'E5\'92\'8C\'E6\'B8\'85\'E9\'99\'A4\'E4\'BF\'A1\'E5\'8F\'B7\'E3\'80\'82 \par }} {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid @@ -1014,8 +1619,8 @@ Function Documentation\par {\b void stepBaseFSM (FSM * {\i pFSM})}} \par -{\bkmkstart AAAAAAAAAU} -{\bkmkend AAAAAAAAAU} +{\bkmkstart AAAAAAAABD} +{\bkmkend AAAAAAAABD} { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \par @@ -1098,84 +1703,342 @@ Go to the documentation of this file.\par 60 \par 67 {\cf17 typedef} {\cf17 struct }FSMHandler\{\par 68 int (**selectNextState)({\cf18 void} *data, FSMSignals* signals); \par -70 void (**transitionTable)({\cf18 void} *data);\par -71 void (*transitionGeneralAction)({\cf18 void} *data);\par -72 \par -73 void (**enterActionTable)({\cf18 void} *data, FSM **cFSM);\par -74 void (**duringActionTable)({\cf18 void} *data, FSM **cFSM);\par -75 void (**exitActionTable)({\cf18 void} *data, FSM **cFSM);\par -76 \par -77 void (**childFSMStepTable)(FSM **cFSM);\par +70 void (**transitionTable)({\cf18 void} *data); \par +71 void (*transitionGeneralAction)({\cf18 void} *data); \par +73 void (**enterActionTable)({\cf18 void} *data, FSM **cFSM); \par +74 void (**duringActionTable)({\cf18 void} *data, FSM **cFSM); \par +75 void (**exitActionTable)({\cf18 void} *data, FSM **cFSM); \par +77 void (**childFSMStepTable)(FSM **cFSM); \par 78 \}FSMHandler;\par 79 \par -84 {\cf17 typedef} {\cf17 struct }FSMSignals\par -85 \{\par -86 Uint16 external; \par -87 Uint16 lastTriggeredSignal; \par -88 \}FSMSignals;\par -89 {\cf21 #define Idle_Signal 0 }\par -91 {\cf20 /* -------------------------------------------------------------------------- */}\par -92 {\cf20 /* \'E7\'BA\'AF\'E8\'99\'9A\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E5\'BF\'85\'E9\'A1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'EF\'BC\'8C\'E7\'88\'B6\'E7\'B1\'BB\'E6\'9E\'84\'E9\'80\'A0\'E5\'87\'BD\'E6\'95\'B0\'E4\'B8\'8D\'E4\'BC\'9A\'E5\'88\'9D\'E5\'A7\'8B\'E5\'8C\'96 */}\par -93 {\cf20 /* -------------------------------------------------------------------------- */}\par -94 \par -99 {\cf17 typedef} {\cf17 struct }FSMPureVtbl \{\par -100 {\cf20 // \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'8E\'A7\'E5\'88\'B6}\par -101 void (*setupHandler)(FSMHandler *fcns); \par -103 void (*initData)(FSM *pFSM); \par -104 void (*loadExternalData)({\cf18 void} *extData); \par -106 void (*initDataLoader)(FSM *pFSM); \par -108 void (*initSignals)(FSM *pFSM); \par -109 void (*resetSignals)(FSMSignals *signalRegs, {\cf18 void} *data); \par -110 \}FSMPureVtbl;\par -111 \par +85 {\cf17 typedef} {\cf17 struct }FSMSignals\par +86 \{\par +87 Uint16 all; \par +88 Uint16 lastTriggeredSignal; \par +89 \}FSMSignals;\par +90 {\cf21 #define Idle_Signal 0 }\par +92 {\cf20 /* -------------------------------------------------------------------------- */}\par +93 {\cf20 /* \'E7\'BA\'AF\'E8\'99\'9A\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E5\'BF\'85\'E9\'A1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'EF\'BC\'8C\'E7\'88\'B6\'E7\'B1\'BB\'E6\'9E\'84\'E9\'80\'A0\'E5\'87\'BD\'E6\'95\'B0\'E4\'B8\'8D\'E4\'BC\'9A\'E5\'88\'9D\'E5\'A7\'8B\'E5\'8C\'96 */}\par +94 {\cf20 /* -------------------------------------------------------------------------- */}\par +95 \par +100 {\cf17 typedef} {\cf17 struct }FSMPureVtbl \{\par +101 {\cf20 // \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'8E\'A7\'E5\'88\'B6}\par +102 void (*setupHandler)(FSMHandler *fcns); \par +104 void (*initData)(FSM *pFSM); \par +105 void (*loadExternalData)({\cf18 void} *extData); \par +107 void (*initDataLoader)(FSM *pFSM); \par +109 void (*initSignals)(FSM *pFSM); \par +110 void (*resetSignals)(FSMSignals *signals, {\cf18 void} *data); \par +111 \}FSMPureVtbl;\par 112 \par 113 \par -114 {\cf20 /* -------------------------------------------------------------------------- */}\par -115 {\cf20 /* \'E5\'9F\'BA\'E7\'B1\'BB\'E5\'AE\'9A\'E4\'B9\'89\'EF\'BC\'8C\'E7\'BA\'AF\'E8\'99\'9A\'E7\'B1\'BB */}\par -116 {\cf20 /* -------------------------------------------------------------------------- */}\par -117 {\cf17 typedef} {\cf17 struct }FSM\par -118 \{\par -119 {\cf20 // public functions}\par -120 void (*step)(FSM *pFSM); {\cf20 // \'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'8F\'AF\'E4\'BB\'A5\'E6\'B7\'BB\'E5\'8A\'A0\'E4\'B8\'80\'E4\'BA\'9B\'E6\'89\'93\'E5\'8D\'B0\'E4\'BF\'A1\'E6\'81\'AF}\par -121 void (*reset)(FSM *pFSM); {\cf20 // \'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'8F\'AF\'E4\'BB\'A5\'E6\'B7\'BB\'E5\'8A\'A0\'E4\'B8\'80\'E4\'BA\'9B\'E6\'89\'93\'E5\'8D\'B0\'E4\'BF\'A1\'E6\'81\'AF}\par -122 \par -123 {\cf20 // protected}\par -124 FSMPureVtbl pureVtbl;\par -125 \par -126 {\cf18 void} *data;\par -127 FSMSignals signals;\par -128 {\cf20 // private}\par -129 FSMPrivateVars* privateVars; \par -130 \} FSM;\par -131 \par -132 \par +114 \par +115 {\cf20 /* -------------------------------------------------------------------------- */}\par +116 {\cf20 /* \'E5\'9F\'BA\'E7\'B1\'BB\'E5\'AE\'9A\'E4\'B9\'89\'EF\'BC\'8C\'E7\'BA\'AF\'E8\'99\'9A\'E7\'B1\'BB */}\par +117 {\cf20 /* -------------------------------------------------------------------------- */}\par +118 {\cf17 typedef} {\cf17 struct }FSM\par +119 \{\par +120 FSMPublicFcns publicFcns;\par +121 {\cf20 // protected}\par +122 FSMPureVtbl pureVtbl;\par +123 \par +124 {\cf18 void} *data;\par +125 FSMSignals signals;\par +126 {\cf20 // private}\par +127 FSMPrivateVars* privateVars; \par +128 \} FSM;\par +129 \par +130 \par +131 {\cf20 /* -------------------------------------------------------------------------- */}\par +132 {\cf20 /* protected\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E8\'83\'BD\'E7\'94\'A8\'E5\'A4\'96\'E7\'95\'8C\'E7\'94\'A8\'E4\'B8\'8D\'E4\'BA\'86 */}\par 133 {\cf20 /* -------------------------------------------------------------------------- */}\par -134 {\cf20 /* protected\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'AD\'90\'E7\'B1\'BB\'E8\'83\'BD\'E7\'94\'A8\'E5\'A4\'96\'E7\'95\'8C\'E7\'94\'A8\'E4\'B8\'8D\'E4\'BA\'86 */}\par -135 {\cf20 /* -------------------------------------------------------------------------- */}\par -136 {\cf18 void} stepBaseFSM(FSM *pFSM);\par -137 {\cf18 void} constructFSM(FSM* pFSM);\par -138 FSM* newBaseFSM({\cf18 int} numState, {\cf18 int} defaultState);\par -139 {\cf18 void} resetBaseFSM(FSM *pFSM);\par -140 \par -141 \par +134 {\cf18 void} stepBaseFSM(FSM *pFSM);\par +135 {\cf18 void} constructFSM(FSM* pFSM);\par +136 FSM* newBaseFSM({\cf18 int} numState, {\cf18 int} defaultState);\par +137 {\cf18 void} resetBaseFSM(FSM *pFSM);\par +138 \par +139 \par +140 {\cf20 /* -------------------------------------------------------------------------- */}\par +141 {\cf20 /* \'E5\'86\'85\'E8\'81\'94\'E5\'87\'BD\'E6\'95\'B0 */}\par 142 {\cf20 /* -------------------------------------------------------------------------- */}\par -143 {\cf20 /* \'E5\'86\'85\'E8\'81\'94\'E5\'87\'BD\'E6\'95\'B0 */}\par -144 {\cf20 /* -------------------------------------------------------------------------- */}\par -145 {\cf17 static} {\cf17 inline} {\cf18 void} clearSignal(FSMSignals *signals, Uint16 signalFlag)\{\par -146 signals->external &= ~(1 << signalFlag);\par -147 \}\par -148 {\cf17 static} {\cf17 inline} Uint16 getSignal(FSMSignals *signals, Uint16 signalFlag)\{\par -149 {\cf19 return} (signals->external >> signalFlag) & 1;\par -150 \}\par -151 {\cf17 static} {\cf17 inline} {\cf18 void} clearAllSignals(FSMSignals *signals)\{\par -152 signals->external = 0;\par -153 \}\par -154 \par -155 \par -156 {\cf21 #endif}\par +143 {\cf17 static} {\cf17 inline} {\cf18 void} clearSignal(FSMSignals *signals, Uint16 signalFlag)\{\par +144 signals->all &= ~(1 << signalFlag);\par +145 \}\par +146 {\cf17 static} {\cf17 inline} Uint16 getSignal(FSMSignals *signals, Uint16 signalFlag)\{\par +147 {\cf19 return} (signals->all >> signalFlag) & 1;\par +148 \}\par +149 {\cf17 static} {\cf17 inline} {\cf18 void} clearAllSignals(FSMSignals *signals)\{\par +150 signals->all = 0;\par +151 \}\par +152 \par +153 \par +154 {\cf21 #endif}\par } \par \pard\plain +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +FSM_OOP/baseFSM/FSM_public.h File Reference\par \pard\plain +{\tc\tcl2 \v FSM_OOP/baseFSM/FSM_public.h} +{\xe \v FSM_OOP/baseFSM/FSM_public.h} +{\bkmkstart AAAAAAAABE} +{\bkmkend AAAAAAAABE} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macros\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b Step}(pFSM)\~ _stepFSM((FSM *)pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b GetData}(pFSM)\~ _getData((FSM*)pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b SetSignal}(pFSM, signal)\~ _setSignal((FSM*)pFSM, signal)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b PreloaderGetReady}(pFSM)\~ {\b _preloaderGetReady}((FSM *)pFSM);\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b GetPreloaderOverFlag}(pFSM)\~ {\b _getPreloaderOverFlag}((FSM *)pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b ClearPreloaderOverFlag}(pFSM)\~ {\b _clearPreloaderOverFlag}((FSM *)pFSM)\par +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Functions\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void * {\b _preloadIn} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void {\b _preloaderGetReady} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +int {\b _getPreloaderOverFlag} (FSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +void {\b _clearPreloaderOverFlag} (FSM *pFSM)\par +} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Author\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn}) \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2.1 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2024-05-07\par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Copyright\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E\'E5\'88\'9B\'E6\'84\'8F\'E6\'97\'A0\'E9\'99\'90\'E5\'85\'AC\'E5\'8F\'B8 2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macro Definition Documentation\par +\pard\plain +{\xe \v Step\:FSM_public.h} +{\xe \v FSM_public.h\:Step} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define Step( pFSM)\~ _stepFSM((FSM *)pFSM)}} +\par +{\bkmkstart AAAAAAAABF} +{\bkmkend AAAAAAAABF} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'A4\'96\'E7\'95\'8C\'E8\'B0\'83\'E7\'94\'A8\'E8\'BF\'99\'E4\'B8\'AA \par +}} +{\xe \v GetData\:FSM_public.h} +{\xe \v FSM_public.h\:GetData} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define GetData( pFSM)\~ _getData((FSM*)pFSM)}} +\par +{\bkmkstart AAAAAAAABG} +{\bkmkend AAAAAAAABG} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'A4\'96\'E7\'95\'8C\'E8\'B0\'83\'E7\'94\'A8\'E8\'BF\'99\'E4\'B8\'AA \par +}} +{\xe \v SetSignal\:FSM_public.h} +{\xe \v FSM_public.h\:SetSignal} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define SetSignal( pFSM, signal)\~ _setSignal((FSM*)pFSM, signal)}} +\par +{\bkmkstart AAAAAAAABH} +{\bkmkend AAAAAAAABH} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'A4\'96\'E7\'95\'8C\'E8\'B0\'83\'E7\'94\'A8\'E8\'BF\'99\'E4\'B8\'AA \par +}} +{\xe \v PreloaderGetReady\:FSM_public.h} +{\xe \v FSM_public.h\:PreloaderGetReady} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define PreloaderGetReady( pFSM)\~ {\b _preloaderGetReady}((FSM *)pFSM);}} +\par +{\bkmkstart AAAAAAAABI} +{\bkmkend AAAAAAAABI} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \par +} +}} +{\xe \v GetPreloaderOverFlag\:FSM_public.h} +{\xe \v FSM_public.h\:GetPreloaderOverFlag} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define GetPreloaderOverFlag( pFSM)\~ {\b _getPreloaderOverFlag}((FSM *)pFSM)}} +\par +{\bkmkstart AAAAAAAABJ} +{\bkmkend AAAAAAAABJ} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \par +} +}} +{\xe \v ClearPreloaderOverFlag\:FSM_public.h} +{\xe \v FSM_public.h\:ClearPreloaderOverFlag} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define ClearPreloaderOverFlag( pFSM)\~ {\b _clearPreloaderOverFlag}((FSM *)pFSM)}} +\par +{\bkmkstart AAAAAAAABK} +{\bkmkend AAAAAAAABK} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \par +} +}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v _preloadIn\:FSM_public.h} +{\xe \v FSM_public.h\:_preloadIn} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void * _preloadIn (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAABL} +{\bkmkend AAAAAAAABL} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +void* \par +}}}} +{\xe \v _preloaderGetReady\:FSM_public.h} +{\xe \v FSM_public.h\:_preloaderGetReady} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void _preloaderGetReady (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAABM} +{\bkmkend AAAAAAAABM} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +{\xe \v _getPreloaderOverFlag\:FSM_public.h} +{\xe \v FSM_public.h\:_getPreloaderOverFlag} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +int _getPreloaderOverFlag (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAABN} +{\bkmkend AAAAAAAABN} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +int \par +}}}} +{\xe \v _clearPreloaderOverFlag\:FSM_public.h} +{\xe \v FSM_public.h\:_clearPreloaderOverFlag} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void _clearPreloaderOverFlag (FSM * {\i pFSM})}} +\par +{\bkmkstart AAAAAAAABO} +{\bkmkend AAAAAAAABO} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +\par \pard\plain + \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid @@ -1184,56 +2047,54 @@ FSM_public.h\par \pard\plain {\xe \v FSM_OOP/baseFSM/FSM_public.h} {\bkmkstart AAAAAAAAAC} {\bkmkend AAAAAAAAAC} +Go to the documentation of this file.\par { -\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf20 /*}\par -2 {\cf20 * @Author: godcreator02 qq974980621@gmail.com}\par -3 {\cf20 * @Date: 2024-04-20 18:52:14}\par -4 {\cf20 * @LastEditors: godcreator02 qq974980621@gmail.com}\par -5 {\cf20 * @LastEditTime: 2024-04-23 21:51:55}\par -6 {\cf20 * @FilePath: \\vscode\\FSM_OOP\\baseFSM\\FSM_public.h}\par -7 {\cf20 * @Description: \'E8\'BF\'99\'E6\'98\'AF\'E9\'BB\'98\'E8\'AE\'A4\'E8\'AE\'BE\'E7\'BD\'AE,\'E8\'AF\'B7\'E8\'AE\'BE\'E7\'BD\'AE`customMade`, \'E6\'89\'93\'E5\'BC\'80koroFileHeader\'E6\'9F\'A5\'E7\'9C\'8B\'E9\'85\'8D\'E7\'BD\'AE \'E8\'BF\'9B\'E8\'A1\'8C\'E8\'AE\'BE\'E7\'BD\'AE: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE}\par -8 {\cf20 */}\par -9 {\cf21 #ifndef __FSM_PUBLIC_H_}\par -10 {\cf21 #define __FSM_PUBLIC_H_}\par -11 \par -12 {\cf17 typedef} {\cf18 unsigned} {\cf18 int} Uint16;\par -13 {\cf17 typedef} {\cf18 unsigned} {\cf18 long} Uint32;\par -14 \par -15 {\cf21 #define BASE_FSM(ptr) ((FSM *)(ptr))}\par -16 {\cf21 #define BASE_PTR (FSM *)}\par -17 \par -18 {\cf17 typedef} {\cf17 struct }FSM FSM;\par +\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par +11 {\cf21 #ifndef __FSM_PUBLIC_H_}\par +12 {\cf21 #define __FSM_PUBLIC_H_}\par +13 \par +14 {\cf17 typedef} {\cf18 unsigned} {\cf18 int} Uint16;\par +15 {\cf17 typedef} {\cf18 unsigned} {\cf18 long} Uint32;\par +16 \par +17 {\cf21 #define BASE_FSM(ptr) ((FSM *)(ptr))}\par +18 {\cf21 #define BASE_PTR (FSM *)}\par 19 \par -20 {\cf20 /* -------------------------------- \'E9\'81\'BF\'E5\'85\'8D\'E8\'AD\'A6\'E5\'91\'8A\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'E5\'AE\'9A\'E4\'B9\'89 ------------------------------- */}\par -21 {\cf21 #define Step(pFSM) _stepFSM((FSM *)pFSM)}\par -22 {\cf21 #define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM);}\par -23 {\cf21 #define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM)}\par -24 {\cf21 #define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM)}\par -25 {\cf21 #define GetData(pFSM) _getData((FSM*)pFSM)}\par -26 {\cf21 #define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal)}\par -27 \par +20 {\cf17 typedef} {\cf17 struct }FSM FSM;\par +21 \par +22 {\cf17 typedef} {\cf17 struct }FSMPublicFcns\par +23 \{\par +24 void (*step)(FSM *pFSM); {\cf20 // \'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'8F\'AF\'E4\'BB\'A5\'E6\'B7\'BB\'E5\'8A\'A0\'E4\'B8\'80\'E4\'BA\'9B\'E6\'89\'93\'E5\'8D\'B0\'E4\'BF\'A1\'E6\'81\'AF}\par +25 void (*reset)(FSM *pFSM); {\cf20 // \'E5\'AD\'90\'E7\'B1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'8F\'AF\'E4\'BB\'A5\'E6\'B7\'BB\'E5\'8A\'A0\'E4\'B8\'80\'E4\'BA\'9B\'E6\'89\'93\'E5\'8D\'B0\'E4\'BF\'A1\'E6\'81\'AF}\par +26 \par +27 \}FSMPublicFcns;\par 28 \par -29 \par -30 {\cf18 void} _stepFSM(FSM *pFSM);\par -31 {\cf20 /* --------------------------------- \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E4\'BF\'A1\'E6\'81\'AF\'E8\'8E\'B7\'E5\'8F\'96 -------------------------------- */}\par -32 {\cf18 int} getFSMCurState(FSM *pFSM);\par -33 {\cf18 int} getFSMNextState(FSM *pFSM);\par -34 {\cf18 void} setChildNum(FSM *pFSM, {\cf18 int} num);\par -35 {\cf18 void} registerChildFSM(FSM *parent, FSM *child, {\cf18 int} index);\par -36 \par -37 {\cf20 /* ------------------------------ Data\'E5\'92\'8CSignals ------------------------------ */}\par -38 {\cf17 const} {\cf18 void} *_getData(FSM* pFSM);\par -39 {\cf18 void} _setSignal(FSM *pFSM, Uint16 signalFlag);\par -40 \par -41 {\cf20 /* ---------------------------------- \'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8 ---------------------------------- */}\par -42 {\cf18 void} *_preloadIn(FSM *pFSM);\par -43 {\cf18 void} _preloaderGetReady(FSM *pFSM);\par -44 {\cf18 int} _getPreloaderOverFlag(FSM *pFSM);\par -45 {\cf18 void} _clearPreloaderOverFlag(FSM *pFSM);\par +29 {\cf20 /* -------------------------------- \'E9\'81\'BF\'E5\'85\'8D\'E8\'AD\'A6\'E5\'91\'8A\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'E5\'AE\'9A\'E4\'B9\'89 ------------------------------- */}\par +30 {\cf21 #define Step(pFSM) _stepFSM((FSM *)pFSM) }\par +31 {\cf21 #define GetData(pFSM) _getData((FSM*)pFSM) }\par +32 {\cf21 #define SetSignal(pFSM, signal) _setSignal((FSM*)pFSM, signal) }\par +35 {\cf21 #define PreloaderGetReady(pFSM) _preloaderGetReady((FSM *)pFSM); }\par +36 {\cf21 #define GetPreloaderOverFlag(pFSM) _getPreloaderOverFlag((FSM *)pFSM) }\par +37 {\cf21 #define ClearPreloaderOverFlag(pFSM) _clearPreloaderOverFlag((FSM *)pFSM) }\par +40 {\cf18 void} _stepFSM(FSM *pFSM);\par +41 {\cf20 /* --------------------------------- \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E4\'BF\'A1\'E6\'81\'AF\'E8\'8E\'B7\'E5\'8F\'96 -------------------------------- */}\par +42 {\cf18 int} getFSMCurState(FSM *pFSM);\par +43 {\cf18 int} getFSMNextState(FSM *pFSM);\par +44 {\cf18 void} setChildNum(FSM *pFSM, {\cf18 int} num);\par +45 {\cf18 void} registerChildFSM(FSM *parent, FSM *child, {\cf18 int} index);\par 46 \par -47 \par -48 \par -49 {\cf21 #endif}\par +47 {\cf20 /* ------------------------------ Data\'E5\'92\'8CSignals ------------------------------ */}\par +48 {\cf17 const} {\cf18 void} *_getData(FSM* pFSM);\par +49 {\cf18 void} _setSignal(FSM *pFSM, Uint16 signalFlag);\par +50 \par +51 {\cf20 /* ---------------------------------- \'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8 ---------------------------------- */}\par +52 {\cf18 void} *_preloadIn(FSM *pFSM);\par +53 {\cf18 void} _preloaderGetReady(FSM *pFSM);\par +54 {\cf18 int} _getPreloaderOverFlag(FSM *pFSM);\par +55 {\cf18 void} _clearPreloaderOverFlag(FSM *pFSM);\par +56 \par +57 \par +58 \par +59 {\cf21 #endif}\par } \par \pard\plain @@ -1782,6 +2643,469 @@ keyFSM_private.h\par \pard\plain } \par \pard\plain +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +FSM_OOP/template/templateFSM.c File Reference\par \pard\plain +{\tc\tcl2 \v FSM_OOP/template/templateFSM.c} +{\xe \v FSM_OOP/template/templateFSM.c} +{\bkmkstart AAAAAAAABP} +{\bkmkend AAAAAAAABP} +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'87\'A0\'E4\'B8\'AA\'E5\'BF\'85\'E9\'A1\'BB\'E5\'AE\'9E\'E7\'8E\'B0\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'B9\'B6\'E8\'B5\'8B\'E5\'80\'BC\'E5\'88\'B0\'E7\'88\'B6\'E7\'B1\'BB\'E6\'8C\'87\'E9\'92\'88\'E9\'87\'8C }}\par +{ +\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par +{\f2 #include }\par +{\f2 #include }\par +{\f2 #include "FSM_protected.h"}\par +{\f2 #include "templateFSM.h"}\par +{\f2 #include "templateFSM_private.h"}\par +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Functions\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b loadExternalData} (TemplateFSMData *data)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b resetSignals} ({\b FSMSignals} *signals, TemplateFSMData *data)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E6\'A0\'B9\'E6\'8D\'AE\'E6\'9D\'A1\'E4\'BB\'B6\'E9\'87\'8D\'E7\'BD\'AE\'E4\'BF\'A1\'E5\'8F\'B7 }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b initData} (TemplateFSM *pFSM)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'BB\'99\'E6\'89\'80\'E6\'9C\'89\'E5\'86\'85\'E9\'83\'A8\'E3\'80\'81\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE\'E5\'88\'86\'E9\'85\'8D\'E5\'A0\'86\'E7\'A9\'BA\'E9\'97\'B4 }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b initDataLoader} (TemplateFSM *pFSM)\par +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b setupHandler} ({\b FSMHandler} *fcns)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'AE\'BE\'E7\'BD\'AE\'E7\'8A\'B6\'E6\'80\'81\'E9\'80\'89\'E6\'8B\'A9\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'81\'E7\'8A\'B6\'E6\'80\'81\'E5\'86\'85\'E5\'87\'BD\'E6\'95\'B0\'E5\'92\'8C\'E7\'8A\'B6\'E6\'80\'81\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0 }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +static void {\b step} (TemplateFSM *pFSM)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'9A\'84step\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E6\'B7\'BB\'E5\'8A\'A0\'E4\'B8\'80\'E4\'BA\'9B\'E6\'89\'93\'E5\'8D\'B0\'E4\'BF\'A1\'E6\'81\'AF }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +TemplateFSM * {\b createTemplateFSM} ()\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Create a Template FSM object. }{ +}\par +}\par} +} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'87\'A0\'E4\'B8\'AA\'E5\'BF\'85\'E9\'A1\'BB\'E5\'AE\'9E\'E7\'8E\'B0\'E7\'9A\'84\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E5\'B9\'B6\'E8\'B5\'8B\'E5\'80\'BC\'E5\'88\'B0\'E7\'88\'B6\'E7\'B1\'BB\'E6\'8C\'87\'E9\'92\'88\'E9\'87\'8C \par +}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Author\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn}) \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2.1 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2024-05-07\par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Copyright\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E\'E5\'88\'9B\'E6\'84\'8F\'E6\'97\'A0\'E9\'99\'90\'E5\'85\'AC\'E5\'8F\'B8 2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v loadExternalData\:templateFSM.c} +{\xe \v templateFSM.c\:loadExternalData} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void loadExternalData (TemplateFSMData * {\i data}){\f2 [static]}}} +\par +{\bkmkstart AAAAAAAABQ} +{\bkmkend AAAAAAAABQ} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E6\'9A\'82\'E6\'97\'B6\'E6\'B2\'A1\'E7\'94\'A8\'EF\'BC\'8C\'E5\'90\'8E\'E7\'BB\'AD\'E8\'80\'83\'E8\'99\'91data\'E6\'98\'AF\'E5\'90\'A6\'E9\'9C\'80\'E8\'A6\'81\'E5\'8A\'A0\'E9\'94\'81\'E5\'86\'8D\'E8\'AF\'B4 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i data} \cell }{\'E4\'B8\'BB\'E8\'A6\'81\'E6\'98\'AF\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE \cell } +{\row } +} +}} +{\xe \v resetSignals\:templateFSM.c} +{\xe \v templateFSM.c\:resetSignals} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void resetSignals ({\b FSMSignals} * {\i signals}, TemplateFSMData * {\i data}){\f2 [static]}}} +\par +{\bkmkstart AAAAAAAABR} +{\bkmkend AAAAAAAABR} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E6\'A0\'B9\'E6\'8D\'AE\'E6\'9D\'A1\'E4\'BB\'B6\'E9\'87\'8D\'E7\'BD\'AE\'E4\'BF\'A1\'E5\'8F\'B7 }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E6\'B8\'85\'E9\'99\'A4\'E8\'A2\'AB\'E5\'93\'8D\'E5\'BA\'94\'E4\'BF\'A1\'E5\'8F\'B7\'E5\'92\'8C\'E6\'89\'80\'E6\'9C\'89\'E5\'B0\'8F\'E4\'BA\'8E\'E8\'A2\'AB\'E5\'93\'8D\'E5\'BA\'94\'E4\'BF\'A1\'E5\'8F\'B7\'E4\'BC\'98\'E5\'85\'88\'E7\'BA\'A7\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E5\'85\'B7\'E4\'BD\'93\'E5\'8F\'AF\'E4\'BB\'A5\'E5\'8F\'82\'E8\'80\'83notion {\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i signals} \cell }{\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'8E\'A5\'E6\'94\'B6\'E5\'88\'B0\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7 \cell } +{\row } +\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i data} \cell }{\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'95\'B0\'E6\'8D\'AE \cell } +{\row } +} +}} +{\xe \v initData\:templateFSM.c} +{\xe \v templateFSM.c\:initData} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void initData (TemplateFSM * {\i pFSM}){\f2 [static]}}} +\par +{\bkmkstart AAAAAAAABS} +{\bkmkend AAAAAAAABS} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'BB\'99\'E6\'89\'80\'E6\'9C\'89\'E5\'86\'85\'E9\'83\'A8\'E3\'80\'81\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE\'E5\'88\'86\'E9\'85\'8D\'E5\'A0\'86\'E7\'A9\'BA\'E9\'97\'B4 }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +{\xe \v initDataLoader\:templateFSM.c} +{\xe \v templateFSM.c\:initDataLoader} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void initDataLoader (TemplateFSM * {\i pFSM}){\f2 [static]}}} +\par +{\bkmkstart AAAAAAAABT} +{\bkmkend AAAAAAAABT} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E5\'BC\'83\'E7\'94\'A8 \par +} +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\cell } +{\row } +} +}} +{\xe \v setupHandler\:templateFSM.c} +{\xe \v templateFSM.c\:setupHandler} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void setupHandler ({\b FSMHandler} * {\i fcns}){\f2 [static]}}} +\par +{\bkmkstart AAAAAAAABU} +{\bkmkend AAAAAAAABU} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'AE\'BE\'E7\'BD\'AE\'E7\'8A\'B6\'E6\'80\'81\'E9\'80\'89\'E6\'8B\'A9\'E5\'87\'BD\'E6\'95\'B0\'E3\'80\'81\'E7\'8A\'B6\'E6\'80\'81\'E5\'86\'85\'E5\'87\'BD\'E6\'95\'B0\'E5\'92\'8C\'E7\'8A\'B6\'E6\'80\'81\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0 }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i fcns} \cell }{\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'87\'BD\'E6\'95\'B0\'E8\'A1\'A8 \cell } +{\row } +} +}} +{\xe \v step\:templateFSM.c} +{\xe \v templateFSM.c\:step} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +static void step (TemplateFSM * {\i pFSM}){\f2 [static]}}} +\par +{\bkmkstart AAAAAAAABV} +{\bkmkend AAAAAAAABV} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'9A\'84step\'E5\'87\'BD\'E6\'95\'B0\'EF\'BC\'8C\'E6\'B7\'BB\'E5\'8A\'A0\'E4\'B8\'80\'E4\'BA\'9B\'E6\'89\'93\'E5\'8D\'B0\'E4\'BF\'A1\'E6\'81\'AF }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pFSM} \cell }{\'E5\'AD\'90\'E7\'B1\'BB\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'8C\'87\'E9\'92\'88 \cell } +{\row } +} +}} +{\xe \v createTemplateFSM\:templateFSM.c} +{\xe \v templateFSM.c\:createTemplateFSM} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +TemplateFSM * createTemplateFSM ()}} +\par +{\bkmkstart AAAAAAAABW} +{\bkmkend AAAAAAAABW} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Create a Template FSM object. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'AD\'90\'E7\'B1\'BB\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'BB\'86\'E8\'8A\'82\'E5\'AF\'B9\'E5\'A4\'96\'E9\'9A\'90\'E8\'97\'8F\'EF\'BC\'8C\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AA\'E8\'83\'BD\'E8\'AE\'BF\'E9\'97\'AE\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'9A\'84\'E5\'85\'AC\'E6\'9C\'89\'E5\'87\'BD\'E6\'95\'B0\'E6\'9D\'A5\'E6\'93\'8D\'E4\'BD\'9C\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'98\'E9\'87\'8F \par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +TemplateFSM* \par +}}}} +\par \pard\plain + +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +FSM_OOP/template/templateFSM.h File Reference\par \pard\plain +{\tc\tcl2 \v FSM_OOP/template/templateFSM.h} +{\xe \v FSM_OOP/template/templateFSM.h} +{\bkmkstart AAAAAAAABX} +{\bkmkend AAAAAAAABX} +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'AF\'B9\'E5\'A4\'96\'E6\'9A\'B4\'E9\'9C\'B2\'E6\'8E\'A5\'E5\'8F\'A3\'EF\'BC\'8C\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BE\'E7\'BD\'AE\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7 }}\par +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Data Structures\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +struct {\b TemplateFSMExternalData}{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +struct {\b TemplateFSMInnerData}{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par} +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macros\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b TemplateFSM_Input}(pFSM)\~ (({\b TemplateFSMExternalData} *){\b _preloadIn}((FSM *)pFSM))\par +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Typedefs\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid + +typedef struct TemplateFSMExternalData {\b TemplateFSMExternalData}{\bkmkstart AAAAAAAABY} +{\bkmkend AAAAAAAABY} +\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }{ +}\par +}\par} +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid + +typedef struct TemplateFSMInnerData {\b TemplateFSMInnerData}{\bkmkstart AAAAAAAABZ} +{\bkmkend AAAAAAAABZ} +\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }{ +}\par +}\par} +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Enumerations\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +enum {\b TemplateFSMSignals} \{ {\b Signal_A} = 1 +, {\b Signal_B} + \}\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E7\'9B\'AE\'E5\'89\'8D\'E6\'9C\'80\'E5\'A4\'9A15\'E4\'B8\'AA }}\par} +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Functions\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +TemplateFSM * {\b createTemplateFSM} ()\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Create a Template FSM object. }{ +}\par +}\par} +} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'AF\'B9\'E5\'A4\'96\'E6\'9A\'B4\'E9\'9C\'B2\'E6\'8E\'A5\'E5\'8F\'A3\'EF\'BC\'8C\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AF\'E4\'BB\'A5\'E8\'AE\'BE\'E7\'BD\'AE\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7 \par +}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Author\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn}) \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2.1 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2024-05-07\par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Copyright\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E\'E5\'88\'9B\'E6\'84\'8F\'E6\'97\'A0\'E9\'99\'90\'E5\'85\'AC\'E5\'8F\'B8 2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macro Definition Documentation\par +\pard\plain +{\xe \v TemplateFSM_Input\:templateFSM.h} +{\xe \v templateFSM.h\:TemplateFSM_Input} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define TemplateFSM_Input( pFSM)\~ (({\b TemplateFSMExternalData} *){\b _preloadIn}((FSM *)pFSM))}} +\par +{\bkmkstart AAAAAAAACA} +{\bkmkend AAAAAAAACA} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Deprecated:\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid \'E6\'9A\'82\'E6\'97\'B6\'E5\'BC\'83\'E7\'94\'A8 \par +} +}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Enumeration Type Documentation\par +\pard\plain +{\xe \v TemplateFSMSignals\:templateFSM.h} +{\xe \v templateFSM.h\:TemplateFSMSignals} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +enum {\b TemplateFSMSignals}}} +\par +{\bkmkstart AAAAAAAACB} +{\bkmkend AAAAAAAACB} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E4\'BF\'A1\'E5\'8F\'B7\'EF\'BC\'8C\'E7\'9B\'AE\'E5\'89\'8D\'E6\'9C\'80\'E5\'A4\'9A15\'E4\'B8\'AA }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'9B\'A0\'E4\'B8\'BA\'E6\'98\'AFUnint16\'E5\'AD\'98\'E5\'82\'A8\'E7\'9A\'84\'E4\'BF\'A1\'E5\'8F\'B7\'E4\'BD\'8D \par +}{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Enumerator:\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{\xe \v Signal_A\:templateFSM.h} +{\xe \v templateFSM.h\:Signal_A} +{\qr Signal_A{\bkmkstart AAAAAAAACC} +{\bkmkend AAAAAAAACC} +\cell }{{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'BF\'85\'E9\'A1\'BB\'E4\'BB\'8E1\'E5\'BC\'80\'E5\'A7\'8B\'EF\'BC\'8C0\'E9\'A2\'84\'E7\'95\'99\'E7\'BB\'99Idle\'E4\'BF\'A1\'E5\'8F\'B7\'E4\'BA\'86 \par +}\cell }{\row } +} +} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v createTemplateFSM\:templateFSM.h} +{\xe \v templateFSM.h\:createTemplateFSM} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +TemplateFSM * createTemplateFSM ()}} +\par +{\bkmkstart AAAAAAAACD} +{\bkmkend AAAAAAAACD} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Create a Template FSM object. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'AD\'90\'E7\'B1\'BB\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'BB\'86\'E8\'8A\'82\'E5\'AF\'B9\'E5\'A4\'96\'E9\'9A\'90\'E8\'97\'8F\'EF\'BC\'8C\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'AA\'E8\'83\'BD\'E8\'AE\'BF\'E9\'97\'AE\'E5\'9F\'BA\'E7\'B1\'BB\'E7\'9A\'84\'E5\'85\'AC\'E6\'9C\'89\'E5\'87\'BD\'E6\'95\'B0\'E6\'9D\'A5\'E6\'93\'8D\'E4\'BD\'9C\'E5\'AD\'90\'E7\'B1\'BB\'E5\'8F\'98\'E9\'87\'8F \par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +TemplateFSM* \par +}}}} +\par \pard\plain + \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid @@ -1790,52 +3114,191 @@ templateFSM.h\par \pard\plain {\xe \v FSM_OOP/template/templateFSM.h} {\bkmkstart AAAAAAAAAI} {\bkmkend AAAAAAAAAI} +Go to the documentation of this file.\par { -\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifndef __TEMPLATE_FSM_H_}\par -2 {\cf21 #define __TEMPLATE_FSM_H_}\par -3 \par -4 {\cf20 /* -------------------------------------------------------------------------- */}\par -5 {\cf20 /* \'E6\'8F\'90\'E5\'89\'8D\'E5\'81\'9A\'E7\'B1\'BB\'E5\'9E\'8B\'E5\'A3\'B0\'E6\'98\'8E */}\par -6 {\cf20 /* -------------------------------------------------------------------------- */}\par -7 \par -8 \par -9 {\cf20 /* -------------------------------------------------------------------------- */}\par -10 {\cf20 /* \'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E6\'95\'B0\'E6\'8D\'AE\'E5\'92\'8C\'E4\'BF\'A1\'E5\'8F\'B7 */}\par -11 {\cf20 /* -------------------------------------------------------------------------- */}\par -16 {\cf17 enum} TemplateFSMSignals\{\par -17 Signal_A = 1, \par -18 Signal_B,\par -19 \};\par -20 \par -25 {\cf17 typedef} {\cf17 struct }_templateFSMExternalData\par -26 \{\par -27 {\cf18 int} arrindex;\par -28 {\cf18 int} x;\par -29 \}TemplateFSMExternalData;\par -30 \par -31 \par -36 {\cf17 typedef} {\cf17 struct }_templateFSMInnerData\par -37 \{\par -38 {\cf18 int} y1;\par -39 {\cf18 int} inner1;\par -40 \}TemplateFSMInnerData;\par -41 \par -42 {\cf20 /* -------------------------------------------------------------------------- */}\par -43 {\cf20 /* \'E4\'B8\'8B\'E9\'9D\'A2\'E7\'9A\'84\'E6\'94\'B9\'E4\'B8\'AA\'E5\'90\'8D\'E5\'AD\'97\'E5\'B0\'B1\'E8\'A1\'8C\'E4\'BA\'86 */}\par -44 {\cf20 /* -------------------------------------------------------------------------- */}\par -45 {\cf21 #define TemplateFSM_Input(pFSM) ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM))}\par -46 \par -47 {\cf17 typedef} {\cf17 struct }_templateFSMData\par -48 \{\par -49 TemplateFSMExternalData external;\par -50 TemplateFSMInnerData internal;\par -51 \}TemplateFSMData;\par -52 \par -53 {\cf17 typedef} {\cf17 struct }_TemplateFSM TemplateFSM;\par -54 TemplateFSM *createTemplateFSM();\par -55 \par -56 \par -57 {\cf21 #endif}\par +\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par +12 {\cf21 #ifndef __TEMPLATE_FSM_H_}\par +13 {\cf21 #define __TEMPLATE_FSM_H_}\par +14 \par +15 {\cf20 /* -------------------------------------------------------------------------- */}\par +16 {\cf20 /* \'E6\'8F\'90\'E5\'89\'8D\'E5\'81\'9A\'E7\'B1\'BB\'E5\'9E\'8B\'E5\'A3\'B0\'E6\'98\'8E */}\par +17 {\cf20 /* -------------------------------------------------------------------------- */}\par +18 \par +19 \par +20 {\cf20 /* -------------------------------------------------------------------------- */}\par +21 {\cf20 /* \'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E6\'95\'B0\'E6\'8D\'AE\'E5\'92\'8C\'E4\'BF\'A1\'E5\'8F\'B7 */}\par +22 {\cf20 /* -------------------------------------------------------------------------- */}\par +28 {\cf17 enum} TemplateFSMSignals\{\par +29 Signal_A = 1, \par +30 Signal_B,\par +31 \};\par +32 \par +37 {\cf17 typedef} {\cf17 struct }TemplateFSMExternalData\par +38 \{\par +39 {\cf18 int} arrindex;\par +40 {\cf18 int} x;\par +41 \}TemplateFSMExternalData;\par +42 \par +43 \par +48 {\cf17 typedef} {\cf17 struct }TemplateFSMInnerData\par +49 \{\par +50 {\cf18 int} y1;\par +51 {\cf18 int} inner1;\par +52 \}TemplateFSMInnerData;\par +53 \par +54 {\cf20 /* -------------------------------------------------------------------------- */}\par +55 {\cf20 /* \'E4\'B8\'8B\'E9\'9D\'A2\'E7\'9A\'84\'E6\'94\'B9\'E4\'B8\'AA\'E5\'90\'8D\'E5\'AD\'97\'E5\'B0\'B1\'E8\'A1\'8C\'E4\'BA\'86 */}\par +56 {\cf20 /* -------------------------------------------------------------------------- */}\par +57 {\cf21 #define TemplateFSM_Input(pFSM) ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM)) }\par +59 {\cf17 typedef} {\cf17 struct }TemplateFSMData\par +60 \{\par +61 TemplateFSMExternalData external;\par +62 TemplateFSMInnerData internal;\par +63 \}TemplateFSMData;\par +64 \par +65 {\cf17 typedef} {\cf17 struct }TemplateFSM TemplateFSM;\par +66 TemplateFSM *createTemplateFSM();\par +67 \par +68 \par +69 {\cf21 #endif}\par +} +\par \pard\plain + +\pard\plain \sect\sbkpage +\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid +FSM_OOP/template/templateFSM_private.h File Reference\par \pard\plain +{\tc\tcl2 \v FSM_OOP/template/templateFSM_private.h} +{\xe \v FSM_OOP/template/templateFSM_private.h} +{\bkmkstart AAAAAAAACE} +{\bkmkend AAAAAAAACE} +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'94\'A8\'E6\'9D\'A5\'E5\'A3\'B0\'E6\'98\'8E\'E7\'8A\'B6\'E6\'80\'81\'E3\'80\'81\'E7\'8A\'B6\'E6\'80\'81\'E5\'87\'BD\'E6\'95\'B0\'E7\'AD\'89\'E3\'80\'82\'E8\'BF\'99\'E4\'B8\'AA\'E6\'96\'87\'E4\'BB\'B6\'E5\'8F\'AA\'E8\'83\'BD\'E8\'A2\'ABtemplateFSM.c\'E5\'BC\'95\'E7\'94\'A8\'E4\'B8\'80\'E6\'AC\'A1\'EF\'BC\'81 }}\par +{ +\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include "FSM_protected.h"}\par +{\f2 #include "templateFSM.h"}\par +{\f2 #include }\par +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macros\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +#define {\b DEFAULT_STATE}\~ E\par +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Typedefs\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid + +typedef enum _State {\b State}{\bkmkstart AAAAAAAACF} +{\bkmkend AAAAAAAACF} +\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'86\'85\'E7\'8A\'B6\'E6\'80\'81\'E5\'AE\'9A\'E4\'B9\'89\'EF\'BC\'8CIdle\'E5\'92\'8CCount_State\'E5\'BF\'85\'E9\'A1\'BB\'E5\'8D\'A0\'E6\'8D\'AE\'E5\'BC\'80\'E5\'A4\'B4\'E5\'92\'8C\'E7\'BB\'93\'E5\'B0\'BE\'E4\'B8\'A4\'E4\'B8\'AA\'E4\'BD\'8D\'E7\'BD\'AE }{ +}\par +}\par} +} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Enumerations\par +\pard\plain + +{ +\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid +enum {\b _State} \{ {\b Idle} +, {\b D} +, {\b E} +, {\b Count_State} + \}\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'86\'85\'E7\'8A\'B6\'E6\'80\'81\'E5\'AE\'9A\'E4\'B9\'89\'EF\'BC\'8CIdle\'E5\'92\'8CCount_State\'E5\'BF\'85\'E9\'A1\'BB\'E5\'8D\'A0\'E6\'8D\'AE\'E5\'BC\'80\'E5\'A4\'B4\'E5\'92\'8C\'E7\'BB\'93\'E5\'B0\'BE\'E4\'B8\'A4\'E4\'B8\'AA\'E4\'BD\'8D\'E7\'BD\'AE }}\par} +} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Detailed Description\par +\pard\plain +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'94\'A8\'E6\'9D\'A5\'E5\'A3\'B0\'E6\'98\'8E\'E7\'8A\'B6\'E6\'80\'81\'E3\'80\'81\'E7\'8A\'B6\'E6\'80\'81\'E5\'87\'BD\'E6\'95\'B0\'E7\'AD\'89\'E3\'80\'82\'E8\'BF\'99\'E4\'B8\'AA\'E6\'96\'87\'E4\'BB\'B6\'E5\'8F\'AA\'E8\'83\'BD\'E8\'A2\'ABtemplateFSM.c\'E5\'BC\'95\'E7\'94\'A8\'E4\'B8\'80\'E6\'AC\'A1\'EF\'BC\'81 \par +}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Author\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E ({\f2 dalaoshi@stu.xjtu.edu.cn}) \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2.1 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +2024-05-07\par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Copyright\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +\'E5\'A4\'A9\'E7\'A5\'9E\'E5\'88\'9B\'E6\'84\'8F\'E6\'97\'A0\'E9\'99\'90\'E5\'85\'AC\'E5\'8F\'B8 2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macro Definition Documentation\par +\pard\plain +{\xe \v DEFAULT_STATE\:templateFSM_private.h} +{\xe \v templateFSM_private.h\:DEFAULT_STATE} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define DEFAULT_STATE\~ E}} +\par +{\bkmkstart AAAAAAAACG} +{\bkmkend AAAAAAAACG} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E9\'BB\'98\'E8\'AE\'A4\'E7\'8A\'B6\'E6\'80\'81\'EF\'BC\'8CIdle\'E7\'8A\'B6\'E6\'80\'81\'E4\'BC\'9A\'E5\'85\'88\'E8\'B7\'B3\'E8\'BD\'AC\'E5\'88\'B0\'E9\'BB\'98\'E8\'AE\'A4\'E7\'8A\'B6\'E6\'80\'81 \par +}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Enumeration Type Documentation\par +\pard\plain +{\xe \v _State\:templateFSM_private.h} +{\xe \v templateFSM_private.h\:_State} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +enum _State}} +\par +{\bkmkstart AAAAAAAACH} +{\bkmkend AAAAAAAACH} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E5\'86\'85\'E7\'8A\'B6\'E6\'80\'81\'E5\'AE\'9A\'E4\'B9\'89\'EF\'BC\'8CIdle\'E5\'92\'8CCount_State\'E5\'BF\'85\'E9\'A1\'BB\'E5\'8D\'A0\'E6\'8D\'AE\'E5\'BC\'80\'E5\'A4\'B4\'E5\'92\'8C\'E7\'BB\'93\'E5\'B0\'BE\'E4\'B8\'A4\'E4\'B8\'AA\'E4\'BD\'8D\'E7\'BD\'AE }}\par +{\par +{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid +Enumerator:\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{\xe \v Idle\:templateFSM_private.h} +{\xe \v templateFSM_private.h\:Idle} +{\qr Idle{\bkmkstart AAAAAAAACI} +{\bkmkend AAAAAAAACI} +\cell }{{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'BF\'85\'E9\'A1\'BB\'E5\'9C\'A8\'E5\'BC\'80\'E5\'A4\'B4\'EF\'BC\'8C\'E5\'B9\'B6\'E4\'B8\'94\'E6\'9E\'9A\'E4\'B8\'BE\'E5\'80\'BC=0 \par +}\cell }{\row } +{\xe \v Count_State\:templateFSM_private.h} +{\xe \v templateFSM_private.h\:Count_State} +{\qr Count_State{\bkmkstart AAAAAAAACJ} +{\bkmkend AAAAAAAACJ} +\cell }{{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +\'E5\'BF\'85\'E9\'A1\'BB\'E5\'9C\'A8\'E7\'BB\'93\'E5\'B0\'BE\'EF\'BC\'8C\'E7\'94\'A8\'E6\'9D\'A5\'E7\'BB\'9F\'E8\'AE\'A1\'E7\'8A\'B6\'E6\'80\'81\'E6\'95\'B0\'E9\'87\'8F \par +}\cell }{\row } +} } \par \pard\plain @@ -1847,150 +3310,156 @@ templateFSM_private.h\par \pard\plain {\xe \v FSM_OOP/template/templateFSM_private.h} {\bkmkstart AAAAAAAAAJ} {\bkmkend AAAAAAAAAJ} +Go to the documentation of this file.\par { -\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifdef __TEMPLATE_PRIVATE_FSM_H_}\par -2 {\cf21 #error This file can only be included once!!!}\par -3 \par -4 {\cf21 #else}\par -5 {\cf21 #define __TEMPLATE_PRIVATE_FSM_H_}\par -6 \par -7 {\cf21 #include "FSM_protected.h"}\par -8 {\cf21 #include "templateFSM.h"}\par -9 {\cf21 #include }\par -10 \par -11 {\cf20 /* -------------------------------------------------------------------------- */}\par -12 {\cf20 /* \'E7\'94\'A8\'E5\'88\'B0\'E7\'9A\'84\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'98\'E9\'87\'8F */}\par -13 {\cf20 /* -------------------------------------------------------------------------- */}\par -14 {\cf17 extern} {\cf18 int} arrindex;\par -15 {\cf17 extern} {\cf18 int} x;\par -16 \par +\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par +12 {\cf21 #ifdef __TEMPLATE_PRIVATE_FSM_H_}\par +13 {\cf21 #error This file can only be included once!!!}\par +14 \par +15 {\cf21 #else}\par +16 {\cf21 #define __TEMPLATE_PRIVATE_FSM_H_}\par 17 \par -18 {\cf20 /* -------------------------------------------------------------------------- */}\par -19 {\cf20 /* \'E7\'BB\'A7\'E6\'89\'BF\'E5\'9F\'BA\'E7\'B1\'BB */}\par -20 {\cf20 /* -------------------------------------------------------------------------- */}\par -21 {\cf17 typedef} {\cf17 struct }_TemplateFSM\par -22 \{ \par -23 FSM base;\par -24 \}TemplateFSM;\par -25 \par -26 {\cf20 /* -------------------------------------------------------------------------- */}\par -27 {\cf20 /* \'E7\'8A\'B6\'E6\'80\'81\'E5\'AE\'9A\'E4\'B9\'89 */}\par -28 {\cf20 /* -------------------------------------------------------------------------- */}\par -29 {\cf17 typedef} {\cf17 enum} _State\par -30 \{\par -31 Idle,\par -32 D,\par -33 E,\par -34 \par -35 Count_State,\par -36 \} State;\par -37 {\cf21 #define DEFAULT_STATE E}\par -38 \par +18 {\cf21 #include "FSM_protected.h"}\par +19 {\cf21 #include "templateFSM.h"}\par +20 {\cf21 #include }\par +21 \par +22 {\cf20 /* -------------------------------------------------------------------------- */}\par +23 {\cf20 /* \'E7\'94\'A8\'E5\'88\'B0\'E7\'9A\'84\'E5\'A4\'96\'E9\'83\'A8\'E5\'8F\'98\'E9\'87\'8F */}\par +24 {\cf20 /* -------------------------------------------------------------------------- */}\par +25 {\cf17 extern} {\cf18 int} arrindex;\par +26 {\cf17 extern} {\cf18 int} x;\par +27 \par +28 \par +29 {\cf20 /* -------------------------------------------------------------------------- */}\par +30 {\cf20 /* \'E7\'BB\'A7\'E6\'89\'BF\'E5\'9F\'BA\'E7\'B1\'BB */}\par +31 {\cf20 /* -------------------------------------------------------------------------- */}\par +32 {\cf17 typedef} {\cf17 struct }TemplateFSM\par +33 \{ \par +34 FSM base;\par +35 \}TemplateFSM;\par +36 \par +37 {\cf20 /* -------------------------------------------------------------------------- */}\par +38 {\cf20 /* \'E7\'8A\'B6\'E6\'80\'81\'E5\'AE\'9A\'E4\'B9\'89 */}\par 39 {\cf20 /* -------------------------------------------------------------------------- */}\par -40 {\cf20 /* \'E4\'B8\'8B\'E4\'B8\'80\'E4\'B8\'AA\'E7\'8A\'B6\'E6\'80\'81\'E9\'80\'89\'E6\'8B\'A9\'E5\'87\'BD\'E6\'95\'B0 */}\par -41 {\cf20 /* -------------------------------------------------------------------------- */}\par -42 \par -43 \par -44 {\cf17 static} State selectNextStateFcn(D)(TemplateFSMData *data, FSMSignals *signals)\{\par -45 {\cf19 if}(getSignal(signals, Signal_A))\{\par -46 signals->lastTriggeredSignal = Signal_A;\par -47 {\cf19 return} E;\par -48 \}\par -49 {\cf19 else} {\cf19 if}(arrindex == 0)\{\par -50 {\cf19 return} E;\par -51 \}\par -52 {\cf19 return} Idle;\par -53 \}\par -54 \par -55 {\cf17 static} State selectNextStateFcn(E)(TemplateFSMData *data, FSMSignals *signals)\{\par -56 {\cf19 if}(getSignal(signals, Signal_A))\{\par -57 signals->lastTriggeredSignal = Signal_A;\par -58 {\cf19 return} D;\par -59 \}\par -60 {\cf19 else} {\cf19 if}(x == 0)\{\par -61 {\cf19 return} D;\par -62 \}\par -63 {\cf19 return} Idle;\par -64 \}\par -65 \par -66 \par -67 \par -68 {\cf20 /* -------------------------------------------------------------------------- */}\par -69 {\cf20 /* \'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84 action, exit, during \'E5\'87\'BD\'E6\'95\'B0 */}\par -70 {\cf20 /* -------------------------------------------------------------------------- */}\par -71 {\cf17 static} {\cf18 void} actionFcn(enter, D)()\par -72 \{\par -73 FSM_LOG({\cf22 " enterD "});\par -74 \}\par -75 {\cf17 static} {\cf18 void} actionFcn(during, D)()\par -76 \{\par -77 FSM_LOG({\cf22 " duringD "});\par -78 \}\par -79 {\cf17 static} {\cf18 void} actionFcn(exit, D)()\par -80 \{\par -81 FSM_LOG({\cf22 " exitD "});\par -82 \}\par +40 \par +45 {\cf17 typedef} {\cf17 enum} _State\par +46 \{\par +47 Idle, \par +48 D,\par +49 E,\par +50 \par +51 Count_State, \par +52 \} State;\par +53 {\cf21 #define DEFAULT_STATE E }\par +55 {\cf20 /* -------------------------------------------------------------------------- */}\par +56 {\cf20 /* \'E4\'B8\'8B\'E4\'B8\'80\'E4\'B8\'AA\'E7\'8A\'B6\'E6\'80\'81\'E9\'80\'89\'E6\'8B\'A9\'E5\'87\'BD\'E6\'95\'B0 */}\par +57 {\cf20 /* -------------------------------------------------------------------------- */}\par +58 \par +59 \par +60 {\cf17 static} State selectNextStateFcn(D)(TemplateFSMData *data, FSMSignals *signals)\{\par +61 {\cf19 if}(getSignal(signals, Signal_A))\{\par +62 signals->lastTriggeredSignal = Signal_A;\par +63 {\cf19 return} E;\par +64 \}\par +65 {\cf19 else} {\cf19 if}(arrindex == 0)\{\par +66 {\cf19 return} E;\par +67 \}\par +68 {\cf19 return} Idle;\par +69 \}\par +70 \par +71 {\cf17 static} State selectNextStateFcn(E)(TemplateFSMData *data, FSMSignals *signals)\{\par +72 {\cf19 if}(getSignal(signals, Signal_A))\{\par +73 signals->lastTriggeredSignal = Signal_A;\par +74 {\cf19 return} D;\par +75 \}\par +76 {\cf19 else} {\cf19 if}(x == 0)\{\par +77 {\cf19 return} D;\par +78 \}\par +79 {\cf19 return} Idle;\par +80 \}\par +81 \par +82 \par 83 \par -84 {\cf17 static} {\cf18 void} actionFcn(enter, E)()\par -85 \{\par -86 FSM_LOG({\cf22 " enterE "});\par -87 \}\par -88 {\cf17 static} {\cf18 void} actionFcn(during, E)()\par -89 \{\par -90 FSM_LOG({\cf22 " duringE "});\par -91 \}\par -92 {\cf17 static} {\cf18 void} actionFcn(exit, E)()\par -93 \{\par -94 FSM_LOG({\cf22 " exitE "});\par -95 \}\par -96 \par -97 \par -98 \par -99 {\cf20 /* -------------------------------------------------------------------------- */}\par -100 {\cf20 /* \'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0 */}\par -101 {\cf20 /* -------------------------------------------------------------------------- */}\par -102 {\cf17 static} {\cf18 void} transitionGeneralAction(TemplateFSMData *data)\{\par -103 FSM_LOG({\cf22 "general"});\par -104 \}\par -105 \par -106 {\cf17 static} {\cf18 void} transitionHandler(Idle, D)()\par -107 \{\par -108 FSM_LOG({\cf22 " Idle2D "});\par -109 \}\par -110 \par -111 {\cf17 static} {\cf18 void} transitionHandler(Idle, E)()\par -112 \{\par -113 FSM_LOG({\cf22 " Idle2E "});\par -114 \}\par -115 \par -116 {\cf17 static} {\cf18 void} transitionHandler(D, E)(TemplateFSMData *data, {\cf18 int} *delayedIndex)\par -117 \{\par -118 *delayedIndex = index(D, E);\par -119 FSM_LOG({\cf22 " D2E "});\par +84 {\cf20 /* -------------------------------------------------------------------------- */}\par +85 {\cf20 /* \'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84 action, exit, during \'E5\'87\'BD\'E6\'95\'B0 */}\par +86 {\cf20 /* -------------------------------------------------------------------------- */}\par +87 {\cf17 static} {\cf18 void} actionFcn(enter, D)()\par +88 \{\par +89 FSM_LOG({\cf22 " enterD "});\par +90 \}\par +91 {\cf17 static} {\cf18 void} actionFcn(during, D)()\par +92 \{\par +93 FSM_LOG({\cf22 " duringD "});\par +94 \}\par +95 {\cf17 static} {\cf18 void} actionFcn(exit, D)()\par +96 \{\par +97 FSM_LOG({\cf22 " exitD "});\par +98 \}\par +99 \par +100 {\cf17 static} {\cf18 void} actionFcn(enter, E)()\par +101 \{\par +102 FSM_LOG({\cf22 " enterE "});\par +103 \}\par +104 {\cf17 static} {\cf18 void} actionFcn(during, E)()\par +105 \{\par +106 FSM_LOG({\cf22 " duringE "});\par +107 \}\par +108 {\cf17 static} {\cf18 void} actionFcn(exit, E)()\par +109 \{\par +110 FSM_LOG({\cf22 " exitE "});\par +111 \}\par +112 \par +113 \par +114 \par +115 {\cf20 /* -------------------------------------------------------------------------- */}\par +116 {\cf20 /* \'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0 */}\par +117 {\cf20 /* -------------------------------------------------------------------------- */}\par +118 {\cf17 static} {\cf18 void} transitionGeneralAction(FSM pFSM)\{\par +119 FSM_LOG({\cf22 "general"});\par 120 \}\par 121 \par -122 {\cf17 static} {\cf18 void} transitionHandler(E, D)()\par -123 \{\par -124 FSM_LOG({\cf22 " E2D "});\par -125 \}\par -126 \par -127 \par -128 {\cf20 /* -------------------------------------------------------------------------- */}\par -129 {\cf20 /* \'E6\'89\'93\'E5\'8D\'B0\'E8\'B0\'83\'E8\'AF\'95 */}\par -130 {\cf20 /* -------------------------------------------------------------------------- */}\par -131 {\cf17 const} {\cf17 static} {\cf18 char} *stateStr[] = \{\par -132 {\cf22 "Idle"},\par -133 {\cf22 "D"},\par -134 {\cf22 "E"},\par -135 \};\par -136 \par -137 {\cf17 static} {\cf18 void} printFSM(TemplateFSM* pFSM)\{\par -138 FSM_LOG({\cf22 " \\tTemplateFSM: "});\par -139 FSM_LOG({\cf22 "\'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E6\'BA\'A2\'E5\'87\'BA:%d, \'E5\'BD\'93\'E5\'89\'8D\'E7\'8A\'B6\'E6\'80\'81:%s, \'E5\'8A\'A8\'E4\'BD\'9C\'EF\'BC\'9A"}, _getPreloaderOverFlag((FSM *)pFSM), stateStr[getFSMCurState((FSM *)pFSM)]);\par +122 {\cf20 // static void transitionGeneralAction(TemplateFSMData *data)\{}\par +123 {\cf20 // FSM_LOG("general");}\par +124 {\cf20 // \}}\par +125 \par +126 {\cf17 static} {\cf18 void} transitionHandler(Idle, D)()\par +127 \{\par +128 FSM_LOG({\cf22 " Idle2D "});\par +129 \}\par +130 \par +131 {\cf17 static} {\cf18 void} transitionHandler(Idle, E)()\par +132 \{\par +133 FSM_LOG({\cf22 " Idle2E "});\par +134 \}\par +135 \par +136 {\cf17 static} {\cf18 void} transitionHandler(D, E)(TemplateFSMData *data, {\cf18 int} *delayedIndex)\par +137 \{\par +138 *delayedIndex = index(D, E);\par +139 FSM_LOG({\cf22 " D2E "});\par 140 \}\par 141 \par -142 \par -143 {\cf21 #endif}\par +142 {\cf17 static} {\cf18 void} transitionHandler(E, D)()\par +143 \{\par +144 FSM_LOG({\cf22 " E2D "});\par +145 \}\par +146 \par +147 \par +148 {\cf20 /* -------------------------------------------------------------------------- */}\par +149 {\cf20 /* \'E6\'89\'93\'E5\'8D\'B0\'E8\'B0\'83\'E8\'AF\'95 */}\par +150 {\cf20 /* -------------------------------------------------------------------------- */}\par +151 {\cf17 const} {\cf17 static} {\cf18 char} *stateStr[] = \{\par +152 {\cf22 "Idle"},\par +153 {\cf22 "D"},\par +154 {\cf22 "E"},\par +155 \};\par +156 \par +157 {\cf17 static} {\cf18 void} printFSM(TemplateFSM* pFSM)\{\par +158 FSM_LOG({\cf22 " \\tTemplateFSM: "});\par +159 FSM_LOG({\cf22 "\'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E6\'BA\'A2\'E5\'87\'BA:%d, \'E5\'BD\'93\'E5\'89\'8D\'E7\'8A\'B6\'E6\'80\'81:%s, \'E5\'8A\'A8\'E4\'BD\'9C\'EF\'BC\'9A"}, _getPreloaderOverFlag((FSM *)pFSM), stateStr[getFSMCurState((FSM *)pFSM)]);\par +160 \}\par +161 \par +162 \par +163 {\cf21 #endif}\par } \pard\plain \sect\sbkpage