152 lines
7.8 KiB
TeX
152 lines
7.8 KiB
TeX
|
\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}
|