FSM/vscode/manual/html/struct_f_s_m_handler.html

250 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>状态机框架: FSMHandler Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logo_transparent.png"/></td>
<td id="projectalign">
<div id="projectname">状态机框架<span id="projectnumber">&#160;0.1alpha</span>
</div>
<div id="projectbrief">by 天神</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('struct_f_s_m_handler.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle"><div class="title">FSMHandler Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p>状态处理函数集合,全部需要子类重新填充内容
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_f_s_m__protected_8h_source.html">FSM_protected.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a934ff7d1a2f7714694b8a2927b5f8451" id="r_a934ff7d1a2f7714694b8a2927b5f8451"><td class="memItemLeft" align="right" valign="top">int(**&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a934ff7d1a2f7714694b8a2927b5f8451">selectNextState</a> )(void *data, <a class="el" href="struct_f_s_m_signals.html">FSMSignals</a> *signals)</td></tr>
<tr class="separator:a934ff7d1a2f7714694b8a2927b5f8451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b9fc077f8ba0368e8cba02a890aa2f" id="r_ac3b9fc077f8ba0368e8cba02a890aa2f"><td class="memItemLeft" align="right" valign="top">void(**&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac3b9fc077f8ba0368e8cba02a890aa2f">transitionTable</a> )(void *data)</td></tr>
<tr class="separator:ac3b9fc077f8ba0368e8cba02a890aa2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab199071e132b4409d71883155e6b81f2" id="r_ab199071e132b4409d71883155e6b81f2"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab199071e132b4409d71883155e6b81f2">transitionGeneralAction</a> )(void *data)</td></tr>
<tr class="separator:ab199071e132b4409d71883155e6b81f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa733ab89a48f8a63b4afb623b4d6be90" id="r_aa733ab89a48f8a63b4afb623b4d6be90"><td class="memItemLeft" align="right" valign="top">void(**&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa733ab89a48f8a63b4afb623b4d6be90">enterActionTable</a> )(void *data, FSM **cFSM)</td></tr>
<tr class="separator:aa733ab89a48f8a63b4afb623b4d6be90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3506a53c3ee76655a117f7db0da7d3d" id="r_ad3506a53c3ee76655a117f7db0da7d3d"><td class="memItemLeft" align="right" valign="top">void(**&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3506a53c3ee76655a117f7db0da7d3d">duringActionTable</a> )(void *data, FSM **cFSM)</td></tr>
<tr class="separator:ad3506a53c3ee76655a117f7db0da7d3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04721875a9baabc8a51c54a668db9a2c" id="r_a04721875a9baabc8a51c54a668db9a2c"><td class="memItemLeft" align="right" valign="top">void(**&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a04721875a9baabc8a51c54a668db9a2c">exitActionTable</a> )(void *data, FSM **cFSM)</td></tr>
<tr class="separator:a04721875a9baabc8a51c54a668db9a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a976b4147d1c0c9aeb4a61c3cc85376bf" id="r_a976b4147d1c0c9aeb4a61c3cc85376bf"><td class="memItemLeft" align="right" valign="top">void(**&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a976b4147d1c0c9aeb4a61c3cc85376bf">childFSMStepTable</a> )(FSM **cFSM)</td></tr>
<tr class="separator:a976b4147d1c0c9aeb4a61c3cc85376bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>状态处理函数集合,全部需要子类重新填充内容 </p>
<p>这个结构体是私有变量子状态机和外界都不该访问。但是写在FSM_protect.h文件这样方便在子类中添加函数。不然添加函数得再写个函数添加 有点麻烦 </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="a934ff7d1a2f7714694b8a2927b5f8451" name="a934ff7d1a2f7714694b8a2927b5f8451"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a934ff7d1a2f7714694b8a2927b5f8451">&#9670;&#160;</a></span>selectNextState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(** FSMHandler::selectNextState) (void *data, <a class="el" href="struct_f_s_m_signals.html">FSMSignals</a> *signals)</td>
</tr>
</table>
</div><div class="memdoc">
<p>每个状态配置的状态选择函数 </p>
</div>
</div>
<a id="ac3b9fc077f8ba0368e8cba02a890aa2f" name="ac3b9fc077f8ba0368e8cba02a890aa2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3b9fc077f8ba0368e8cba02a890aa2f">&#9670;&#160;</a></span>transitionTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(** FSMHandler::transitionTable) (void *data)</td>
</tr>
</table>
</div><div class="memdoc">
<p>状态转移函数表 </p>
</div>
</div>
<a id="ab199071e132b4409d71883155e6b81f2" name="ab199071e132b4409d71883155e6b81f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab199071e132b4409d71883155e6b81f2">&#9670;&#160;</a></span>transitionGeneralAction</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* FSMHandler::transitionGeneralAction) (void *data)</td>
</tr>
</table>
</div><div class="memdoc">
<p>通用状态转移函数,不论有没有独立的状态转移函数都会执行 </p>
</div>
</div>
<a id="aa733ab89a48f8a63b4afb623b4d6be90" name="aa733ab89a48f8a63b4afb623b4d6be90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa733ab89a48f8a63b4afb623b4d6be90">&#9670;&#160;</a></span>enterActionTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(** FSMHandler::enterActionTable) (void *data, FSM **cFSM)</td>
</tr>
</table>
</div><div class="memdoc">
<p>进入状态时运行的函数和plecs对标 </p>
</div>
</div>
<a id="ad3506a53c3ee76655a117f7db0da7d3d" name="ad3506a53c3ee76655a117f7db0da7d3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3506a53c3ee76655a117f7db0da7d3d">&#9670;&#160;</a></span>duringActionTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(** FSMHandler::duringActionTable) (void *data, FSM **cFSM)</td>
</tr>
</table>
</div><div class="memdoc">
<p>状态不变时运行的函数和plecs对标 </p>
</div>
</div>
<a id="a04721875a9baabc8a51c54a668db9a2c" name="a04721875a9baabc8a51c54a668db9a2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04721875a9baabc8a51c54a668db9a2c">&#9670;&#160;</a></span>exitActionTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(** FSMHandler::exitActionTable) (void *data, FSM **cFSM)</td>
</tr>
</table>
</div><div class="memdoc">
<p>状态退出时运行的函数和plecs对标 </p>
</div>
</div>
<a id="a976b4147d1c0c9aeb4a61c3cc85376bf" name="a976b4147d1c0c9aeb4a61c3cc85376bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a976b4147d1c0c9aeb4a61c3cc85376bf">&#9670;&#160;</a></span>childFSMStepTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(** FSMHandler::childFSMStepTable) (FSM **cFSM)</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000010">Deprecated</a></b></dt><dd>子状态机暂时弃用 </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="struct_f_s_m_handler.html">FSMHandler</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>
</html>