AMR_T800/Devices/Libraries/Systems/CANopenSocket/docs/CO__driver_8h.html

422 lines
54 KiB
HTML
Executable File

<!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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: 301/CO_driver.h File 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>
<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>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">CANopenNode
</div>
</td>
<td> <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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<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>
</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('CO__driver_8h.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="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">CO_driver.h File Reference<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a> &raquo; <a class="el" href="group__CO__driver.html">Driver</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Interface between CAN hardware and CANopenNode.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string.h&gt;</code><br />
<code>#include &quot;<a class="el" href="CO__config_8h_source.html">CO_config.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="CO__driver__target_8h_source.html">CO_driver_target.h</a>&quot;</code><br />
</div>
<p><a href="CO__driver_8h_source.html">Go to the source code of this file.</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="structCO__CANrx__t.html">CO_CANrx_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration object for CAN received message for specific <a class="el" href="group__CO__driver.html#CO_obj">CANopenNode Object</a>. <a href="structCO__CANrx__t.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="structCO__CANtx__t.html">CO_CANtx_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration object for CAN transmit message for specific <a class="el" href="group__CO__driver.html#CO_obj">CANopenNode Object</a>. <a href="structCO__CANtx__t.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="structCO__CANmodule__t.html">CO_CANmodule_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Complete CAN module object. <a href="structCO__CANmodule__t.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:ga0e351c2972f6d8f2e08fb5ac21a833b8"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga0e351c2972f6d8f2e08fb5ac21a833b8">CO_VERSION_MAJOR</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga0e351c2972f6d8f2e08fb5ac21a833b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major version number of CANopenNode. <br /></td></tr>
<tr class="separator:ga0e351c2972f6d8f2e08fb5ac21a833b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac3f110c1dd3cfc2b994b5c20d1c6ace"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gaac3f110c1dd3cfc2b994b5c20d1c6ace">CO_VERSION_MINOR</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gaac3f110c1dd3cfc2b994b5c20d1c6ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minor version number of CANopenNode. <br /></td></tr>
<tr class="separator:gaac3f110c1dd3cfc2b994b5c20d1c6ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed3e1bffaf912485092fc20193705f35"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaed3e1bffaf912485092fc20193705f35">CO_LITTLE_ENDIAN</a></td></tr>
<tr class="memdesc:gaed3e1bffaf912485092fc20193705f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">CO_LITTLE_ENDIAN or CO_BIG_ENDIAN must be defined. <br /></td></tr>
<tr class="separator:gaed3e1bffaf912485092fc20193705f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga1717fcaabbe2cd6cd9fc0bc0cb917a6c">CO_SWAP_16</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf87da54942e3a0ff159688c5e0e267b"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadf87da54942e3a0ff159688c5e0e267b">CO_SWAP_32</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:gadf87da54942e3a0ff159688c5e0e267b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:gadf87da54942e3a0ff159688c5e0e267b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec0fc209357883f42d66cd2cdaa7236f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaec0fc209357883f42d66cd2cdaa7236f">CO_SWAP_64</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:gaec0fc209357883f42d66cd2cdaa7236f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:gaec0fc209357883f42d66cd2cdaa7236f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="memdesc:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL, for general usage. <br /></td></tr>
<tr class="separator:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical true, for general use. <br /></td></tr>
<tr class="separator:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65e9886d74aaee76545e83dd09011727"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga65e9886d74aaee76545e83dd09011727">false</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga65e9886d74aaee76545e83dd09011727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical false, for general use. <br /></td></tr>
<tr class="separator:ga65e9886d74aaee76545e83dd09011727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7566ee901bbf1a0d76d771d72d2f826f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga7566ee901bbf1a0d76d771d72d2f826f">CO_LOCK_CAN_SEND</a>()</td></tr>
<tr class="memdesc:ga7566ee901bbf1a0d76d771d72d2f826f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock critical section in <a class="el" href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e" title="Send CAN message.">CO_CANsend()</a> <br /></td></tr>
<tr class="separator:ga7566ee901bbf1a0d76d771d72d2f826f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga511a5a0bf905c2207d5c9e26d35fe3cc"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga511a5a0bf905c2207d5c9e26d35fe3cc">CO_UNLOCK_CAN_SEND</a>()</td></tr>
<tr class="memdesc:ga511a5a0bf905c2207d5c9e26d35fe3cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock critical section in <a class="el" href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e" title="Send CAN message.">CO_CANsend()</a> <br /></td></tr>
<tr class="separator:ga511a5a0bf905c2207d5c9e26d35fe3cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3052a84235f56d535a14705e0cfda799"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga3052a84235f56d535a14705e0cfda799">CO_LOCK_EMCY</a>()</td></tr>
<tr class="memdesc:ga3052a84235f56d535a14705e0cfda799"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock critical section in <a class="el" href="group__CO__Emergency.html#gab66d4a6daa5f7492704b56a46b135f71" title="Report error condition, for description of parameters see CO_error.">CO_errorReport()</a> or <a class="el" href="group__CO__Emergency.html#ga24e2a9311cf704ec6ed43b0ea730c4a3" title="Reset error condition, for description of parameters see CO_error.">CO_errorReset()</a> <br /></td></tr>
<tr class="separator:ga3052a84235f56d535a14705e0cfda799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga720a798f2bf7fe20d9c95a212b4df417"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga720a798f2bf7fe20d9c95a212b4df417">CO_UNLOCK_EMCY</a>()</td></tr>
<tr class="memdesc:ga720a798f2bf7fe20d9c95a212b4df417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock critical section in <a class="el" href="group__CO__Emergency.html#gab66d4a6daa5f7492704b56a46b135f71" title="Report error condition, for description of parameters see CO_error.">CO_errorReport()</a> or <a class="el" href="group__CO__Emergency.html#ga24e2a9311cf704ec6ed43b0ea730c4a3" title="Reset error condition, for description of parameters see CO_error.">CO_errorReset()</a> <br /></td></tr>
<tr class="separator:ga720a798f2bf7fe20d9c95a212b4df417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3850830931ced2bd3d7e15821572bbcc"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga3850830931ced2bd3d7e15821572bbcc">CO_LOCK_OD</a>()</td></tr>
<tr class="memdesc:ga3850830931ced2bd3d7e15821572bbcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock critical section when accessing Object Dictionary. <br /></td></tr>
<tr class="separator:ga3850830931ced2bd3d7e15821572bbcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2477f5d24fd31a9f4052cf451b87809f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga2477f5d24fd31a9f4052cf451b87809f">CO_UNLOCK_OD</a>()</td></tr>
<tr class="memdesc:ga2477f5d24fd31a9f4052cf451b87809f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unock critical section when accessing Object Dictionary. <br /></td></tr>
<tr class="separator:ga2477f5d24fd31a9f4052cf451b87809f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga577a6ebcf246087f084c75d9ae25eeb7"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga577a6ebcf246087f084c75d9ae25eeb7">CO_FLAG_READ</a>(rxNew)&#160;&#160;&#160;((rxNew) != <a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
<tr class="memdesc:ga577a6ebcf246087f084c75d9ae25eeb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if new message has arrived. <br /></td></tr>
<tr class="separator:ga577a6ebcf246087f084c75d9ae25eeb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac54b5e4f680aa8b0177f0df5d5be2e88"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#gac54b5e4f680aa8b0177f0df5d5be2e88">CO_FLAG_SET</a>(rxNew)&#160;&#160;&#160;{ __sync_synchronize(); rxNew = (void *)1L; }</td></tr>
<tr class="memdesc:gac54b5e4f680aa8b0177f0df5d5be2e88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set new message flag. <br /></td></tr>
<tr class="separator:gac54b5e4f680aa8b0177f0df5d5be2e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga044da4253aeed15c3e0bb7fce13664af"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga044da4253aeed15c3e0bb7fce13664af">CO_FLAG_CLEAR</a>(rxNew)&#160;&#160;&#160;{ __sync_synchronize(); rxNew = <a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; }</td></tr>
<tr class="memdesc:ga044da4253aeed15c3e0bb7fce13664af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear new message flag. <br /></td></tr>
<tr class="separator:ga044da4253aeed15c3e0bb7fce13664af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa84189910b720ce18c8d83aab405d86"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gaaa84189910b720ce18c8d83aab405d86">CO_errinfo</a>(CANmodule, err)</td></tr>
<tr class="memdesc:gaaa84189910b720ce18c8d83aab405d86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for passing additional information about error. <a href="group__CO__driver.html#gaaa84189910b720ce18c8d83aab405d86">More...</a><br /></td></tr>
<tr class="separator:gaaa84189910b720ce18c8d83aab405d86"><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:ga449976458a084f880dc8e3d29e7eb6f5"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a></td></tr>
<tr class="memdesc:ga449976458a084f880dc8e3d29e7eb6f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean data type for general use. <br /></td></tr>
<tr class="separator:ga449976458a084f880dc8e3d29e7eb6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef44329758059c91c76d334e8fc09700"><td class="memItemLeft" align="right" valign="top">
typedef signed char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaef44329758059c91c76d334e8fc09700">int8_t</a></td></tr>
<tr class="memdesc:gaef44329758059c91c76d334e8fc09700"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER8 in CANopen (0002h), 8-bit signed integer. <br /></td></tr>
<tr class="separator:gaef44329758059c91c76d334e8fc09700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="memItemLeft" align="right" valign="top">
typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga932e6ccc3d54c58f761c1aead83bd6d7">int16_t</a></td></tr>
<tr class="memdesc:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER16 in CANopen (0003h), 16-bit signed integer. <br /></td></tr>
<tr class="separator:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb828ef50c2dbb783109824e94cf6c47"><td class="memItemLeft" align="right" valign="top">
typedef signed long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadb828ef50c2dbb783109824e94cf6c47">int32_t</a></td></tr>
<tr class="memdesc:gadb828ef50c2dbb783109824e94cf6c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER32 in CANopen (0004h), 32-bit signed integer. <br /></td></tr>
<tr class="separator:gadb828ef50c2dbb783109824e94cf6c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga831d6234342279926bb11bad3a37add9"><td class="memItemLeft" align="right" valign="top">
typedef signed long long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga831d6234342279926bb11bad3a37add9">int64_t</a></td></tr>
<tr class="memdesc:ga831d6234342279926bb11bad3a37add9"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER64 in CANopen (0015h), 64-bit signed integer. <br /></td></tr>
<tr class="separator:ga831d6234342279926bb11bad3a37add9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba7bc1797add20fe3efdf37ced1182c5"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></td></tr>
<tr class="memdesc:gaba7bc1797add20fe3efdf37ced1182c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED8 in CANopen (0005h), 8-bit unsigned integer. <br /></td></tr>
<tr class="separator:gaba7bc1797add20fe3efdf37ced1182c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="memItemLeft" align="right" valign="top">
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a></td></tr>
<tr class="memdesc:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED16 in CANopen (0006h), 16-bit unsigned integer. <br /></td></tr>
<tr class="separator:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33594304e786b158f3fb30289278f5af"><td class="memItemLeft" align="right" valign="top">
typedef unsigned long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a></td></tr>
<tr class="memdesc:ga33594304e786b158f3fb30289278f5af"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED32 in CANopen (0007h), 32-bit unsigned integer. <br /></td></tr>
<tr class="separator:ga33594304e786b158f3fb30289278f5af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad27ed092432b64ff558d2254c278720f"><td class="memItemLeft" align="right" valign="top">
typedef unsigned long long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gad27ed092432b64ff558d2254c278720f">uint64_t</a></td></tr>
<tr class="memdesc:gad27ed092432b64ff558d2254c278720f"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED64 in CANopen (001Bh), 64-bit unsigned integer. <br /></td></tr>
<tr class="separator:gad27ed092432b64ff558d2254c278720f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4611b605e45ab401f02cab15c5e38715"><td class="memItemLeft" align="right" valign="top">
typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga4611b605e45ab401f02cab15c5e38715">float32_t</a></td></tr>
<tr class="memdesc:ga4611b605e45ab401f02cab15c5e38715"><td class="mdescLeft">&#160;</td><td class="mdescRight">REAL32 in CANopen (0008h), single precision floating point value, 32-bit. <br /></td></tr>
<tr class="separator:ga4611b605e45ab401f02cab15c5e38715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55f3ae81b5bc9053760baacf57e47f4"><td class="memItemLeft" align="right" valign="top">
typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gac55f3ae81b5bc9053760baacf57e47f4">float64_t</a></td></tr>
<tr class="memdesc:gac55f3ae81b5bc9053760baacf57e47f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">REAL64 in CANopen (0011h), double precision floating point value, 64-bit. <br /></td></tr>
<tr class="separator:gac55f3ae81b5bc9053760baacf57e47f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="memItemLeft" align="right" valign="top">
typedef char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga40bb5262bf908c328fbcfbe5d29d0201">char_t</a></td></tr>
<tr class="memdesc:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="mdescLeft">&#160;</td><td class="mdescRight">VISIBLE_STRING in CANopen (0009h), string of signed 8-bit values. <br /></td></tr>
<tr class="separator:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00f664c467579d7b2839d6926b6f33a6"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga00f664c467579d7b2839d6926b6f33a6">oChar_t</a></td></tr>
<tr class="memdesc:ga00f664c467579d7b2839d6926b6f33a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OCTET_STRING in CANopen (000Ah), string of unsigned 8-bit values. <br /></td></tr>
<tr class="separator:ga00f664c467579d7b2839d6926b6f33a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc433a2a90dacd3b2b3801dd9431c254"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadc433a2a90dacd3b2b3801dd9431c254">domain_t</a></td></tr>
<tr class="memdesc:gadc433a2a90dacd3b2b3801dd9431c254"><td class="mdescLeft">&#160;</td><td class="mdescRight">DOMAIN in CANopen (000Fh), used to transfer a large block of data. <br /></td></tr>
<tr class="separator:gadc433a2a90dacd3b2b3801dd9431c254"><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:ga01dd35ae53fd2209ceccabdc8bf8dd06"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga01dd35ae53fd2209ceccabdc8bf8dd06">CO_Default_CAN_ID_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a335d0f6204819d267ba396b715f66ead">CO_CAN_ID_NMT_SERVICE</a> = 0x000,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a0ba8a628aa1a873a21820070261c2783">CO_CAN_ID_GFC</a> = 0x001,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a7a8486aaf2f35eb83c6ca690d0cdce06">CO_CAN_ID_SYNC</a> = 0x080,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a94ffef8babcef5b807c5f8c865ef7666">CO_CAN_ID_EMERGENCY</a> = 0x080,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06ab2e20e54189f5cb565e80b05eb8c4931">CO_CAN_ID_TIME</a> = 0x100,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06aefe4dd6630902d36173b81c106a813bc">CO_CAN_ID_SRDO_1</a> = 0x0FF,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a848f2bdb085bc3a342400a6b43c37f82">CO_CAN_ID_TPDO_1</a> = 0x180,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a0ab4be02961987ad817a99a4ef379517">CO_CAN_ID_RPDO_1</a> = 0x200,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06acb90f0dab2e31982df1bebae6dd02e4b">CO_CAN_ID_TPDO_2</a> = 0x280,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a60081a7b09921c6bfce3762a3dd4e49f">CO_CAN_ID_RPDO_2</a> = 0x300,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a83b73730655607582d1dabc8f78f7ca4">CO_CAN_ID_TPDO_3</a> = 0x380,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06ad634b89f227db86bc8c633dda327e5fb">CO_CAN_ID_RPDO_3</a> = 0x400,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06abe92c9f7938ad6566e8aa010ab6f5cae">CO_CAN_ID_TPDO_4</a> = 0x480,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06afec9dfa33a34beef50c434e5cde68c6b">CO_CAN_ID_RPDO_4</a> = 0x500,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a3c84d92ad004cfc04e398193b742d30c">CO_CAN_ID_SDO_SRV</a> = 0x580,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06acfe8640033d9668fafc63aa81d68ede5">CO_CAN_ID_SDO_CLI</a> = 0x600,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a0cfd21623475a1a8522b30b8b16d9874">CO_CAN_ID_HEARTBEAT</a> = 0x700,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a4a62af7fb0b8768e57945a558a0ceee4">CO_CAN_ID_LSS_SLV</a> = 0x7E4,
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06ad7d16ed89e513b035104e4b2634ce287">CO_CAN_ID_LSS_MST</a> = 0x7E5
<br />
}</td></tr>
<tr class="memdesc:ga01dd35ae53fd2209ceccabdc8bf8dd06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default CANopen identifiers. <a href="group__CO__driver.html#ga01dd35ae53fd2209ceccabdc8bf8dd06">More...</a><br /></td></tr>
<tr class="separator:ga01dd35ae53fd2209ceccabdc8bf8dd06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c5539afb3a95af43f5477d904607426"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga6c5539afb3a95af43f5477d904607426">CO_CAN_ERR_status_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a725e4fe057c2f9d222850686a76c724d">CO_CAN_ERRTX_WARNING</a> = 0x0001,
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a85d05e861dc03e256dccf977ae16ad6e">CO_CAN_ERRTX_PASSIVE</a> = 0x0002,
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426ae58aa7d0eb5d13630f858a3869f0ee7d">CO_CAN_ERRTX_BUS_OFF</a> = 0x0004,
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426ad6fba8a27d82774f53812d3a49655d12">CO_CAN_ERRTX_OVERFLOW</a> = 0x0008,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426ac0b993c7786f41a8c73ad0339124881b">CO_CAN_ERRTX_PDO_LATE</a> = 0x0080,
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a6df88a8a296eb4addc12d9136c0566b0">CO_CAN_ERRRX_WARNING</a> = 0x0100,
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a51494ad0df1e2de6d9395f1803c4b233">CO_CAN_ERRRX_PASSIVE</a> = 0x0200,
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a714a0b9c0978ffde5f138a81880a1fdd">CO_CAN_ERRRX_OVERFLOW</a> = 0x0800,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a5ad44f86d5691f2bc809f722364516e0">CO_CAN_ERR_WARN_PASSIVE</a> = 0x0303
<br />
}</td></tr>
<tr class="memdesc:ga6c5539afb3a95af43f5477d904607426"><td class="mdescLeft">&#160;</td><td class="mdescRight">CAN error status bitmasks. <a href="group__CO__driver.html#ga6c5539afb3a95af43f5477d904607426">More...</a><br /></td></tr>
<tr class="separator:ga6c5539afb3a95af43f5477d904607426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cb2d3466eb0c6d267f3b5ff1a0d9532"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532aff1c3e9fd4bf65e6757b020f752cdac8">CO_ERROR_NO</a> = 0,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a3e78d588c0e21630c9cb7b43bfda3dae">CO_ERROR_ILLEGAL_ARGUMENT</a> = -1,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a2f07295c4c6539c2b390db2d7c351267">CO_ERROR_OUT_OF_MEMORY</a> = -2,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a129c7141c52ae59d37a2fff163fec600">CO_ERROR_TIMEOUT</a> = -3,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a0214308865e83b8c21de7317b3070097">CO_ERROR_ILLEGAL_BAUDRATE</a> = -4,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532ab0746d0801a99639077b325594b347b5">CO_ERROR_RX_OVERFLOW</a> = -5,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a7e4cefeb35775754c87cf6a559f1bbd9">CO_ERROR_RX_PDO_OVERFLOW</a> = -6,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a3e40e8440a8480c413d3ff724b875de4">CO_ERROR_RX_MSG_LENGTH</a> = -7,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a4829a460cbba557a2ff7f52bd912aa65">CO_ERROR_RX_PDO_LENGTH</a> = -8,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a757b4d226a3e00a9e2543cf21833d46f">CO_ERROR_TX_OVERFLOW</a> = -9,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a48993dc18698738d168071b4f4c3d244">CO_ERROR_TX_PDO_WINDOW</a> = -10,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a6f07e7c21acde035b561edc7f55edb89">CO_ERROR_TX_UNCONFIGURED</a> = -11,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a737e67c9f8d3ca882a3cba852153c1f3">CO_ERROR_OD_PARAMETERS</a> = -12,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532aa053301213d13670e9af7d31abc1ee48">CO_ERROR_DATA_CORRUPT</a> = -13,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a25eaff6474c6bc2aae67b1e7c7a35109">CO_ERROR_CRC</a> = -14,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532ab47ecc1b08463eb986fd29c187096343">CO_ERROR_TX_BUSY</a> = -15,
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a07457c9c6eda89fc0260e6d7e431424c">CO_ERROR_WRONG_NMT_STATE</a> = -16,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a46d81c922ecbaf8f136626725ad8399d">CO_ERROR_SYSCALL</a> = -17,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a57f1c4d2d960ab2550669a1c5ebbf4e1">CO_ERROR_INVALID_STATE</a> = -18,
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532ac7a6f0554ae52997b88a97b46a16e5a3">CO_ERROR_NODE_ID_UNCONFIGURED_LSS</a> = -19
<br />
}</td></tr>
<tr class="memdesc:ga1cb2d3466eb0c6d267f3b5ff1a0d9532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return values of some CANopen functions. <a href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">More...</a><br /></td></tr>
<tr class="separator:ga1cb2d3466eb0c6d267f3b5ff1a0d9532"><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:ga23168979123a5ca8a87d49307eb2990e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e">CANrx_callback</a> (void *object, void *rxMsg)</td></tr>
<tr class="memdesc:ga23168979123a5ca8a87d49307eb2990e"><td class="mdescLeft">&#160;</td><td class="mdescRight">CAN receive callback function which pre-processes received CAN message. <a href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e">More...</a><br /></td></tr>
<tr class="separator:ga23168979123a5ca8a87d49307eb2990e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga018e9159b92165b2506a6673113cdc0e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#ga018e9159b92165b2506a6673113cdc0e">CO_CANrxMsg_readIdent</a> (void *rxMsg)</td></tr>
<tr class="memdesc:ga018e9159b92165b2506a6673113cdc0e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e" title="CAN receive callback function which pre-processes received CAN message.">CANrx_callback()</a> can read CAN identifier from received CAN message. <a href="group__CO__CAN__Message__reception.html#ga018e9159b92165b2506a6673113cdc0e">More...</a><br /></td></tr>
<tr class="separator:ga018e9159b92165b2506a6673113cdc0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacec1dcf8b7e66ea2e65905f91321b299"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#gacec1dcf8b7e66ea2e65905f91321b299">CO_CANrxMsg_readDLC</a> (void *rxMsg)</td></tr>
<tr class="memdesc:gacec1dcf8b7e66ea2e65905f91321b299"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e" title="CAN receive callback function which pre-processes received CAN message.">CANrx_callback()</a> can read Data Length Code from received CAN message. <a href="group__CO__CAN__Message__reception.html#gacec1dcf8b7e66ea2e65905f91321b299">More...</a><br /></td></tr>
<tr class="separator:gacec1dcf8b7e66ea2e65905f91321b299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab02a5fe910acf9aa5021f97e523697f9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#gab02a5fe910acf9aa5021f97e523697f9">CO_CANrxMsg_readData</a> (void *rxMsg)</td></tr>
<tr class="memdesc:gab02a5fe910acf9aa5021f97e523697f9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e" title="CAN receive callback function which pre-processes received CAN message.">CANrx_callback()</a> can read pointer to data from received CAN message. <a href="group__CO__CAN__Message__reception.html#gab02a5fe910acf9aa5021f97e523697f9">More...</a><br /></td></tr>
<tr class="separator:gab02a5fe910acf9aa5021f97e523697f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88ef52baae169a80e4c2f2cb93b33747"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga88ef52baae169a80e4c2f2cb93b33747">CO_CANsetConfigurationMode</a> (void *CANptr)</td></tr>
<tr class="memdesc:ga88ef52baae169a80e4c2f2cb93b33747"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request CAN configuration (stopped) mode and <em>wait</em> until it is set. <a href="group__CO__driver.html#ga88ef52baae169a80e4c2f2cb93b33747">More...</a><br /></td></tr>
<tr class="separator:ga88ef52baae169a80e4c2f2cb93b33747"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad654edfa651bf7b68263913786697200"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gad654edfa651bf7b68263913786697200">CO_CANsetNormalMode</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:gad654edfa651bf7b68263913786697200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request CAN normal (operational) mode and <em>wait</em> until it is set. <a href="group__CO__driver.html#gad654edfa651bf7b68263913786697200">More...</a><br /></td></tr>
<tr class="separator:gad654edfa651bf7b68263913786697200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a1131813110529494cee5e27c0bf28d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga3a1131813110529494cee5e27c0bf28d">CO_CANmodule_init</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, void *CANptr, <a class="el" href="structCO__CANrx__t.html">CO_CANrx_t</a> rxArray[], <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> rxSize, <a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a> txArray[], <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> txSize, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CANbitRate)</td></tr>
<tr class="memdesc:ga3a1131813110529494cee5e27c0bf28d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize CAN module object. <a href="group__CO__driver.html#ga3a1131813110529494cee5e27c0bf28d">More...</a><br /></td></tr>
<tr class="separator:ga3a1131813110529494cee5e27c0bf28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6f60f9da27dda0c9b3950c4e96bd687"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gac6f60f9da27dda0c9b3950c4e96bd687">CO_CANmodule_disable</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:gac6f60f9da27dda0c9b3950c4e96bd687"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch off CANmodule. <a href="group__CO__driver.html#gac6f60f9da27dda0c9b3950c4e96bd687">More...</a><br /></td></tr>
<tr class="separator:gac6f60f9da27dda0c9b3950c4e96bd687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25ee22cd2e3a2f3bb49990e8bc3076b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga25ee22cd2e3a2f3bb49990e8bc3076b0">CO_CANrxBufferInit</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> ident, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> mask, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> rtr, void *object, void(*<a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e">CANrx_callback</a>)(void *object, void *message))</td></tr>
<tr class="memdesc:ga25ee22cd2e3a2f3bb49990e8bc3076b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure CAN message receive buffer. <a href="group__CO__driver.html#ga25ee22cd2e3a2f3bb49990e8bc3076b0">More...</a><br /></td></tr>
<tr class="separator:ga25ee22cd2e3a2f3bb49990e8bc3076b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01e2ee79e7e3a8b321dac831e7e00976"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga01e2ee79e7e3a8b321dac831e7e00976">CO_CANtxBufferInit</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> ident, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> rtr, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> noOfBytes, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> syncFlag)</td></tr>
<tr class="memdesc:ga01e2ee79e7e3a8b321dac831e7e00976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure CAN message transmit buffer. <a href="group__CO__driver.html#ga01e2ee79e7e3a8b321dac831e7e00976">More...</a><br /></td></tr>
<tr class="separator:ga01e2ee79e7e3a8b321dac831e7e00976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4664a9f5d547cb0605a9e929fb079f2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e">CO_CANsend</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, <a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a> *buffer)</td></tr>
<tr class="memdesc:ga4664a9f5d547cb0605a9e929fb079f2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send CAN message. <a href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e">More...</a><br /></td></tr>
<tr class="separator:ga4664a9f5d547cb0605a9e929fb079f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbeac85cbf513162b11fc3d0717b0753"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gabbeac85cbf513162b11fc3d0717b0753">CO_CANclearPendingSyncPDOs</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:gabbeac85cbf513162b11fc3d0717b0753"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all synchronous TPDOs from CAN module transmit buffers. <a href="group__CO__driver.html#gabbeac85cbf513162b11fc3d0717b0753">More...</a><br /></td></tr>
<tr class="separator:gabbeac85cbf513162b11fc3d0717b0753"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga066c6742f75b2daac585735ffd6c9928"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga066c6742f75b2daac585735ffd6c9928">CO_CANmodule_process</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:ga066c6742f75b2daac585735ffd6c9928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process can module - verify CAN errors. <a href="group__CO__driver.html#ga066c6742f75b2daac585735ffd6c9928">More...</a><br /></td></tr>
<tr class="separator:ga066c6742f75b2daac585735ffd6c9928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27a4052f87c60cf2df472378689c2ef9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">CO_getUint8</a> (const void *buf)</td></tr>
<tr class="memdesc:ga27a4052f87c60cf2df472378689c2ef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uint8_t value from memory buffer. <a href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">More...</a><br /></td></tr>
<tr class="separator:ga27a4052f87c60cf2df472378689c2ef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6590fe7a05ecb4b81ee3d7e233274ea4"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga6590fe7a05ecb4b81ee3d7e233274ea4">CO_getUint16</a> (const void *buf)</td></tr>
<tr class="memdesc:ga6590fe7a05ecb4b81ee3d7e233274ea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uint16_t value from memory buffer, see <a class="el" href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">CO_getUint8</a>. <br /></td></tr>
<tr class="separator:ga6590fe7a05ecb4b81ee3d7e233274ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21cd9e2391f276b908bcde5769e967ed"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga21cd9e2391f276b908bcde5769e967ed">CO_getUint32</a> (const void *buf)</td></tr>
<tr class="memdesc:ga21cd9e2391f276b908bcde5769e967ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uint32_t value from memory buffer, see <a class="el" href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">CO_getUint8</a>. <br /></td></tr>
<tr class="separator:ga21cd9e2391f276b908bcde5769e967ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61de0908305223a0a7949e184cc1d644"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">CO_setUint8</a> (void *buf, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> value)</td></tr>
<tr class="memdesc:ga61de0908305223a0a7949e184cc1d644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write uint8_t value into memory buffer. <a href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">More...</a><br /></td></tr>
<tr class="separator:ga61de0908305223a0a7949e184cc1d644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf74a6b7343bc9d6efd5ec5d9d9f965fb"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gaf74a6b7343bc9d6efd5ec5d9d9f965fb">CO_setUint16</a> (void *buf, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> value)</td></tr>
<tr class="memdesc:gaf74a6b7343bc9d6efd5ec5d9d9f965fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write uint16_t value into memory buffer, see <a class="el" href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">CO_setUint8</a>. <br /></td></tr>
<tr class="separator:gaf74a6b7343bc9d6efd5ec5d9d9f965fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9dbc7193fbd875503e0b3b34ea22434e"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga9dbc7193fbd875503e0b3b34ea22434e">CO_setUint32</a> (void *buf, <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> value)</td></tr>
<tr class="memdesc:ga9dbc7193fbd875503e0b3b34ea22434e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write uint32_t value into memory buffer, see <a class="el" href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">CO_setUint8</a>. <br /></td></tr>
<tr class="separator:ga9dbc7193fbd875503e0b3b34ea22434e"><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>Interface between CAN hardware and CANopenNode. </p>
<dl class="section author"><dt>Author</dt><dd>Janez Paternoster </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>2004 - 2020 Janez Paternoster</dd></dl>
<p>This file is part of CANopenNode, an opensource CANopen Stack. Project home page is <a href="https://github.com/CANopenNode/CANopenNode">https://github.com/CANopenNode/CANopenNode</a>. For more information on CANopen see <a href="http://www.can-cia.org/">http://www.can-cia.org/</a>.</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p><pre class="fragment">http://www.apache.org/licenses/LICENSE-2.0
</pre><p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>
</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="dir_f17b92000dd778003adbbcb6b5ce4226.html">301</a></li><li class="navelem"><a class="el" href="CO__driver_8h.html">CO_driver.h</a></li>
<li class="footer">Generated on Thu Dec 24 2020 14:30:50 for CANopenNode by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>