MCB1700_Welcome/Doxygen/html/group___s_m.html

985 lines
58 KiB
HTML

<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Labor04: State Machine header.</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>
<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>
<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>
<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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Labor04
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group___s_m.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#enumval-members">Enumerator</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">State Machine header.</div> </div>
</div><!--header-->
<div class="contents">
<p>Header-File for the state machine.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structstate_transition.html">stateTransition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event table holds events that can generate a state transition. <a href="structstate_transition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structstate_table_events.html">stateTableEvents</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">State table holds states and corresponding event tables. <a href="structstate_table_events.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structstate_machine.html">stateMachine</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">All nesseccary data for a state machine. <a href="structstate_machine.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga93e9842e7c9687f925c76ff8af80be52"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga93e9842e7c9687f925c76ff8af80be52">SW_USE_ONENTRY</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga93e9842e7c9687f925c76ff8af80be52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to one, if onEntry() functions are needed. <a href="group___s_m.html#ga93e9842e7c9687f925c76ff8af80be52">More...</a><br /></td></tr>
<tr class="separator:ga93e9842e7c9687f925c76ff8af80be52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76d63e26773fc165d8636a2705a273dd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga76d63e26773fc165d8636a2705a273dd">SW_USE_ONDO</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga76d63e26773fc165d8636a2705a273dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to one, if onDo() functions are needed. <a href="group___s_m.html#ga76d63e26773fc165d8636a2705a273dd">More...</a><br /></td></tr>
<tr class="separator:ga76d63e26773fc165d8636a2705a273dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57a889c2e6dc4812a3c70d2c0bad58e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga57a889c2e6dc4812a3c70d2c0bad58e5">SW_USE_ONEXIT</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga57a889c2e6dc4812a3c70d2c0bad58e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to one, if onExit() functions are needed. <a href="group___s_m.html#ga57a889c2e6dc4812a3c70d2c0bad58e5">More...</a><br /></td></tr>
<tr class="separator:ga57a889c2e6dc4812a3c70d2c0bad58e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c5e2b453a27b11e20009ab92cd7cd3f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga3c5e2b453a27b11e20009ab92cd7cd3f">SW_USE_TRANSITIONFUNCTION</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga3c5e2b453a27b11e20009ab92cd7cd3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to one, if transition functions are nedded. <a href="group___s_m.html#ga3c5e2b453a27b11e20009ab92cd7cd3f">More...</a><br /></td></tr>
<tr class="separator:ga3c5e2b453a27b11e20009ab92cd7cd3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99da34e4a92dfc63c2082d9657b44345"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga99da34e4a92dfc63c2082d9657b44345">IS_IN</a>(statemachine, state)&#160;&#160;&#160;(statemachine.s32ActualState == state)</td></tr>
<tr class="memdesc:ga99da34e4a92dfc63c2082d9657b44345"><td class="mdescLeft">&#160;</td><td class="mdescRight">MACRO checking if statemachine is in state. <a href="group___s_m.html#ga99da34e4a92dfc63c2082d9657b44345">More...</a><br /></td></tr>
<tr class="separator:ga99da34e4a92dfc63c2082d9657b44345"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga34d0c615f7d75bcc90aa5d7c1cf10cef"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structstate_table_events.html">stateTableEvents</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga34d0c615f7d75bcc90aa5d7c1cf10cef">sStateTable_t</a></td></tr>
<tr class="separator:ga34d0c615f7d75bcc90aa5d7c1cf10cef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga427446bc212fb5561c7ff2859300cff2"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___s_m.html#ga34d0c615f7d75bcc90aa5d7c1cf10cef">sStateTable_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a></td></tr>
<tr class="separator:ga427446bc212fb5561c7ff2859300cff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga432e71548de6e4886f439fec3fd92f77"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group___s_m.html#gaf7b00b5277ad6c0ca1739bacdffceece">specialStates</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga432e71548de6e4886f439fec3fd92f77">eSpecialStates_t</a></td></tr>
<tr class="memdesc:ga432e71548de6e4886f439fec3fd92f77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special states to use with nextStateId in sStateTransitions_t. <a href="group___s_m.html#ga432e71548de6e4886f439fec3fd92f77">More...</a><br /></td></tr>
<tr class="separator:ga432e71548de6e4886f439fec3fd92f77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12e350b317b5d24209b09a63a2293386"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group___s_m.html#ga1a0a4be3c30aa4d0baf63ae33525e790">specialEvents</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga12e350b317b5d24209b09a63a2293386">eSpecialEvents_t</a></td></tr>
<tr class="memdesc:ga12e350b317b5d24209b09a63a2293386"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special events that can occur while the state machine is running. <a href="group___s_m.html#ga12e350b317b5d24209b09a63a2293386">More...</a><br /></td></tr>
<tr class="separator:ga12e350b317b5d24209b09a63a2293386"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae68e0cf14cb8d6332c29de697a4c7a2d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a>) (void)</td></tr>
<tr class="memdesc:gae68e0cf14cb8d6332c29de697a4c7a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback typedef for better readable code. <a href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">More...</a><br /></td></tr>
<tr class="separator:gae68e0cf14cb8d6332c29de697a4c7a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7957141d271ecc40ed63ac9fb308be57"><td class="memItemLeft" align="right" valign="top">typedef _Bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga7957141d271ecc40ed63ac9fb308be57">bCallbackGuard_t</a>) (void)</td></tr>
<tr class="memdesc:ga7957141d271ecc40ed63ac9fb308be57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback for guard functions, that return either true or false. <a href="group___s_m.html#ga7957141d271ecc40ed63ac9fb308be57">More...</a><br /></td></tr>
<tr class="separator:ga7957141d271ecc40ed63ac9fb308be57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e701e95a7ec78e5d709fff3ed827915"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structstate_transition.html">stateTransition</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga1e701e95a7ec78e5d709fff3ed827915">sStateTransitions_t</a></td></tr>
<tr class="memdesc:ga1e701e95a7ec78e5d709fff3ed827915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event table holds events that can generate a state transition. <a href="group___s_m.html#ga1e701e95a7ec78e5d709fff3ed827915">More...</a><br /></td></tr>
<tr class="separator:ga1e701e95a7ec78e5d709fff3ed827915"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ccf076843ee9ea9429f8bb27c1a2fd7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___s_m.html#ga1e701e95a7ec78e5d709fff3ed827915">sStateTransitions_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga6ccf076843ee9ea9429f8bb27c1a2fd7">psStateTransitions_t</a></td></tr>
<tr class="separator:ga6ccf076843ee9ea9429f8bb27c1a2fd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26eb90ada77cafb97019d7e9247cca00"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structstate_table_events.html">stateTableEvents</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga26eb90ada77cafb97019d7e9247cca00">sStateTableEvents_t</a></td></tr>
<tr class="memdesc:ga26eb90ada77cafb97019d7e9247cca00"><td class="mdescLeft">&#160;</td><td class="mdescRight">State table holds states and corresponding event tables. <a href="group___s_m.html#ga26eb90ada77cafb97019d7e9247cca00">More...</a><br /></td></tr>
<tr class="separator:ga26eb90ada77cafb97019d7e9247cca00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaede16ffacd18615753ae97768d232e75"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___s_m.html#ga26eb90ada77cafb97019d7e9247cca00">sStateTableEvents_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gaede16ffacd18615753ae97768d232e75">psStateTableEvents_t</a></td></tr>
<tr class="separator:gaede16ffacd18615753ae97768d232e75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe60fa549ca239452b192bd58fa0a262"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structstate_machine.html">stateMachine</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gafe60fa549ca239452b192bd58fa0a262">sStateMachine_t</a></td></tr>
<tr class="memdesc:gafe60fa549ca239452b192bd58fa0a262"><td class="mdescLeft">&#160;</td><td class="mdescRight">All nesseccary data for a state machine. <a href="group___s_m.html#gafe60fa549ca239452b192bd58fa0a262">More...</a><br /></td></tr>
<tr class="separator:gafe60fa549ca239452b192bd58fa0a262"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10bfa3198b48a517ad5a59dab2bc5149"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___s_m.html#gafe60fa549ca239452b192bd58fa0a262">sStateMachine_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a></td></tr>
<tr class="separator:ga10bfa3198b48a517ad5a59dab2bc5149"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaf7b00b5277ad6c0ca1739bacdffceece"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gaf7b00b5277ad6c0ca1739bacdffceece">specialStates</a> { <a class="el" href="group___s_m.html#ggaf7b00b5277ad6c0ca1739bacdffceeceaa369585a250430e128ba0ef57a8e2692">FAULT_STATE</a> = -1,
<a class="el" href="group___s_m.html#ggaf7b00b5277ad6c0ca1739bacdffceecea1b5757828d7b174efa07d686e5d5acac">FINAL_STATE</a> = -2
}</td></tr>
<tr class="memdesc:gaf7b00b5277ad6c0ca1739bacdffceece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special states to use with nextStateId in sStateTransitions_t. <a href="group___s_m.html#gaf7b00b5277ad6c0ca1739bacdffceece">More...</a><br /></td></tr>
<tr class="separator:gaf7b00b5277ad6c0ca1739bacdffceece"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a0a4be3c30aa4d0baf63ae33525e790"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga1a0a4be3c30aa4d0baf63ae33525e790">specialEvents</a> { <a class="el" href="group___s_m.html#gga1a0a4be3c30aa4d0baf63ae33525e790a5856f037cd70ecf6fca11999c11a4a0d">NO_EVENT</a> = -1,
<a class="el" href="group___s_m.html#gga1a0a4be3c30aa4d0baf63ae33525e790adbe18484536257cc0966f0a0df05863e">TIME_EVENT</a> = -2
}</td></tr>
<tr class="memdesc:ga1a0a4be3c30aa4d0baf63ae33525e790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special events that can occur while the state machine is running. <a href="group___s_m.html#ga1a0a4be3c30aa4d0baf63ae33525e790">More...</a><br /></td></tr>
<tr class="separator:ga1a0a4be3c30aa4d0baf63ae33525e790"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaacfab84b89a33fb81412b97c8cf089eb"><td class="memItemLeft" align="right" valign="top">_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gaacfab84b89a33fb81412b97c8cf089eb">bFsmframeworkInitialize</a> (<a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a> psStateMachine, <a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a> psStateTable, int32_t s32StartState, uint32_t u32StateCount, uint32_t u32EventCount, <a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a> vInitCallback)</td></tr>
<tr class="memdesc:gaacfab84b89a33fb81412b97c8cf089eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the State Machine. <a href="group___s_m.html#gaacfab84b89a33fb81412b97c8cf089eb">More...</a><br /></td></tr>
<tr class="separator:gaacfab84b89a33fb81412b97c8cf089eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab37c7b983ce34de002616a0607371c69"><td class="memItemLeft" align="right" valign="top">_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gab37c7b983ce34de002616a0607371c69">bFsmframeworkDispatchEvent</a> (<a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a> psStateMachine, int32_t s32Event)</td></tr>
<tr class="memdesc:gab37c7b983ce34de002616a0607371c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch Event. <a href="group___s_m.html#gab37c7b983ce34de002616a0607371c69">More...</a><br /></td></tr>
<tr class="separator:gab37c7b983ce34de002616a0607371c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1647cf225f639c7336518153c8a5ea85"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga1647cf225f639c7336518153c8a5ea85">s32FsmframeworkGetState</a> (<a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a> psStateMachine)</td></tr>
<tr class="memdesc:ga1647cf225f639c7336518153c8a5ea85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the actual state of a statemachine. <a href="group___s_m.html#ga1647cf225f639c7336518153c8a5ea85">More...</a><br /></td></tr>
<tr class="separator:ga1647cf225f639c7336518153c8a5ea85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e0454440b6c4435def62aa706c9f8b3"><td class="memItemLeft" align="right" valign="top">_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga6e0454440b6c4435def62aa706c9f8b3">bFsmframeworkIsStateChanged</a> (<a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a> psStateMachine)</td></tr>
<tr class="memdesc:ga6e0454440b6c4435def62aa706c9f8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the statechanged flag. 1 if last event changed the state, 0 if last event did not changed the state. <a href="group___s_m.html#ga6e0454440b6c4435def62aa706c9f8b3">More...</a><br /></td></tr>
<tr class="separator:ga6e0454440b6c4435def62aa706c9f8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga5cdc2c9f58e42e1c10c43dff82706129"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga5cdc2c9f58e42e1c10c43dff82706129">s32EventId</a></td></tr>
<tr class="separator:ga5cdc2c9f58e42e1c10c43dff82706129"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga823a0b98f2bf81fb078373a776efe79c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#ga7957141d271ecc40ed63ac9fb308be57">bCallbackGuard_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga823a0b98f2bf81fb078373a776efe79c">bGuardCb</a></td></tr>
<tr class="separator:ga823a0b98f2bf81fb078373a776efe79c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ac8558ca920bf24327003a266e56c2b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga1ac8558ca920bf24327003a266e56c2b">vTransitionCb</a></td></tr>
<tr class="separator:ga1ac8558ca920bf24327003a266e56c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga084f33ee7b046c6c52467c63a92ebc2b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga084f33ee7b046c6c52467c63a92ebc2b">s32NextStateId</a></td></tr>
<tr class="separator:ga084f33ee7b046c6c52467c63a92ebc2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a3bc923e2ded28e806ca2d04d0b1774"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga3a3bc923e2ded28e806ca2d04d0b1774">s32StateId</a></td></tr>
<tr class="separator:ga3a3bc923e2ded28e806ca2d04d0b1774"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd39a5c1f85b2f88bb31de1758b9339d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gacd39a5c1f85b2f88bb31de1758b9339d">vOnEntry</a></td></tr>
<tr class="separator:gacd39a5c1f85b2f88bb31de1758b9339d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf401a845f0df48e5ed312d31316b0867"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gaf401a845f0df48e5ed312d31316b0867">vOnDo</a></td></tr>
<tr class="separator:gaf401a845f0df48e5ed312d31316b0867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade3ee808674432465d4fe132a7b38569"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gade3ee808674432465d4fe132a7b38569">vOnExit</a></td></tr>
<tr class="separator:gade3ee808674432465d4fe132a7b38569"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6cb6ab5a5c3a79b92e7872cc1ee1601"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#ga6ccf076843ee9ea9429f8bb27c1a2fd7">psStateTransitions_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gae6cb6ab5a5c3a79b92e7872cc1ee1601">psStateEvents</a></td></tr>
<tr class="separator:gae6cb6ab5a5c3a79b92e7872cc1ee1601"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0efffa2b6c35891664891ba15ffc7abf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga0efffa2b6c35891664891ba15ffc7abf">psNestedStateTable</a></td></tr>
<tr class="separator:ga0efffa2b6c35891664891ba15ffc7abf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c38634e13a564a3a2cd28c7ebf9dde7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga8c38634e13a564a3a2cd28c7ebf9dde7">u32StateMachineId</a></td></tr>
<tr class="separator:ga8c38634e13a564a3a2cd28c7ebf9dde7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae46d0848e5bf7496e27f4b6c355bc86b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gae46d0848e5bf7496e27f4b6c355bc86b">s32ActualState</a></td></tr>
<tr class="separator:gae46d0848e5bf7496e27f4b6c355bc86b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga197f9575f7a3a8638622e7dc5fc7be58"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga197f9575f7a3a8638622e7dc5fc7be58">s32NextState</a></td></tr>
<tr class="separator:ga197f9575f7a3a8638622e7dc5fc7be58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab465e2b8a2f0ef43b549a66a0e91245a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gab465e2b8a2f0ef43b549a66a0e91245a">u32StateCount</a></td></tr>
<tr class="separator:gab465e2b8a2f0ef43b549a66a0e91245a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac0ab152443940c2fcd919e59b9ee87a7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gac0ab152443940c2fcd919e59b9ee87a7">u32EventCount</a></td></tr>
<tr class="separator:gac0ab152443940c2fcd919e59b9ee87a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d48771d20211e9a6405911d8e41db8c"><td class="memItemLeft" align="right" valign="top">_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#ga7d48771d20211e9a6405911d8e41db8c">bStateChanged</a></td></tr>
<tr class="separator:ga7d48771d20211e9a6405911d8e41db8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7907afecdc76d8302dad95d713aef07"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_m.html#gae7907afecdc76d8302dad95d713aef07">psStateTable</a></td></tr>
<tr class="separator:gae7907afecdc76d8302dad95d713aef07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Header-File for the state machine. </p>
<p>This statemachine framework can be used for easy implementing an own state machine. The only thing you need is a two-dimensional state transition table with all states and events.</p>
<p>There are some limitations and restrictions to this implementation of a statemachine framework. <br />
</p><ul>
<li>A complete event table for each state is needed. (memory usage) </li>
</ul>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga99da34e4a92dfc63c2082d9657b44345"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga99da34e4a92dfc63c2082d9657b44345">&#9670;&nbsp;</a></span>IS_IN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_IN</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">statemachine, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">state&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(statemachine.s32ActualState == state)</td>
</tr>
</table>
</div><div class="memdoc">
<p>MACRO checking if statemachine is in state. </p>
</div>
</div>
<a id="ga76d63e26773fc165d8636a2705a273dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga76d63e26773fc165d8636a2705a273dd">&#9670;&nbsp;</a></span>SW_USE_ONDO</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SW_USE_ONDO&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to one, if onDo() functions are needed. </p>
</div>
</div>
<a id="ga93e9842e7c9687f925c76ff8af80be52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93e9842e7c9687f925c76ff8af80be52">&#9670;&nbsp;</a></span>SW_USE_ONENTRY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SW_USE_ONENTRY&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to one, if onEntry() functions are needed. </p>
</div>
</div>
<a id="ga57a889c2e6dc4812a3c70d2c0bad58e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga57a889c2e6dc4812a3c70d2c0bad58e5">&#9670;&nbsp;</a></span>SW_USE_ONEXIT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SW_USE_ONEXIT&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to one, if onExit() functions are needed. </p>
</div>
</div>
<a id="ga3c5e2b453a27b11e20009ab92cd7cd3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3c5e2b453a27b11e20009ab92cd7cd3f">&#9670;&nbsp;</a></span>SW_USE_TRANSITIONFUNCTION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SW_USE_TRANSITIONFUNCTION&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to one, if transition functions are nedded. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga7957141d271ecc40ed63ac9fb308be57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7957141d271ecc40ed63ac9fb308be57">&#9670;&nbsp;</a></span>bCallbackGuard_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef _Bool(* bCallbackGuard_t) (void)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Callback for guard functions, that return either true or false. </p>
</div>
</div>
<a id="ga12e350b317b5d24209b09a63a2293386"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga12e350b317b5d24209b09a63a2293386">&#9670;&nbsp;</a></span>eSpecialEvents_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="group___s_m.html#ga1a0a4be3c30aa4d0baf63ae33525e790">specialEvents</a> <a class="el" href="group___s_m.html#ga12e350b317b5d24209b09a63a2293386">eSpecialEvents_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special events that can occur while the state machine is running. </p>
</div>
</div>
<a id="ga432e71548de6e4886f439fec3fd92f77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga432e71548de6e4886f439fec3fd92f77">&#9670;&nbsp;</a></span>eSpecialStates_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="group___s_m.html#gaf7b00b5277ad6c0ca1739bacdffceece">specialStates</a> <a class="el" href="group___s_m.html#ga432e71548de6e4886f439fec3fd92f77">eSpecialStates_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special states to use with nextStateId in sStateTransitions_t. </p>
</div>
</div>
<a id="ga10bfa3198b48a517ad5a59dab2bc5149"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga10bfa3198b48a517ad5a59dab2bc5149">&#9670;&nbsp;</a></span>psStateMachine_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group___s_m.html#gafe60fa549ca239452b192bd58fa0a262">sStateMachine_t</a>* <a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga427446bc212fb5561c7ff2859300cff2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga427446bc212fb5561c7ff2859300cff2">&#9670;&nbsp;</a></span>psStateTable_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group___s_m.html#ga34d0c615f7d75bcc90aa5d7c1cf10cef">sStateTable_t</a>* <a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaede16ffacd18615753ae97768d232e75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaede16ffacd18615753ae97768d232e75">&#9670;&nbsp;</a></span>psStateTableEvents_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group___s_m.html#ga26eb90ada77cafb97019d7e9247cca00">sStateTableEvents_t</a>* <a class="el" href="group___s_m.html#gaede16ffacd18615753ae97768d232e75">psStateTableEvents_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga6ccf076843ee9ea9429f8bb27c1a2fd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ccf076843ee9ea9429f8bb27c1a2fd7">&#9670;&nbsp;</a></span>psStateTransitions_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group___s_m.html#ga1e701e95a7ec78e5d709fff3ed827915">sStateTransitions_t</a>* <a class="el" href="group___s_m.html#ga6ccf076843ee9ea9429f8bb27c1a2fd7">psStateTransitions_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gafe60fa549ca239452b192bd58fa0a262"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafe60fa549ca239452b192bd58fa0a262">&#9670;&nbsp;</a></span>sStateMachine_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structstate_machine.html">stateMachine</a> <a class="el" href="group___s_m.html#gafe60fa549ca239452b192bd58fa0a262">sStateMachine_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>All nesseccary data for a state machine. </p>
<p>This struct holds all data that is needed by a state machine. Saving the state table is important, because it is needed to identify the state machine. </p>
</div>
</div>
<a id="ga34d0c615f7d75bcc90aa5d7c1cf10cef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga34d0c615f7d75bcc90aa5d7c1cf10cef">&#9670;&nbsp;</a></span>sStateTable_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structstate_table_events.html">stateTableEvents</a> <a class="el" href="group___s_m.html#ga34d0c615f7d75bcc90aa5d7c1cf10cef">sStateTable_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Forward declaration of <a class="el" href="structstate_table_events.html" title="State table holds states and corresponding event tables.">stateTableEvents</a> </p>
</div>
</div>
<a id="ga26eb90ada77cafb97019d7e9247cca00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26eb90ada77cafb97019d7e9247cca00">&#9670;&nbsp;</a></span>sStateTableEvents_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structstate_table_events.html">stateTableEvents</a> <a class="el" href="group___s_m.html#ga26eb90ada77cafb97019d7e9247cca00">sStateTableEvents_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>State table holds states and corresponding event tables. </p>
<p>An entry in state table holds the state id for which the entry is created, as well as the event table and three callbacks for functions that are called on state entry, exit and while beeing in the state. Not used functions should be null. </p>
</div>
</div>
<a id="ga1e701e95a7ec78e5d709fff3ed827915"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1e701e95a7ec78e5d709fff3ed827915">&#9670;&nbsp;</a></span>sStateTransitions_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structstate_transition.html">stateTransition</a> <a class="el" href="group___s_m.html#ga1e701e95a7ec78e5d709fff3ed827915">sStateTransitions_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Event table holds events that can generate a state transition. </p>
<p>An entry for the event table holds the event, that generates a state transition as well as callbacks for the guard check and the transition function. A transition between two states can only be done, if an event occurs and the guard is true, otherwise the state won't change. If both are true, the transition function will be called, if there is one and the state changes to the nextStateId. A Table should only hold events for one state, so each state should have it's own event table. </p>
</div>
</div>
<a id="gae68e0cf14cb8d6332c29de697a4c7a2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae68e0cf14cb8d6332c29de697a4c7a2d">&#9670;&nbsp;</a></span>vCallback_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* vCallback_t) (void)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Callback typedef for better readable code. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga1a0a4be3c30aa4d0baf63ae33525e790"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a0a4be3c30aa4d0baf63ae33525e790">&#9670;&nbsp;</a></span>specialEvents</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___s_m.html#ga1a0a4be3c30aa4d0baf63ae33525e790">specialEvents</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special events that can occur while the state machine is running. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga1a0a4be3c30aa4d0baf63ae33525e790a5856f037cd70ecf6fca11999c11a4a0d"></a>NO_EVENT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga1a0a4be3c30aa4d0baf63ae33525e790adbe18484536257cc0966f0a0df05863e"></a>TIME_EVENT&#160;</td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<a id="gaf7b00b5277ad6c0ca1739bacdffceece"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf7b00b5277ad6c0ca1739bacdffceece">&#9670;&nbsp;</a></span>specialStates</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___s_m.html#gaf7b00b5277ad6c0ca1739bacdffceece">specialStates</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special states to use with nextStateId in sStateTransitions_t. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaf7b00b5277ad6c0ca1739bacdffceeceaa369585a250430e128ba0ef57a8e2692"></a>FAULT_STATE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggaf7b00b5277ad6c0ca1739bacdffceecea1b5757828d7b174efa07d686e5d5acac"></a>FINAL_STATE&#160;</td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab37c7b983ce34de002616a0607371c69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab37c7b983ce34de002616a0607371c69">&#9670;&nbsp;</a></span>bFsmframeworkDispatchEvent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_Bool bFsmframeworkDispatchEvent </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a>&#160;</td>
<td class="paramname"><em>psStateMachine</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>s32Event</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Dispatch Event. </p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___s_m_gab37c7b983ce34de002616a0607371c69_icgraph.png" border="0" usemap="#agroup___s_m_gab37c7b983ce34de002616a0607371c69_icgraph" alt=""/></div>
<map name="group___s_m_gab37c7b983ce34de002616a0607371c69_icgraph" id="agroup___s_m_gab37c7b983ce34de002616a0607371c69_icgraph">
<area shape="rect" title="Dispatch Event." alt="" coords="487,31,689,57"/>
<area shape="rect" href="_fsm_tape_8h.html#a923a26f00769affe35ff37a5bdddfbf9" title="Sends an event to the state machine." alt="" coords="271,5,439,32"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#a7efd0fb7272aa90b21cb7bba64ce1241" title="Sends an event to the state machine." alt="" coords="271,56,439,83"/>
<area shape="rect" href="_threads_8h.html#a9f2e86465d7a7cdc9d30365569b93a42" title="run FSM for Tape" alt="" coords="104,5,223,32"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,31,56,57"/>
<area shape="rect" href="_threads_8h.html#a15199bd646f5d7d26beb8b94d72f0264" title="run FSM for VCR" alt="" coords="104,56,223,83"/>
</map>
</div>
</div>
</div>
<a id="gaacfab84b89a33fb81412b97c8cf089eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaacfab84b89a33fb81412b97c8cf089eb">&#9670;&nbsp;</a></span>bFsmframeworkInitialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_Bool bFsmframeworkInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a>&#160;</td>
<td class="paramname"><em>psStateMachine</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a>&#160;</td>
<td class="paramname"><em>psStateTable</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>s32StartState</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>u32StateCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>u32EventCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a>&#160;</td>
<td class="paramname"><em>vInitCallback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialization of the State Machine. </p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___s_m_gaacfab84b89a33fb81412b97c8cf089eb_icgraph.png" border="0" usemap="#agroup___s_m_gaacfab84b89a33fb81412b97c8cf089eb_icgraph" alt=""/></div>
<map name="group___s_m_gaacfab84b89a33fb81412b97c8cf089eb_icgraph" id="group___s_m_gaacfab84b89a33fb81412b97c8cf089eb_icgraph">
<area shape="rect" title="Initialization of the State Machine." alt="" coords="429,31,595,57"/>
<area shape="rect" href="_fsm_tape_8h.html#a16cc105cba4a2bcc187b37802e58f83c" title="Wrapper function to statemachine_init()." alt="" coords="251,5,381,32"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#a222f4d8dc38c7189da1ec07eaec8308e" title="Wrapper function to statemachine_init()." alt="" coords="251,56,381,83"/>
<area shape="rect" href="_main_8c.html#a28f2269e99057d03a06ba743893ce407" title="initialize app" alt="" coords="104,31,203,57"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,31,56,57"/>
</map>
</div>
</div>
</div>
<a id="ga6e0454440b6c4435def62aa706c9f8b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e0454440b6c4435def62aa706c9f8b3">&#9670;&nbsp;</a></span>bFsmframeworkIsStateChanged()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_Bool bFsmframeworkIsStateChanged </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a>&#160;</td>
<td class="paramname"><em>psStateMachine</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the statechanged flag. 1 if last event changed the state, 0 if last event did not changed the state. </p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___s_m_ga6e0454440b6c4435def62aa706c9f8b3_icgraph.png" border="0" usemap="#agroup___s_m_ga6e0454440b6c4435def62aa706c9f8b3_icgraph" alt=""/></div>
<map name="group___s_m_ga6e0454440b6c4435def62aa706c9f8b3_icgraph" id="agroup___s_m_ga6e0454440b6c4435def62aa706c9f8b3_icgraph">
<area shape="rect" title="Get the statechanged flag. 1 if last event changed the state, 0 if last event did not changed the sta..." alt="" coords="496,31,707,57"/>
<area shape="rect" href="_fsm_tape_8h.html#ae4a4baca999da573307c7b1ba3a1ebfa" title="Indicates if a state changed happend." alt="" coords="271,5,448,32"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#a1af893c066add85104fc8093504df0d5" title="Indicates if a state changed happend." alt="" coords="271,56,448,83"/>
<area shape="rect" href="_threads_8h.html#a9f2e86465d7a7cdc9d30365569b93a42" title="run FSM for Tape" alt="" coords="104,5,223,32"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,31,56,57"/>
<area shape="rect" href="_threads_8h.html#a15199bd646f5d7d26beb8b94d72f0264" title="run FSM for VCR" alt="" coords="104,56,223,83"/>
</map>
</div>
</div>
</div>
<a id="ga1647cf225f639c7336518153c8a5ea85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1647cf225f639c7336518153c8a5ea85">&#9670;&nbsp;</a></span>s32FsmframeworkGetState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t s32FsmframeworkGetState </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___s_m.html#ga10bfa3198b48a517ad5a59dab2bc5149">psStateMachine_t</a>&#160;</td>
<td class="paramname"><em>psStateMachine</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the actual state of a statemachine. </p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___s_m_ga1647cf225f639c7336518153c8a5ea85_icgraph.png" border="0" usemap="#agroup___s_m_ga1647cf225f639c7336518153c8a5ea85_icgraph" alt=""/></div>
<map name="group___s_m_ga1647cf225f639c7336518153c8a5ea85_icgraph" id="group___s_m_ga1647cf225f639c7336518153c8a5ea85_icgraph">
<area shape="rect" title="Get the actual state of a statemachine." alt="" coords="431,81,613,108"/>
<area shape="rect" href="_fsm_tape_8h.html#afff00aa02205354a0983d59352b60397" title="Get the name of the current state." alt="" coords="205,5,383,32"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#aa966be54c30b5d074616e0c5466b9d36" title="Get the name of the current state." alt="" coords="206,56,382,83"/>
<area shape="rect" href="_fsm_tape_8h.html#ae19eae07dda85143329af0a384fe5296" title="Returns the current state of the fsm." alt="" coords="219,107,369,133"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#af424a50960bfab12903bb41be9584e74" title="Returns the current state of the fsm." alt="" coords="220,157,368,184"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#a698d66c10ea05d79d2d41b2e3f7148c3" title="guard for Tape in and not at begin" alt="" coords="5,67,157,109"/>
<area shape="rect" href="_fsm_v_c_r_8h.html#a26e841d7379310a74190a21d88212813" title="guard for Tape in and not at end" alt="" coords="5,133,157,174"/>
</map>
</div>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="ga823a0b98f2bf81fb078373a776efe79c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga823a0b98f2bf81fb078373a776efe79c">&#9670;&nbsp;</a></span>bGuardCb</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#ga7957141d271ecc40ed63ac9fb308be57">bCallbackGuard_t</a> bGuardCb</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7d48771d20211e9a6405911d8e41db8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d48771d20211e9a6405911d8e41db8c">&#9670;&nbsp;</a></span>bStateChanged</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_Bool bStateChanged</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga0efffa2b6c35891664891ba15ffc7abf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0efffa2b6c35891664891ba15ffc7abf">&#9670;&nbsp;</a></span>psNestedStateTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a> psNestedStateTable</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gae6cb6ab5a5c3a79b92e7872cc1ee1601"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae6cb6ab5a5c3a79b92e7872cc1ee1601">&#9670;&nbsp;</a></span>psStateEvents</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#ga6ccf076843ee9ea9429f8bb27c1a2fd7">psStateTransitions_t</a> psStateEvents</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gae7907afecdc76d8302dad95d713aef07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae7907afecdc76d8302dad95d713aef07">&#9670;&nbsp;</a></span>psStateTable</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#ga427446bc212fb5561c7ff2859300cff2">psStateTable_t</a> psStateTable</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gae46d0848e5bf7496e27f4b6c355bc86b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae46d0848e5bf7496e27f4b6c355bc86b">&#9670;&nbsp;</a></span>s32ActualState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t s32ActualState</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga5cdc2c9f58e42e1c10c43dff82706129"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5cdc2c9f58e42e1c10c43dff82706129">&#9670;&nbsp;</a></span>s32EventId</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t s32EventId</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga197f9575f7a3a8638622e7dc5fc7be58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga197f9575f7a3a8638622e7dc5fc7be58">&#9670;&nbsp;</a></span>s32NextState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t s32NextState</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga084f33ee7b046c6c52467c63a92ebc2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga084f33ee7b046c6c52467c63a92ebc2b">&#9670;&nbsp;</a></span>s32NextStateId</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t s32NextStateId</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3a3bc923e2ded28e806ca2d04d0b1774"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a3bc923e2ded28e806ca2d04d0b1774">&#9670;&nbsp;</a></span>s32StateId</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t s32StateId</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gac0ab152443940c2fcd919e59b9ee87a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac0ab152443940c2fcd919e59b9ee87a7">&#9670;&nbsp;</a></span>u32EventCount</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t u32EventCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gab465e2b8a2f0ef43b549a66a0e91245a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab465e2b8a2f0ef43b549a66a0e91245a">&#9670;&nbsp;</a></span>u32StateCount</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t u32StateCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8c38634e13a564a3a2cd28c7ebf9dde7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8c38634e13a564a3a2cd28c7ebf9dde7">&#9670;&nbsp;</a></span>u32StateMachineId</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t u32StateMachineId</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf401a845f0df48e5ed312d31316b0867"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf401a845f0df48e5ed312d31316b0867">&#9670;&nbsp;</a></span>vOnDo</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a> vOnDo</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gacd39a5c1f85b2f88bb31de1758b9339d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd39a5c1f85b2f88bb31de1758b9339d">&#9670;&nbsp;</a></span>vOnEntry</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a> vOnEntry</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gade3ee808674432465d4fe132a7b38569"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade3ee808674432465d4fe132a7b38569">&#9670;&nbsp;</a></span>vOnExit</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a> vOnExit</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga1ac8558ca920bf24327003a266e56c2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1ac8558ca920bf24327003a266e56c2b">&#9670;&nbsp;</a></span>vTransitionCb</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___s_m.html#gae68e0cf14cb8d6332c29de697a4c7a2d">vCallback_t</a> vTransitionCb</td>
</tr>
</table>
</div><div class="memdoc">
</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="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>