diff options
Diffstat (limited to 'ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html')
-rw-r--r-- | ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html new file mode 100644 index 0000000..ce4d6ae --- /dev/null +++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html @@ -0,0 +1,207 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/> +<title>UNICENS: Command Interpreter</title> +<link href="tabs.css" rel="stylesheet" type="text/css"/> +<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> +<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="navtree.js"></script> +<script type="text/javascript"> + $(document).ready(initResizable); +</script> +<link href="search/search.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="search/search.js"></script> +<script type="text/javascript"> + $(document).ready(function() { searchBox.OnSelectItem(0); }); +</script> +<link href="style_html.css" rel="stylesheet" type="text/css" /> +<link href="inic.css" rel="stylesheet" type="text/css"/> +</head> +<body> +<div class="GlobalWrapper"> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr> + <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td> + <td> + <div id="projectname">UNICENS <span id="projectnumber">V2.1.0-3491</span></div> + <div id="projectbrief">User Manual and API Reference</div> + <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive"> + <span class="left"> + <img id="MSearchSelect" src="search/mag_sel.png" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + alt=""/> + <input type="text" id="MSearchField" value="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.png" alt=""/></a> + </span> + </div> +</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<script type="text/javascript"> +var searchBox = new SearchBox("searchBox", "search",false,'Search'); +</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"> +$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__c_m_d.html','');}); +</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)"> +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Pages</a></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="headertitle"> +<div class="title">Command Interpreter </div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><h1>Introduction</h1> +<p>The Command Interpreter provides structures and functions for parsing incoming messages.</p> +<p><b>Features:</b></p> +<ul> +<li>allows dynamic adding and removing of MessageId Table</li> +<li>calls the belonging handler function</li> +</ul> +<p>The application provides a MessageId Table which contains all supported MessageIds together with their belonging handler functions. The MessageId Table is an array of <a class="el" href="struct_ucs___cmd___msg_id__t.html" title="Structure of a single element of the MessageId Table.">Ucs_Cmd_MsgId_t</a> elements. Each element contains a MessageId (0x0000 .. 0xFFFE) and a pointer to the belonging handler function. The table ends with the termination entry {<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8">UCS_CMD_MSGID_TERMINATION</a>, NULL}.</p> +<h1>Usage</h1> +<p>The application announces the MessageId Table with the function <a class="el" href="group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7" title="Add a MessageId Table to the Command Interpreter.">Ucs_Cmd_AddMsgIdTable()</a>. The connection to the MessageId Table can be removed with the function <a class="el" href="group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4" title="Remove a MessageId Table from the Command Interpreter.">Ucs_Cmd_RemoveMsgIdTable()</a>.</p> +<p>A received message is given to <a class="el" href="group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1" title="Decode an MCM message.">Ucs_Cmd_DecodeMsg()</a>. This function retrieves the MessageId from the message and calls the belonging handler function. The handler function can return three values:</p> +<table class="doxtable"> +<tr> +<th>Value </th><th>Description</th></tr> +<tr> +<td>UCS_CMD_RET_SUCCESS </td><td>The handler function succeeded. </td></tr> +<tr> +<td>UCS_CMD_RET_ERR_TX_BUSY </td><td>The handler function could not send an answer because no free Tx Buffer was available. </td></tr> +<tr> +<td>UCS_CMD_RET_ERR_APPL </td><td>An error happened in handler function. </td></tr> +</table> +<h1>Example</h1> +<p>The following code example shows how the Command Interpreter API function can be used:</p> +<div class="fragment"><div class="line"><a class="code" href="struct_ucs___cmd___msg_id__t.html" title="Structure of a single element of the MessageId Table.">Ucs_Cmd_MsgId_t</a> App_MsgIdTable[] = </div> +<div class="line">{</div> +<div class="line"> { 0x1234U, App_Handler_1234},</div> +<div class="line"> { 0x1238U, App_Handler_1238},</div> +<div class="line"> { <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8" title="Denotes the end of an MessageId Table.">UCS_CMD_MSGID_TERMINATION</a>, NULL } </div> +<div class="line">};</div> +<div class="line"></div> +<div class="line"></div> +<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div> +<div class="line">{</div> +<div class="line"> ...</div> +<div class="line"> </div> +<div class="line"> <a class="code" href="group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7" title="Add a MessageId Table to the Command Interpreter.">Ucs_Cmd_AddMsgIdTable</a>(ucs_inst_ptr, &App_MsgIdTable[0]);</div> +<div class="line"> </div> +<div class="line"> ...</div> +<div class="line"> </div> +<div class="line"> <span class="keywordflow">while</span>(1)</div> +<div class="line"> {</div> +<div class="line"> <a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr = <a class="code" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg</a>(ucs_inst_ptr);</div> +<div class="line"> <span class="keywordflow">if</span> (msg_rx_ptr != NULL)</div> +<div class="line"> {</div> +<div class="line"> <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb" title="Result codes used for Command Interpreter API functions.">Ucs_Cmd_Return_t</a> cmd_ret;</div> +<div class="line"></div> +<div class="line"> cmd_ret = <a class="code" href="group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1" title="Decode an MCM message.">Ucs_Cmd_DecodeMsg</a>(ucs_inst_ptr, msg_rx_ptr);</div> +<div class="line"> <span class="keywordflow">if</span> (cmd_ret == <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a>)</div> +<div class="line"> {</div> +<div class="line"> <a class="code" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg</a>(ucs_inst_ptr);</div> +<div class="line"> }</div> +<div class="line"> <span class="keywordflow">else</span></div> +<div class="line"> {</div> +<div class="line"> <span class="comment">/* appropriate error handling */</span> </div> +<div class="line"> }</div> +<div class="line"> }</div> +<div class="line"> }</div> +<div class="line"> }</div> +<div class="line"></div> +<div class="line"><a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb" title="Result codes used for Command Interpreter API functions.">Ucs_Cmd_Return_t</a> App_Handler_1234(<a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr, <span class="keywordtype">void</span> *user_ptr) </div> +<div class="line">{</div> +<div class="line"> uint16_t cnt;</div> +<div class="line"> </div> +<div class="line"> <span class="comment">/* print source address */</span></div> +<div class="line"> (void)printf(<span class="stringliteral">"App_Handler_1234() called from 0x%04X.\n"</span>, msg_rx_ptr-><a class="code" href="struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6" title="Source address.">source_address</a>);</div> +<div class="line"> </div> +<div class="line"> <span class="comment">/* print payload */</span></div> +<div class="line"> (void)printf(<span class="stringliteral">" Payload: "</span>);</div> +<div class="line"> <span class="keywordflow">for</span> (cnt = 0U; cnt < msg_rx_ptr-><a class="code" href="struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Payload size in bytes.">data_size</a>; cnt++)</div> +<div class="line"> {</div> +<div class="line"> (void)printf(<span class="stringliteral">"%02X "</span>, msg_rx_ptr-><a class="code" href="struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Reference to payload.">data_ptr</a>[cnt]);</div> +<div class="line"> }</div> +<div class="line"> (void)printf(<span class="stringliteral">"\n"</span>);</div> +<div class="line"> </div> +<div class="line"> <span class="keywordflow">return</span> <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a>;</div> +<div class="line">}</div> +<div class="line"></div> +<div class="line"><a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb" title="Result codes used for Command Interpreter API functions.">Ucs_Cmd_Return_t</a> App_Handler_1238(<a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr, <span class="keywordtype">void</span> *user_ptr) </div> +<div class="line">{</div> +<div class="line"> uint16_t cnt;</div> +<div class="line"> </div> +<div class="line"> <span class="comment">/* print source address */</span></div> +<div class="line"> (void)printf(<span class="stringliteral">"App_Handler_1238() called from 0x%04X.\n"</span>, msg_rx_ptr-><a class="code" href="struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6" title="Source address.">source_address</a>);</div> +<div class="line"> </div> +<div class="line"> <span class="comment">/* print payload */</span></div> +<div class="line"> (void)printf(<span class="stringliteral">" Payload: "</span>);</div> +<div class="line"> <span class="keywordflow">for</span> (cnt = 0U; cnt < msg_rx_ptr-><a class="code" href="struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Payload size in bytes.">data_size</a>; cnt++)</div> +<div class="line"> {</div> +<div class="line"> (void)printf(<span class="stringliteral">"%02X "</span>, msg_rx_ptr-><a class="code" href="struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Reference to payload.">data_ptr</a>[cnt]);</div> +<div class="line"> }</div> +<div class="line"> (void)printf(<span class="stringliteral">"\n"</span>);</div> +<div class="line"> </div> +<div class="line"> <span class="keywordflow">return</span> <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a>;</div> +<div class="line">}</div> +</div><!-- fragment --> </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">© 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li> + </ul> +</div> +</body> +<!-- +Generated on Mon Apr 3 2017 13:52:59 for UNICENS by +Doxygen 1.8.2 +--> +<script language="javascript"> +<!-- +$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>'); +--> +</script> +</html> |