FSM/vscode/manual/rtf/refman.rtf

3472 lines
176 KiB
Plaintext
Raw Normal View History

{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033
{\fonttbl {\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}
}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green128\blue0;\red96\green64\blue32;\rede0\green128\blue0;\red128\green0\blue0;\red128\green96\blue32;\red0\green32\blue128;\red0\green128\blue128;\red255\green0\blue255;\red0\green0\blue0;\red112\green0\blue112;\red255\green0\blue0;}
{\stylesheet
{\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}
{\paperw11900\paperh16840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect}
{\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid \sbasedon0 \snext0 heading 1;}
{\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \sbasedon0 \snext0 heading 2;}
{\s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid \sbasedon0 \snext0 heading 3;}
{\s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;}
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}
{\s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid \sbasedon0 \snext15 Title;}
{\s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid \sbasedon0 \snext16 Subtitle;}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \sbasedon0 \snext17 BodyText;}
{\s18\widctlpar\fs22\cgrid \sbasedon0 \snext18 DenseText;}
{\s28\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext28 header;}
{\s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid \sbasedon0 \snext29 footer;}
{\s30\li360\sa60\sb120\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext30 GroupHeader;}
{\s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext41 Code Example 0;}
{\s41\li360\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext42 Code Example 1;}
{\s42\li720\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext43 Code Example 2;}
{\s43\li1080\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext44 Code Example 3;}
{\s44\li1440\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext45 Code Example 4;}
{\s45\li1800\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext46 Code Example 5;}
{\s46\li2160\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext47 Code Example 6;}
{\s47\li2520\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext48 Code Example 7;}
{\s48\li2880\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext49 Code Example 8;}
{\s49\li3240\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext50 Code Example 9;}
{\s50\li3600\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext51 Code Example 10;}
{\s51\li3960\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext52 Code Example 11;}
{\s52\li4320\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext53 Code Example 12;}
{\s53\li4680\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext53 Code Example 13;}
{\s60\li0\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext61 List Continue 0;}
{\s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext62 List Continue 1;}
{\s62\li720\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext63 List Continue 2;}
{\s63\li1080\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext64 List Continue 3;}
{\s64\li1440\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext65 List Continue 4;}
{\s65\li1800\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext66 List Continue 5;}
{\s66\li2160\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext67 List Continue 6;}
{\s67\li2520\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext68 List Continue 7;}
{\s68\li2880\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext69 List Continue 8;}
{\s69\li3240\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext70 List Continue 9;}
{\s70\li3600\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext71 List Continue 10;}
{\s71\li3960\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext72 List Continue 11;}
{\s72\li4320\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext73 List Continue 12;}
{\s73\li4680\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext73 List Continue 13;}
{\s80\li0\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext81 DescContinue 0;}
{\s81\li360\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext82 DescContinue 1;}
{\s82\li720\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext83 DescContinue 2;}
{\s83\li1080\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext84 DescContinue 3;}
{\s84\li1440\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext85 DescContinue 4;}
{\s85\li1800\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext86 DescContinue 5;}
{\s86\li2160\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext87 DescContinue 6;}
{\s87\li2520\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext88 DescContinue 7;}
{\s88\li2880\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext89 DescContinue 8;}
{\s89\li3240\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext90 DescContinue 9;}
{\s90\li3600\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext91 DescContinue 10;}
{\s91\li3960\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext92 DescContinue 11;}
{\s92\li4320\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext93 DescContinue 12;}
{\s93\li4680\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext93 DescContinue 13;}
{\s100\li0\sa30\sb30\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext101 LatexTOC 0;}
{\s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext102 LatexTOC 1;}
{\s102\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext103 LatexTOC 2;}
{\s103\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext104 LatexTOC 3;}
{\s104\li1440\sa18\sb18\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext105 LatexTOC 4;}
{\s105\li1800\sa15\sb15\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext106 LatexTOC 5;}
{\s106\li2160\sa12\sb12\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext107 LatexTOC 6;}
{\s107\li2520\sa9\sb9\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext108 LatexTOC 7;}
{\s108\li2880\sa6\sb6\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext109 LatexTOC 8;}
{\s109\li3240\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext110 LatexTOC 9;}
{\s110\li3600\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext111 LatexTOC 10;}
{\s111\li3960\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext112 LatexTOC 11;}
{\s112\li4320\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext113 LatexTOC 12;}
{\s113\li4680\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext113 LatexTOC 13;}
{\s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext121 \sautoupd List Bullet 0;}
{\s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext122 \sautoupd List Bullet 1;}
{\s122\fi-360\li1080\widctlpar\jclisttab\tx1080{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext123 \sautoupd List Bullet 2;}
{\s123\fi-360\li1440\widctlpar\jclisttab\tx1440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext124 \sautoupd List Bullet 3;}
{\s124\fi-360\li1800\widctlpar\jclisttab\tx1800{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext125 \sautoupd List Bullet 4;}
{\s125\fi-360\li2160\widctlpar\jclisttab\tx2160{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext126 \sautoupd List Bullet 5;}
{\s126\fi-360\li2520\widctlpar\jclisttab\tx2520{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext127 \sautoupd List Bullet 6;}
{\s127\fi-360\li2880\widctlpar\jclisttab\tx2880{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext128 \sautoupd List Bullet 7;}
{\s128\fi-360\li3240\widctlpar\jclisttab\tx3240{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext129 \sautoupd List Bullet 8;}
{\s129\fi-360\li3600\widctlpar\jclisttab\tx3600{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext130 \sautoupd List Bullet 9;}
{\s130\fi-360\li3960\widctlpar\jclisttab\tx3960{\*\pn \pnlvlbody\ilvl0\ls11\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext131 \sautoupd List Bullet 10;}
{\s131\fi-360\li4320\widctlpar\jclisttab\tx4320{\*\pn \pnlvlbody\ilvl0\ls12\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext132 \sautoupd List Bullet 11;}
{\s132\fi-360\li4680\widctlpar\jclisttab\tx4680{\*\pn \pnlvlbody\ilvl0\ls13\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext133 \sautoupd List Bullet 12;}
{\s133\fi-360\li5040\widctlpar\jclisttab\tx5040{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext133 \sautoupd List Bullet 13;}
{\s140\fi-360\li360\widctlpar\fs20\cgrid \sbasedon0 \snext141 \sautoupd List Enum 0;}
{\s141\fi-360\li720\widctlpar\fs20\cgrid \sbasedon0 \snext142 \sautoupd List Enum 1;}
{\s142\fi-360\li1080\widctlpar\fs20\cgrid \sbasedon0 \snext143 \sautoupd List Enum 2;}
{\s143\fi-360\li1440\widctlpar\fs20\cgrid \sbasedon0 \snext144 \sautoupd List Enum 3;}
{\s144\fi-360\li1800\widctlpar\fs20\cgrid \sbasedon0 \snext145 \sautoupd List Enum 4;}
{\s145\fi-360\li2160\widctlpar\fs20\cgrid \sbasedon0 \snext146 \sautoupd List Enum 5;}
{\s146\fi-360\li2520\widctlpar\fs20\cgrid \sbasedon0 \snext147 \sautoupd List Enum 6;}
{\s147\fi-360\li2880\widctlpar\fs20\cgrid \sbasedon0 \snext148 \sautoupd List Enum 7;}
{\s148\fi-360\li3240\widctlpar\fs20\cgrid \sbasedon0 \snext149 \sautoupd List Enum 8;}
{\s149\fi-360\li3600\widctlpar\fs20\cgrid \sbasedon0 \snext150 \sautoupd List Enum 9;}
{\s150\fi-360\li3960\widctlpar\fs20\cgrid \sbasedon0 \snext151 \sautoupd List Enum 10;}
{\s151\fi-360\li4320\widctlpar\fs20\cgrid \sbasedon0 \snext152 \sautoupd List Enum 11;}
{\s152\fi-360\li4680\widctlpar\fs20\cgrid \sbasedon0 \snext153 \sautoupd List Enum 12;}
{\s153\fi-360\li5040\widctlpar\fs20\cgrid \sbasedon0 \snext153 \sautoupd List Enum 13;}
}
{\info
{\title {\comment \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
0.1alpha \par
}}\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6}
{\comment Generated by doxygen 1.10.0.}
}\pard\plain
\sectd\pgnlcrm
{\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid
\vertalc\qc\par\par\par\par\par\par\par
\pard\plain \s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid
{\field\fldedit {\*\fldinst TITLE \\*MERGEFORMAT}{\fldrslt \'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E6\'A1\'86\'E6\'9E\'B6}}\par
\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid
\par
\par\par\par\par\par\par\par\par\par\par\par\par
\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid
{\field\fldedit {\*\fldinst AUTHOR \\*MERGEFORMAT}{\fldrslt AUTHOR}}\par
Version 0.1alpha\par\page\page\vertalt
\pard\plain
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid Table of Contents\par
\pard\plain \par
{\field\fldedit {\*\fldinst TOC \\f \\*MERGEFORMAT}{\fldrslt Table of contents}}\par
\pard\plain
\sect \sbkpage \pgndec \pgnrestart
\sect \sectd \sbknone
{\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
\par \pard\plain
\par \pard\plain
\pard\plain \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
Deprecated List\par \pard\plain
{\tc\tcl1 \v Deprecated List}
{\xe \v Deprecated List}
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
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
}
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
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
}
2024-05-07 16:45:57 +08:00
{\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
}
2024-05-07 16:45:57 +08:00
{\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
}
2024-05-07 16:45:57 +08:00
{\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
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
Data Structure Index\par \pard\plain
{\tc \v Data Structure Index}
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Data Structures\par \pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Here are the data structures with brief descriptions:}
{
\par
\pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
{\b {\b FSMDataLoader} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADD \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\b FSMHandler} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
\'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
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
File Index\par \pard\plain
{\tc \v File Index}
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
File List\par \pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Here is a list of all documented files with brief descriptions:}
{
\par
\pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
{\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
{\b FSM_OOP/childtest/{\b childFSM_private.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAE \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b FSM_OOP/childtest/{\b parentFSM.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAF \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b FSM_OOP/keytest/{\b keyFSM.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAG \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b FSM_OOP/keytest/{\b keyFSM_private.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAH \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
{\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
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
Data Structure Documentation{\tc \v Data Structure Documentation}
\par \pard\plain
\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}
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADD}
{\bkmkend AAAAAAAADD}
\par
{
{\f2 #include <FSM_private.h>}}\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
Deprecated:\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E5\'BC\'83\'E7\'94\'A8\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
FSMHandler Struct Reference\par \pard\plain
{\tc\tcl2 \v FSMHandler}
{\xe \v FSMHandler}
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADE}
{\bkmkend AAAAAAAADE}
\par
{
{\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
{
{\f2 #include <FSM_protected.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Data Fields\par
\pard\plain
{
\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
2024-05-07 16:45:57 +08:00
\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
Detailed Description\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\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
2024-05-07 16:45:57 +08:00
\'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
Field Documentation\par
\pard\plain
{\xe \v selectNextState\:FSMHandler}
{\xe \v FSMHandler\:selectNextState}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
int(** FSMHandler::selectNextState) (void *data, {\b FSMSignals} *signals)}}
\par
2024-05-07 16:45:57 +08:00
{\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
}}
2024-05-07 16:45:57 +08:00
{\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
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
FSMPrivateVars Struct Reference\par \pard\plain
{\tc\tcl2 \v FSMPrivateVars}
{\xe \v FSMPrivateVars}
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADM}
{\bkmkend AAAAAAAADM}
\par
{
{\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 }}\par
{
{\f2 #include <FSM_private.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Data Fields\par
\pard\plain
{
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
{\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}
\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\'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 \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
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
{\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
}}
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADQ}
{\bkmkend AAAAAAAADQ}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
nextState\'E4\'B8\'BAIdle\'E4\'BB\'A3\'E8\'A1\'A8\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E4\'B8\'8D\'E5\'8F\'91\'E7\'94\'9F\'E5\'8F\'98\'E5\'8C\'96 \par
}}
{\xe \v index\:FSMPrivateVars}
{\xe \v FSMPrivateVars\:index}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
int FSMPrivateVars::index}}
\par
2024-05-07 16:45:57 +08:00
{\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
}}
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADV}
{\bkmkend AAAAAAAADV}
{
\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
}
}}
\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
FSMPureVtbl Struct Reference\par \pard\plain
{\tc\tcl2 \v FSMPureVtbl}
{\xe \v FSMPureVtbl}
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADW}
{\bkmkend AAAAAAAADW}
\par
{
{\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 }}\par
{
{\f2 #include <FSM_protected.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Data Fields\par
\pard\plain
{
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void(* {\b setupHandler} )({\b FSMHandler} *fcns)\par
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void(* {\b initData} )(FSM *pFSM)\par
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void(* {\b loadExternalData} )(void *extData)\par
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
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
2024-05-07 16:45:57 +08:00
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
Detailed Description\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\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 \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 setupHandler\:FSMPureVtbl}
{\xe \v FSMPureVtbl\:setupHandler}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void(* FSMPureVtbl::setupHandler) ({\b FSMHandler} *fcns)}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADX}
{\bkmkend AAAAAAAADX}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E8\'AE\'BE\'E7\'BD\'AE\'E6\'89\'80\'E6\'9C\'89\'E7\'9A\'84FSMHandler\'EF\'BC\'8C\'E5\'BF\'85\'E9\'A1\'BB\'E9\'87\'8D\'E6\'96\'B0\'E5\'AE\'9E\'E7\'8E\'B0 \par
}}
{\xe \v initData\:FSMPureVtbl}
{\xe \v FSMPureVtbl\:initData}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void(* FSMPureVtbl::initData) (FSM *pFSM)}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADY}
{\bkmkend AAAAAAAADY}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E5\'88\'9D\'E5\'A7\'8B\'E5\'8C\'96\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E7\'94\'A8\'E6\'95\'B0\'E6\'8D\'AE\'EF\'BC\'8C\'E5\'8C\'85\'E6\'8B\'AC\'E5\'86\'85\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE\'E5\'92\'8C\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE \par
}}
{\xe \v loadExternalData\:FSMPureVtbl}
{\xe \v FSMPureVtbl\:loadExternalData}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void(* FSMPureVtbl::loadExternalData) (void *extData)}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAADZ}
{\bkmkend AAAAAAAADZ}
{
\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\'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
}
}}
{\xe \v initDataLoader\:FSMPureVtbl}
{\xe \v FSMPureVtbl\:initDataLoader}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void(* FSMPureVtbl::initDataLoader) (FSM *pFSM)}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAAEA}
{\bkmkend AAAAAAAAEA}
{
\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\'E9\'A2\'84\'E8\'A3\'85\'E8\'BD\'BD\'E5\'99\'A8\'E7\'9B\'B8\'E5\'85\'B3 \par
}
}}
{\xe \v initSignals\:FSMPureVtbl}
{\xe \v FSMPureVtbl\:initSignals}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void(* FSMPureVtbl::initSignals) (FSM *pFSM)}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAAEB}
{\bkmkend AAAAAAAAEB}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E5\'88\'9D\'E5\'A7\'8B\'E5\'8C\'96\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E4\'BF\'A1\'E5\'8F\'B7 \par
}}
{\xe \v resetSignals\:FSMPureVtbl}
{\xe \v FSMPureVtbl\:resetSignals}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
2024-05-07 16:45:57 +08:00
void(* FSMPureVtbl::resetSignals) ({\b FSMSignals} *signals, void *data)}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAAEC}
{\bkmkend AAAAAAAAEC}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\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\'E7\'8A\'B6\'E6\'80\'81\'E6\'9C\'BA\'E4\'BF\'A1\'E5\'8F\'B7 \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
FSMSignals Struct Reference\par \pard\plain
{\tc\tcl2 \v FSMSignals}
{\xe \v FSMSignals}
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAAED}
{\bkmkend AAAAAAAAED}
\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
{
{\f2 #include <FSM_protected.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Data Fields\par
\pard\plain
{
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
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
}
{\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\'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
2024-05-07 16:45:57 +08:00
}
{\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
2024-05-07 16:45:57 +08:00
{\xe \v all\:FSMSignals}
{\xe \v FSMSignals\:all}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
2024-05-07 16:45:57 +08:00
Uint16 FSMSignals::all}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAAEE}
{\bkmkend AAAAAAAAEE}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E5\'A4\'96\'E9\'83\'A8\'E4\'BF\'A1\'E5\'8F\'B7 \par
}}
{\xe \v lastTriggeredSignal\:FSMSignals}
{\xe \v FSMSignals\:lastTriggeredSignal}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Uint16 FSMSignals::lastTriggeredSignal}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAAEF}
{\bkmkend AAAAAAAAEF}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
2024-05-07 16:45:57 +08:00
\'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
}}
2024-05-07 16:45:57 +08:00
\par \pard\plain
\pard\plain \sect\sbkpage
2024-05-07 16:45:57 +08:00
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E5\'A4\'96\'E9\'83\'A8\'E6\'95\'B0\'E6\'8D\'AE }}\par
{
2024-05-07 16:45:57 +08:00
{\f2 #include <templateFSM.h>}}\par
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
2024-05-07 16:45:57 +08:00
Detailed Description\par
\pard\plain
2024-05-07 16:45:57 +08:00
{
\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
2024-05-07 16:45:57 +08:00
\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
{
2024-05-07 16:45:57 +08:00
{\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
{
2024-05-07 16:45:57 +08:00
{\f2 #include <templateFSM.h>}}\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
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
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 <stdlib.h>}\par
{\f2 #include <stdio.h>}\par
{\f2 #include <assert.h>}\par
{\f2 #include <string.h>}\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
2024-05-07 16:45:57 +08:00
Functions\par
\pard\plain
{
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
Function Documentation\par
\pard\plain
2024-05-07 16:45:57 +08:00
{\xe \v setNextState\:FSM.c}
{\xe \v FSM.c\:setNextState}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
\'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
2024-05-07 16:45:57 +08:00
\'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 }
}
}}
2024-05-07 16:45:57 +08:00
{\xe \v _preloadIn\:FSM.c}
{\xe \v FSM.c\:_preloadIn}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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 }
}
}}
2024-05-07 16:45:57 +08:00
{\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}
{
2024-05-07 16:45:57 +08:00
\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 }
}
2024-05-07 16:45:57 +08:00
}}
\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
2024-05-07 16:45:57 +08:00
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 AAAAAAAAAS}
{\bkmkend AAAAAAAAAS}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
2024-05-07 16:45:57 +08:00
\'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 }}\par
{
2024-05-07 16:45:57 +08:00
\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <string.h>}\par
{\f2 #include "FSM_protected.h"}\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
2024-05-07 16:45:57 +08:00
struct {\b FSMDataLoader}\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
struct {\b FSMPrivateVars}\par
{
2024-05-07 16:45:57 +08:00
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\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 }}\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 FSMHandler {\b FSMHandler}\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\'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
}\par}
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
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 }{
}\par
}\par}
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
\'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 }{
}\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
2024-05-07 16:45:57 +08:00
{\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
2024-05-07 16:45:57 +08:00
\'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
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
2024-05-07 16:45:57 +08:00
\'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 \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
2024-05-07 16:45:57 +08:00
\'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
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
2024-05-07 16:45:57 +08:00
Typedef Documentation\par
\pard\plain
2024-05-07 16:45:57 +08:00
{\xe \v FSMHandler\:FSM_private.h}
{\xe \v FSM_private.h\:FSMHandler}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
typedef struct FSMHandler FSMHandler}}
\par
{\bkmkstart AAAAAAAAAU}
{\bkmkend AAAAAAAAAU}
{
\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\'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\'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}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
typedef struct FSMDataLoader FSMDataLoader}}
\par
{\bkmkstart AAAAAAAAAW}
{\bkmkend AAAAAAAAAW}
{
\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 \'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
\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_private.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/baseFSM/FSM_private.h}
{\xe \v FSM_OOP/baseFSM/FSM_private.h}
{\bkmkstart AAAAAAAAAA}
{\bkmkend AAAAAAAAAA}
Go to the documentation of this file.\par
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
14 {\cf21 #ifndef __FSM_PRIVATE_H_}\par
15 {\cf21 #define __FSM_PRIVATE_H_}\par
16 \par
17 {\cf21 #include <string.h>}\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
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->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
\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_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 AAAAAAAAAY}
{\bkmkend AAAAAAAAAY}
\par
{
{\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 }}\par
{
\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include "FSM_public.h"}\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 FSMHandler}{
\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\'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}
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
struct {\b FSMSignals}{
\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 }}\par}
\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
struct {\b FSMPureVtbl}{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\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 }}\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 Idle_Signal}\~ 0\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 FSMHandler {\b FSMHandler}\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\'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
}\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}\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 }{
}\par
}\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 AAAAAAAAAZ}
{\bkmkend AAAAAAAAAZ}
\par
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\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 }{
}\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
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\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\'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 \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 Idle_Signal\:FSM_protected.h}
{\xe \v FSM_protected.h\:Idle_Signal}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
#define Idle_Signal\~ 0}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAABA}
{\bkmkend AAAAAAAABA}
{
\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
2024-05-07 16:45:57 +08:00
\'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
Typedef Documentation\par
\pard\plain
{\xe \v FSMHandler\:FSM_protected.h}
{\xe \v FSM_protected.h\:FSMHandler}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
typedef struct FSMHandler FSMHandler}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAABB}
{\bkmkend AAAAAAAABB}
{
\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\'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
2024-05-07 16:45:57 +08:00
\'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
Function Documentation\par
\pard\plain
{\xe \v stepBaseFSM\:FSM_protected.h}
{\xe \v FSM_protected.h\:stepBaseFSM}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void stepBaseFSM (FSM * {\i pFSM})}}
\par
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAABD}
{\bkmkend AAAAAAAABD}
{
\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 }
}
}}
\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_protected.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/baseFSM/FSM_protected.h}
{\xe \v FSM_OOP/baseFSM/FSM_protected.h}
{\bkmkstart AAAAAAAAAB}
{\bkmkend AAAAAAAAAB}
Go to the documentation of this file.\par
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
12 {\cf21 #ifndef __FSM_PROTECTED_H_}\par
13 {\cf21 #define __FSM_PROTECTED_H_}\par
14 \par
15 {\cf21 #include "FSM_public.h"}\par
16 \par
17 {\cf20 // #define DSP28377}\par
18 {\cf21 #ifdef DSP28377}\par
19 {\cf21 #define NDEBUG}\par
20 {\cf21 #else}\par
21 {\cf21 #define FSM_LOG_ON}\par
22 {\cf21 #endif}\par
23 \par
24 \par
25 {\cf21 #ifdef FSM_LOG_ON}\par
26 {\cf21 #define FSM_LOG(...) printf(__VA_ARGS__)}\par
27 {\cf21 #else}\par
28 {\cf21 #define FSM_LOG(...) ((void)0)}\par
29 {\cf21 #endif}\par
30 \par
31 {\cf21 #define during during}\par
32 {\cf21 #define enter enter}\par
33 {\cf21 #define exit exit}\par
34 \par
35 {\cf21 #define selectNextStateFcn(curstate) curstate##_##selectNextState}\par
36 {\cf21 #define transitionHandler(curstate, nextstate) curstate##2##nextstate##Handler}\par
37 {\cf21 #define actionFcn(action, curstate) curstate##_##action##Action}\par
38 {\cf21 #define index(curstate, nextstate) (curstate*Count_State + nextstate)}\par
39 \par
40 {\cf21 #define addSelectNextStateFcn(curstate) fcns->selectNextState[curstate] = (Avoid_WARNING_SelectNextState)selectNextStateFcn(curstate)}\par
41 {\cf21 #define addStateActionFcn(type, state) fcns->type##ActionTable[state] = (Avoid_WARNING_State_Fcns)actionFcn(type, state)}\par
42 {\cf21 #define addTransitionHandler(curstate, nextstate) fcns->transitionTable[index(curstate, nextstate)] = (Avoid_WARNING_Transition_Handler)transitionHandler(curstate, nextstate)}\par
43 \par
44 \par
45 \par
46 {\cf17 typedef} {\cf17 struct }FSMHandler FSMHandler;\par
47 {\cf17 typedef} {\cf17 struct }FSM FSM;\par
48 {\cf17 typedef} {\cf17 struct }FSMSignals FSMSignals;\par
49 {\cf17 typedef} {\cf17 struct }FSMPrivateVars FSMPrivateVars;\par
50 \par
51 {\cf17 typedef} void (*Avoid_WARNING_State_Fcns)({\cf18 void} *data, FSM **childFSM);\par
52 {\cf17 typedef} void (*Avoid_WARNING_General_Handlers)({\cf18 void} *data);\par
53 {\cf17 typedef} void (*Avoid_WARNING_Transition_Handler)({\cf18 void} *data);\par
54 {\cf17 typedef} void (*Avoid_WARNING_Overrider_Fcns)(FSM *pFSM);\par
55 {\cf17 typedef} void (*Avoid_WARNING_ResetSignals_Fcns)(FSMSignals* signals, {\cf18 void} *);\par
56 {\cf17 typedef} void (*Avoid_WARNING_loadData_Fcns)({\cf18 void}*);\par
57 {\cf17 typedef} int (*Avoid_WARNING_SelectNextState)({\cf18 void} *data, FSMSignals* signals);\par
58 {\cf17 typedef} void (*Avoid_WARNING_void_fcns)(FSMHandler *fcns);\par
59 \par
60 \par
67 {\cf17 typedef} {\cf17 struct }FSMHandler\{\par
68 int (**selectNextState)({\cf18 void} *data, FSMSignals* signals); \par
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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}
2024-05-07 16:45:57 +08:00
{\bkmkstart AAAAAAAABE}
{\bkmkend AAAAAAAABE}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Macros\par
\pard\plain
{
2024-05-07 16:45:57 +08:00
\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
FSM_public.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/baseFSM/FSM_public.h}
{\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 \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 {\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 {\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
2024-05-07 16:45:57 +08:00
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
\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
childFSM.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/childtest/childFSM.h}
{\xe \v FSM_OOP/childtest/childFSM.h}
{\bkmkstart AAAAAAAAAD}
{\bkmkend AAAAAAAAAD}
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifndef __CHILD_FSM_H_}\par
2 {\cf21 #define __CHILD_FSM_H_}\par
3 \par
4 {\cf21 #define ChildFSM_Input(pFSM) ((ChildFSMData *)_preloadIn((FSM *)pFSM))}\par
5 \par
6 {\cf17 typedef} {\cf17 struct }_childFSMData\par
7 \{\par
8 {\cf18 int} arrindex;\par
9 \}ChildFSMData;\par
10 \par
11 {\cf17 typedef} {\cf17 struct }_ChildFSM ChildFSM;\par
12 \par
13 ChildFSM *createChildFSM();\par
14 \par
15 \par
16 \par
17 {\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
childFSM_private.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/childtest/childFSM_private.h}
{\xe \v FSM_OOP/childtest/childFSM_private.h}
{\bkmkstart AAAAAAAAAE}
{\bkmkend AAAAAAAAAE}
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifndef __CHILD_PRIVATE_FSM_H_}\par
2 {\cf21 #define __CHILD_PRIVATE_FSM_H_}\par
3 \par
4 {\cf21 #include "FSM_protected.h"}\par
5 {\cf21 #include "childFSM.h"}\par
6 {\cf21 #include <stdio.h>}\par
7 \par
8 \par
9 {\cf20 /* }\par
10 {\cf20 \'E7\'BB\'A7\'E6\'89\'BF\'E5\'9F\'BA\'E7\'B1\'BB}\par
11 {\cf20 */}\par
12 {\cf17 typedef} {\cf17 struct }_ChildFSM\par
13 \{ \par
14 {\cf20 // \'E7\'BB\'A7\'E6\'89\'BF\'E7\'88\'B6\'E7\'B1\'BB}\par
15 FSM base;\par
16 \}ChildFSM;\par
17 \par
18 {\cf20 /* }\par
19 {\cf20 \'E7\'8A\'B6\'E6\'80\'81\'E5\'92\'8C\'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84 action, exit, during \'E5\'87\'BD\'E6\'95\'B0}\par
20 {\cf20 */}\par
21 \par
22 {\cf17 typedef} {\cf17 enum} _State\par
23 \{\par
24 Idle,\par
25 D,\par
26 E,\par
27 \par
28 Count_State,\par
29 \} State;\par
30 {\cf21 #define DEFAULT_STATE E}\par
31 \par
32 {\cf18 void} actionFcn(enter, D)()\par
33 \{\par
34 FSM_LOG({\cf22 " enterD "});\par
35 \}\par
36 {\cf18 void} actionFcn(during, D)()\par
37 \{\par
38 FSM_LOG({\cf22 " duringD "});\par
39 \}\par
40 {\cf18 void} actionFcn(exit, D)()\par
41 \{\par
42 FSM_LOG({\cf22 " exitD "});\par
43 \}\par
44 \par
45 {\cf18 void} actionFcn(enter, E)()\par
46 \{\par
47 FSM_LOG({\cf22 " enterE "});\par
48 \}\par
49 {\cf18 void} actionFcn(during, E)()\par
50 \{\par
51 FSM_LOG({\cf22 " duringE "});\par
52 \}\par
53 {\cf18 void} actionFcn(exit, E)()\par
54 \{\par
55 FSM_LOG({\cf22 " exitE "});\par
56 \}\par
57 \par
58 {\cf20 /* }\par
59 {\cf20 \'E4\'BA\'8B\'E4\'BB\'B6\'E5\'92\'8C\'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84\'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0}\par
60 {\cf20 */}\par
61 \par
62 {\cf17 typedef} {\cf17 enum} _Event\{\par
63 Idle_Event,\par
64 Idle2D,\par
65 Idle2E,\par
66 D2E,\par
67 E2D,\par
68 \par
69 Count_Event,\par
70 \}Event;\par
71 \par
72 \par
73 State transitionHandler(Idle2D)()\par
74 \{\par
75 FSM_LOG({\cf22 " Idle2D "});\par
76 {\cf19 return} D;\par
77 \}\par
78 \par
79 State transitionHandler(Idle2E)()\par
80 \{\par
81 FSM_LOG({\cf22 " Idle2E "});\par
82 {\cf19 return} E;\par
83 \}\par
84 \par
85 State transitionHandler(D2E)()\par
86 \{\par
87 FSM_LOG({\cf22 " D2E "});\par
88 {\cf19 return} E;\par
89 \}\par
90 \par
91 State transitionHandler(E2D)()\par
92 \{\par
93 FSM_LOG({\cf22 " E2D "});\par
94 {\cf19 return} D;\par
95 \}\par
96 \par
97 \par
98 \par
99 \par
100 {\cf20 /* }\par
101 {\cf20 \'E7\'94\'A8\'E6\'88\'B7\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E4\'BA\'8B\'E4\'BB\'B6\'E9\'80\'89\'E6\'8B\'A9\'E9\'80\'BB\'E8\'BE\'91\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94begin }\par
102 {\cf20 */}\par
103 {\cf17 const} {\cf17 static} {\cf18 char} *stateStr[] = \{\par
104 {\cf22 "Idle"},\par
105 {\cf22 "D"},\par
106 {\cf22 "E"},\par
107 \};\par
108 {\cf17 const} {\cf17 static} {\cf18 char} *eventStr[] = \{\par
109 {\cf22 "Idle"},\par
110 {\cf22 "Idle2D"},\par
111 {\cf22 "Idle2E"},\par
112 {\cf22 "D2E"},\par
113 {\cf22 "E2D"},\par
114 \};\par
115 {\cf17 static} {\cf18 void} printFSM(ChildFSM* pFSM)\{\par
116 FSM_LOG({\cf22 " \\t\\tChildFSM: "});\par
117 FSM_LOG({\cf22 "\'E5\'BD\'93\'E5\'89\'8D\'E7\'8A\'B6\'E6\'80\'81:%s, \'E5\'BD\'93\'E5\'89\'8D\'E4\'BA\'8B\'E4\'BB\'B6:%s, \'E5\'8A\'A8\'E4\'BD\'9C\'EF\'BC\'9A"}, stateStr[getFSMCurState((FSM *)pFSM)], eventStr[getFSMCurEvent((FSM *)pFSM)]);\par
118 \}\par
119 \par
120 \par
121 {\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
parentFSM.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/childtest/parentFSM.h}
{\xe \v FSM_OOP/childtest/parentFSM.h}
{\bkmkstart AAAAAAAAAF}
{\bkmkend AAAAAAAAAF}
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifndef __PARENT_FSM_H_}\par
2 {\cf21 #define __PARENT_FSM_H_}\par
3 \par
4 {\cf21 #define ParentFSM_Input(pFSM) ((ParentFSMData *)_preloadIn((FSM *)pFSM))}\par
5 \par
6 {\cf17 typedef} {\cf17 struct }_parentFSMData\par
7 \{\par
8 {\cf18 int} arrindex;\par
9 \}ParentFSMData;\par
10 {\cf17 typedef} {\cf17 struct }_ParentFSM ParentFSM;\par
11 \par
12 ParentFSM *createParentFSM();\par
13 \par
14 \par
15 {\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
keyFSM.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/keytest/keyFSM.h}
{\xe \v FSM_OOP/keytest/keyFSM.h}
{\bkmkstart AAAAAAAAAG}
{\bkmkend AAAAAAAAAG}
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifndef __KEY_FSM_H_}\par
2 {\cf21 #define __KEY_FSM_H_}\par
3 \par
4 \par
5 {\cf21 #define KeyFSM_Input(pFSM) (KeyIn *)_preloadIn((FSM *)pFSM)}\par
6 \par
7 {\cf17 typedef} {\cf17 enum} _keyIn\{\par
8 pUp,\par
9 pDown,\par
10 \}KeyIn;\par
11 \par
12 \par
13 {\cf17 typedef} {\cf17 enum} _keyOut\{\par
14 Idle,\par
15 Down,\par
16 Hold,\par
17 Down_2times,\par
18 Down_3times,\par
19 \}KeyOut;\par
20 \par
21 {\cf17 const} {\cf17 static} {\cf18 char} *keyStr[] = \par
22 \{\par
23 {\cf22 "Idle"},\par
24 {\cf22 "Down"},\par
25 {\cf22 "Hold"},\par
26 {\cf22 "Down_2times"},\par
27 {\cf22 "Down_3times"},\par
28 \};\par
29 \par
30 {\cf17 typedef} {\cf17 struct }_keyFSMExternalData\par
31 \{\par
32 KeyIn in;\par
33 \}KeyFSMExternalData;\par
34 \par
35 {\cf17 typedef} {\cf17 struct }_keyFSMInternalData\par
36 \{\par
37 {\cf18 int} countDelay;\par
38 {\cf18 int} countMultiDown;\par
39 KeyOut out;\par
40 \par
41 \}KeyFSMInternalData;\par
42 \par
43 {\cf17 typedef} {\cf17 struct }_keyFSMData\par
44 \{\par
45 KeyFSMExternalData external;\par
46 KeyFSMInternalData internal;\par
47 \}KeyFSMData;\par
48 \par
49 {\cf17 typedef} {\cf17 struct }_KeyFSM KeyFSM;\par
50 \par
51 KeyFSM *createKeyFSM();\par
52 \par
53 \par
54 \par
55 {\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
keyFSM_private.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/keytest/keyFSM_private.h}
{\xe \v FSM_OOP/keytest/keyFSM_private.h}
{\bkmkstart AAAAAAAAAH}
{\bkmkend AAAAAAAAAH}
{
\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #ifndef __KEY_PRIVATE_FSM_H_}\par
2 {\cf21 #define __KEY_PRIVATE_FSM_H_}\par
3 \par
4 {\cf21 #include "FSM_protected.h"}\par
5 {\cf21 #include "keyFSM.h"}\par
6 {\cf21 #include <stdio.h>}\par
7 {\cf21 #include <assert.h>}\par
8 \par
9 {\cf17 extern} KeyIn keystat;\par
10 \par
11 \par
12 {\cf20 /* }\par
13 {\cf20 \'E7\'BB\'A7\'E6\'89\'BF\'E5\'9F\'BA\'E7\'B1\'BB}\par
14 {\cf20 */}\par
15 {\cf17 typedef} {\cf17 struct }_KeyFSM\par
16 \{ \par
17 {\cf20 // \'E7\'BB\'A7\'E6\'89\'BF\'E7\'88\'B6\'E7\'B1\'BB}\par
18 FSM base;\par
19 \}KeyFSM;\par
20 \par
21 {\cf20 /* }\par
22 {\cf20 \'E7\'8A\'B6\'E6\'80\'81\'E5\'92\'8C\'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84 action, exit, during \'E5\'87\'BD\'E6\'95\'B0}\par
23 {\cf20 */}\par
24 \par
25 {\cf17 typedef} {\cf17 enum} _State\par
26 \{\par
27 Idle_State,\par
28 Waiting,\par
29 DownDebouncing,\par
30 Downing,\par
31 Holding,\par
32 HoldUpDebouncing,\par
33 UpDebouncing,\par
34 MultiDownWaiting,\par
35 MultiDowning,\par
36 MultiDownDebouncing,\par
37 \par
38 Count_State,\par
39 \} State;\par
40 {\cf21 #define DEFAULT_STATE Waiting}\par
41 \par
42 {\cf20 /* -------------------------------------------------------------------------- */}\par
43 {\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
44 {\cf20 /* -------------------------------------------------------------------------- */}\par
45 {\cf17 static} State selectNextStateFcn(Waiting)(KeyFSMData *data)\{\par
46 \par
47 {\cf19 if}(data->external.in == Down)\{\par
48 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'8C\'89\'E4\'B8\'8B "});\par
49 {\cf19 return} DownDebouncing;\par
50 \}\par
51 {\cf19 return} Idle_State;\par
52 \}\par
53 \par
54 {\cf17 static} State selectNextStateFcn(DownDebouncing)(KeyFSMData *data)\{\par
55 {\cf19 if}(data->external.in == pUp)\{\par
56 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'9D\'BE\'E5\'BC\'80 "});\par
57 {\cf19 return} Waiting;\par
58 \}\par
59 \par
60 {\cf19 else} {\cf19 if}(data->internal.countDelay == 5)\{\par
61 {\cf19 return} Downing;\par
62 \}\par
63 {\cf19 return} Idle_State;\par
64 \}\par
65 \par
66 {\cf17 static} State selectNextStateFcn(Downing)(KeyFSMData *data)\{\par
67 {\cf19 if}(data->external.in == pUp)\{\par
68 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'9D\'BE\'E5\'BC\'80 "});\par
69 {\cf19 return} UpDebouncing;\par
70 \}\par
71 {\cf19 else} {\cf19 if}(data->internal.countDelay == 10)\{\par
72 {\cf19 return} Holding;\par
73 \}\par
74 {\cf19 return} Idle_State;\par
75 \}\par
76 \par
77 {\cf17 static} State selectNextStateFcn(Holding)(KeyFSMData *data)\{\par
78 {\cf19 if}(data->external.in == pUp)\{\par
79 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'9D\'BE\'E5\'BC\'80 "});\par
80 {\cf19 return} HoldUpDebouncing;\par
81 \}\par
82 {\cf19 return} Idle_State;\par
83 \}\par
84 \par
85 {\cf17 static} State selectNextStateFcn(HoldUpDebouncing)(KeyFSMData *data)\{\par
86 {\cf19 if}(data->external.in == Down)\{\par
87 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'8C\'89\'E4\'B8\'8B "});\par
88 {\cf19 return} Holding;\par
89 \}\par
90 {\cf19 else} {\cf19 if}(data->internal.countDelay == 5)\{\par
91 {\cf19 return} Waiting;\par
92 \}\par
93 {\cf19 return} Idle_State;\par
94 \}\par
95 \par
96 {\cf17 static} State selectNextStateFcn(UpDebouncing)(KeyFSMData *data)\{\par
97 {\cf19 if}(data->external.in == Down)\{\par
98 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'8C\'89\'E4\'B8\'8B "});\par
99 {\cf19 if}(data->internal.countMultiDown)\{\par
100 {\cf19 return} MultiDowning;\par
101 \}\par
102 {\cf19 else}\{\par
103 {\cf19 return} Downing;\par
104 \}\par
105 \}\par
106 {\cf19 else} {\cf19 if}(data->internal.countDelay == 5)\{\par
107 {\cf19 return} MultiDownWaiting;\par
108 \}\par
109 \par
110 {\cf19 return} Idle_State;\par
111 \}\par
112 \par
113 {\cf17 static} State selectNextStateFcn(MultiDownWaiting)(KeyFSMData *data)\{\par
114 {\cf19 if}(data->external.in == Down)\{\par
115 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'8C\'89\'E4\'B8\'8B "});\par
116 {\cf19 return} MultiDownDebouncing;\par
117 \}\par
118 {\cf19 else} {\cf19 if}(data->internal.countDelay == 5)\{\par
119 {\cf19 return} Waiting;\par
120 \}\par
121 {\cf19 return} Idle_State;\par
122 \}\par
123 \par
124 {\cf17 static} State selectNextStateFcn(MultiDowning)(KeyFSMData *data)\{\par
125 {\cf19 if}(data->external.in == pUp)\{\par
126 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'9D\'BE\'E5\'BC\'80 "});\par
127 {\cf19 return} UpDebouncing;\par
128 \}\par
129 {\cf19 return} Idle_State;\par
130 \}\par
131 \par
132 {\cf17 static} State selectNextStateFcn(MultiDownDebouncing)(KeyFSMData *data)\{\par
133 {\cf19 if}(data->external.in == pUp)\{\par
134 FSM_LOG({\cf22 " \'E7\'89\'A9\'E7\'90\'86\'E6\'8C\'89\'E9\'94\'AE\'E6\'9D\'BE\'E5\'BC\'80 "});\par
135 {\cf19 return} MultiDownWaiting;\par
136 \}\par
137 {\cf19 else} {\cf19 if}(data->internal.countDelay == 5)\{\par
138 {\cf19 return} MultiDowning;\par
139 \}\par
140 {\cf19 return} Idle_State;\par
141 \}\par
142 \par
143 {\cf20 /* -------------------------------------------------------------------------- */}\par
144 {\cf20 /* \'E5\'AF\'B9\'E5\'BA\'94\'E7\'9A\'84 action, exit, during \'E5\'87\'BD\'E6\'95\'B0 */}\par
145 {\cf20 /* -------------------------------------------------------------------------- */}\par
146 {\cf17 static} {\cf18 void} actionFcn(enter, Waiting)(KeyFSMData* data)\{\par
147 data->internal.out = Idle;\par
148 data->internal.countDelay = 0;\par
149 data->internal.countMultiDown = 0;\par
150 \}\par
151 \par
152 \par
153 {\cf17 static} {\cf18 void} actionFcn(during, DownDebouncing)(KeyFSMData* data)\par
154 \{\par
155 data->internal.countDelay++;\par
156 FSM_LOG({\cf22 " during\'E5\'BC\'80\'E5\'90\'AF\'E6\'B6\'88\'E6\'8A\'96 "});\par
157 \}\par
158 \par
159 {\cf17 static} {\cf18 void} actionFcn(during, Downing)(KeyFSMData* data)\par
160 \{\par
161 \par
162 data->internal.countDelay++;\par
163 data->internal.out = Idle;\par
164 \}\par
165 \par
166 \par
167 \par
168 {\cf17 static} {\cf18 void} actionFcn(during, UpDebouncing)(KeyFSMData* data)\{\par
169 \par
170 data->internal.countDelay++;\par
171 FSM_LOG({\cf22 " during\'E6\'9D\'BE\'E5\'BC\'80\'E6\'B6\'88\'E6\'8A\'96 "});\par
172 \}\par
173 \par
174 \par
175 {\cf17 static} {\cf18 void} actionFcn(during, Holding)(KeyFSMData* data)\{\par
176 data->internal.out = Idle;\par
177 data->internal.countDelay++;\par
178 {\cf19 if}(data->internal.countDelay == 2)\{\par
179 data->internal.out = Hold;\par
180 data->internal.countDelay = 0;\par
181 \}\par
182 \}\par
183 \par
184 {\cf17 static} {\cf18 void} actionFcn(exit, Holding)(KeyFSMData* data)\{\par
185 data->internal.out = Idle;\par
186 \}\par
187 \par
188 \par
189 \par
190 {\cf17 static} {\cf18 void} actionFcn(during, MultiDownWaiting)(KeyFSMData* data)\{\par
191 data->internal.countDelay++;\par
192 FSM_LOG({\cf22 " during\'E5\'A4\'9A\'E5\'87\'BB\'E7\'AD\'89\'E5\'BE\'85 "});\par
193 \}\par
194 \par
195 \par
196 \par
197 {\cf17 static} {\cf18 void} actionFcn(during, HoldUpDebouncing)(KeyFSMData* data)\par
198 \{\par
199 data->internal.countDelay++;\par
200 \}\par
201 \par
202 \par
203 {\cf17 static} {\cf18 void} actionFcn(during, MultiDownDebouncing)(KeyFSMData* data)\par
204 \{\par
205 data->internal.countDelay++;\par
206 \}\par
207 \par
208 \par
209 {\cf20 /* -------------------------------------------------------------------------- */}\par
210 {\cf20 /* \'E8\'BD\'AC\'E7\'A7\'BB\'E5\'87\'BD\'E6\'95\'B0 */}\par
211 {\cf20 /* -------------------------------------------------------------------------- */}\par
212 {\cf18 void} transitionGeneralAction(KeyFSMData *data)\{\par
213 data->internal.countDelay = 0;\par
214 \}\par
215 \par
216 {\cf17 static} State transitionHandler(DownDebouncing, Downing)(KeyFSMData* data)\{\par
217 data->internal.out = Down;\par
218 \}\par
219 \par
220 \par
221 {\cf17 static} State transitionHandler(UpDebouncing, MultiDownWaiting)(KeyFSMData* data)\{\par
222 data->internal.out = Idle;\par
223 data->internal.countMultiDown++;\par
224 \}\par
225 \par
226 {\cf17 static} State transitionHandler(MultiDownDebouncing, MultiDowning)(KeyFSMData* data)\{\par
227 {\cf19 switch} (data->internal.countMultiDown + 1)\par
228 \{\par
229 {\cf19 case} 2:\par
230 data->internal.out = Down_2times;\par
231 {\cf19 break};\par
232 {\cf19 case} 3:\par
233 data->internal.out = Down_3times;\par
234 {\cf19 break};\par
235 \par
236 {\cf19 default}:\par
237 printf({\cf22 "reach MultiDown Limit!\\n"});\par
238 {\cf19 break};\par
239 \}\par
240 FSM_LOG({\cf22 " \'E5\'A4\'9A\'E5\'87\'BB%d "}, data->internal.countMultiDown+1);\par
241 \}\par
242 \par
243 \par
244 {\cf17 static} State transitionHandler(Downing, Holding)(KeyFSMData* data)\{\par
245 data->internal.out = Hold;\par
246 \}\par
247 \par
248 {\cf17 static} State transitionHandler(MultiDownWaiting, Waiting)(KeyFSMData* data)\{\par
249 data->internal.countMultiDown = 0;\par
250 \}\par
251 \par
252 \par
253 \par
254 {\cf20 /* }\par
255 {\cf20 \'E7\'94\'A8\'E6\'88\'B7\'E8\'87\'AA\'E5\'AE\'9A\'E4\'B9\'89\'E4\'BA\'8B\'E4\'BB\'B6\'E9\'80\'89\'E6\'8B\'A9\'E9\'80\'BB\'E8\'BE\'91\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94\'E2\'80\'94begin }\par
256 {\cf20 */}\par
257 {\cf17 const} {\cf17 static} {\cf18 char} *stateStr[] = \{\par
258 {\cf22 "Idle"},\par
259 {\cf22 "Waiting"},\par
260 {\cf22 "DownDebouncing"},\par
261 {\cf22 "Downing"},\par
262 {\cf22 "Holding"},\par
263 {\cf22 "HoldUpDebouncing"},\par
264 {\cf22 "UpDebouncing"},\par
265 {\cf22 "MultiDownWaiting"},\par
266 {\cf22 "MultiDowning"},\par
267 {\cf22 "MultiDownDebouncing"},\par
268 \};\par
269 \par
270 {\cf17 static} {\cf18 void} printFSM(KeyFSM* pFSM)\{\par
271 KeyFSMData* data = pFSM->base.data;\par
272 FSM_LOG({\cf22 "KeyFSM: "});\par
273 FSM_LOG({\cf22 "%d, \'E5\'BD\'93\'E5\'89\'8D\'E7\'8A\'B6\'E6\'80\'81:%s, \\t\'E4\'B8\'8A\'E4\'B8\'80\'E4\'B8\'AA\'E4\'B8\'8B\'E6\'AC\'A1\'E4\'BA\'8B\'E4\'BB\'B6:%s \\t\'E8\'BD\'AC\'E7\'A7\'BB\'EF\'BC\'9A"}, data->internal.countDelay, stateStr[getFSMCurState((FSM *)pFSM)], stateStr[getFSMNextState((FSM *)pFSM)]);\par
274 \}\par
275 \par
276 \par
277 {\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
2024-05-07 16:45:57 +08:00
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
{
2024-05-07 16:45:57 +08:00
{\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 <stdio.h>}\par
{\f2 #include <stdlib.h>}\par
{\f2 #include <string.h>}\par
{\f2 #include "FSM_protected.h"}\par
{\f2 #include "templateFSM.h"}\par
{\f2 #include "templateFSM_private.h"}\par
}
2024-05-07 16:45:57 +08:00
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Functions\par
\pard\plain
{
2024-05-07 16:45:57 +08:00
\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
templateFSM.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/template/templateFSM.h}
{\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 \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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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 <stdio.h>}\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
\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
templateFSM_private.h\par \pard\plain
{\tc\tcl2 \v FSM_OOP/template/templateFSM_private.h}
{\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 \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 {\cf21 #include "FSM_protected.h"}\par
19 {\cf21 #include "templateFSM.h"}\par
20 {\cf21 #include <stdio.h>}\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 \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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
2024-05-07 16:45:57 +08:00
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
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid Index\par
\pard\plain
{\tc \v Index}
{\field\fldedit {\*\fldinst INDEX \\c2 \\*MERGEFORMAT}{\fldrslt INDEX}}
}