SOEM/doc/html/ethercatprint_8c.html

469 lines
29 KiB
HTML

<!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"/>
<title>SOEM: ethercatprint.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">SOEM&#160;<span id="projectnumber">v1.3.1</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">ethercatprint.c File Reference</div> </div>
</div>
<div class="contents">
<p>Module to convert EtherCAT errors to readable messages.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &quot;oshw.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="ethercattype_8h.html">ethercattype.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ethercatmain_8h.html">ethercatmain.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__sdoerrorlist__t.html">ec_sdoerrorlist_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__ALstatuscodelist__t.html">ec_ALstatuscodelist_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__soeerrorlist__t.html">ec_soeerrorlist_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__mbxerrorlist__t.html">ec_mbxerrorlist_t</a></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a67b35fea9b43a4e1cc871470061f0865">EC_MAXERRORNAME</a>&#160;&#160;&#160;127</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a06b5c698a928559a9f6766f98232c266">ec_sdoerror2string</a> (uint32 sdoerrorcode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a921e6bce917181c18330ceb38f8937d1">ec_ALstatuscode2string</a> (uint16 ALstatuscode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a1e44b3454dae69578da7287201e1e527">ec_soeerror2string</a> (uint16 errorcode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#ae22804ec377aaa09b04f4498f1ae9553">ec_mbxerror2string</a> (uint16 errorcode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a4a692aad76ae3f9720ab593651174788">ecx_elist2string</a> (<a class="el" href="structecx__contextt.html">ecx_contextt</a> *context)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#abd6f6b98aab3084ea8c40109f75364cb">ec_elist2string</a> (void)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a0a6dfc8758c7dd41b3e41479402fffe3">estring</a> [EC_MAXERRORNAME]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structec__sdoerrorlist__t.html">ec_sdoerrorlist_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#af7ffc7988490e837012ffa16795bd58b">ec_sdoerrorlist</a> []</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structec__ALstatuscodelist__t.html">ec_ALstatuscodelist_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#aa211ebf7788d8a16afd4d404229b9552">ec_ALstatuscodelist</a> []</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structec__soeerrorlist__t.html">ec_soeerrorlist_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#ac949f12c50c15225e4e72664143d2450">ec_soeerrorlist</a> []</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structec__mbxerrorlist__t.html">ec_mbxerrorlist_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatprint_8c.html#a966daae7af63e5fa6dc9177516e039ed">ec_mbxerrorlist</a> []</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Module to convert EtherCAT errors to readable messages. </p>
<p>SDO abort messages and AL status codes are used to relay slave errors to the user application. This module converts the binary codes to readble text. For the defined error codes see the EtherCAT protocol documentation. </p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a67b35fea9b43a4e1cc871470061f0865"></a><!-- doxytag: member="ethercatprint.c::EC_MAXERRORNAME" ref="a67b35fea9b43a4e1cc871470061f0865" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EC_MAXERRORNAME&#160;&#160;&#160;127</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a921e6bce917181c18330ceb38f8937d1"></a><!-- doxytag: member="ethercatprint.c::ec_ALstatuscode2string" ref="a921e6bce917181c18330ceb38f8937d1" args="(uint16 ALstatuscode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* ec_ALstatuscode2string </td>
<td>(</td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ALstatuscode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Look up text string that belongs to AL status code.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ALstatuscode</td><td>= AL status code as defined in EtherCAT protocol </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>readable string </dd></dl>
</div>
</div>
<a class="anchor" id="abd6f6b98aab3084ea8c40109f75364cb"></a><!-- doxytag: member="ethercatprint.c::ec_elist2string" ref="abd6f6b98aab3084ea8c40109f75364cb" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* ec_elist2string </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="ae22804ec377aaa09b04f4498f1ae9553"></a><!-- doxytag: member="ethercatprint.c::ec_mbxerror2string" ref="ae22804ec377aaa09b04f4498f1ae9553" args="(uint16 errorcode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* ec_mbxerror2string </td>
<td>(</td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>errorcode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Look up text string that belongs to MBX error code.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">errorcode</td><td>= MBX error code as defined in EtherCAT protocol </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>readable string </dd></dl>
</div>
</div>
<a class="anchor" id="a06b5c698a928559a9f6766f98232c266"></a><!-- doxytag: member="ethercatprint.c::ec_sdoerror2string" ref="a06b5c698a928559a9f6766f98232c266" args="(uint32 sdoerrorcode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* ec_sdoerror2string </td>
<td>(</td>
<td class="paramtype">uint32&#160;</td>
<td class="paramname"><em>sdoerrorcode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Look up text string that belongs to SDO error code.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sdoerrorcode</td><td>= SDO error code as defined in EtherCAT protocol </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>readable string </dd></dl>
</div>
</div>
<a class="anchor" id="a1e44b3454dae69578da7287201e1e527"></a><!-- doxytag: member="ethercatprint.c::ec_soeerror2string" ref="a1e44b3454dae69578da7287201e1e527" args="(uint16 errorcode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* ec_soeerror2string </td>
<td>(</td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>errorcode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Look up text string that belongs to SoE error code.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">errorcode</td><td>= SoE error code as defined in EtherCAT protocol </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>readable string </dd></dl>
</div>
</div>
<a class="anchor" id="a4a692aad76ae3f9720ab593651174788"></a><!-- doxytag: member="ethercatprint.c::ecx_elist2string" ref="a4a692aad76ae3f9720ab593651174788" args="(ecx_contextt *context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* ecx_elist2string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structecx__contextt.html">ecx_contextt</a> *&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Look up error in ec_errorlist and convert to text string.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>= context struct </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>readable string </dd></dl>
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="aa211ebf7788d8a16afd4d404229b9552"></a><!-- doxytag: member="ethercatprint.c::ec_ALstatuscodelist" ref="aa211ebf7788d8a16afd4d404229b9552" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structec__ALstatuscodelist__t.html">ec_ALstatuscodelist_t</a> <a class="el" href="ethercatprint_8c.html#aa211ebf7788d8a16afd4d404229b9552">ec_ALstatuscodelist</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{0x0000 , <span class="stringliteral">&quot;No error&quot;</span> },
{0x0001 , <span class="stringliteral">&quot;Unspecified error&quot;</span> },
{0x0002 , <span class="stringliteral">&quot;No memory&quot;</span> },
{0x0011 , <span class="stringliteral">&quot;Invalid requested state change&quot;</span> },
{0x0012 , <span class="stringliteral">&quot;Unknown requested state&quot;</span> },
{0x0013 , <span class="stringliteral">&quot;Bootstrap not supported&quot;</span> },
{0x0014 , <span class="stringliteral">&quot;No valid firmware&quot;</span> },
{0x0015 , <span class="stringliteral">&quot;Invalid mailbox configuration&quot;</span> },
{0x0016 , <span class="stringliteral">&quot;Invalid mailbox configuration&quot;</span> },
{0x0017 , <span class="stringliteral">&quot;Invalid sync manager configuration&quot;</span> },
{0x0018 , <span class="stringliteral">&quot;No valid inputs available&quot;</span> },
{0x0019 , <span class="stringliteral">&quot;No valid outputs&quot;</span> },
{0x001A , <span class="stringliteral">&quot;Synchronization error&quot;</span> },
{0x001B , <span class="stringliteral">&quot;Sync manager watchdog&quot;</span> },
{0x001C , <span class="stringliteral">&quot;Invalid sync Manager types&quot;</span> },
{0x001D , <span class="stringliteral">&quot;Invalid output configuration&quot;</span> },
{0x001E , <span class="stringliteral">&quot;Invalid input configuration&quot;</span> },
{0x001F , <span class="stringliteral">&quot;Invalid watchdog configuration&quot;</span> },
{0x0020 , <span class="stringliteral">&quot;Slave needs cold start&quot;</span> },
{0x0021 , <span class="stringliteral">&quot;Slave needs INIT&quot;</span> },
{0x0022 , <span class="stringliteral">&quot;Slave needs PREOP&quot;</span> },
{0x0023 , <span class="stringliteral">&quot;Slave needs SAFEOP&quot;</span> },
{0x0024 , <span class="stringliteral">&quot;Invalid input mapping&quot;</span> },
{0x0025 , <span class="stringliteral">&quot;Invalid output mapping&quot;</span> },
{0x0026 , <span class="stringliteral">&quot;Inconsistent settings&quot;</span> },
{0x0027 , <span class="stringliteral">&quot;Freerun not supported&quot;</span> },
{0x0028 , <span class="stringliteral">&quot;Synchronisation not supported&quot;</span> },
{0x0029 , <span class="stringliteral">&quot;Freerun needs 3buffer mode&quot;</span> },
{0x002A , <span class="stringliteral">&quot;Background watchdog&quot;</span> },
{0x002B , <span class="stringliteral">&quot;No valid Inputs and Outputs&quot;</span> },
{0x002C , <span class="stringliteral">&quot;Fatal sync error&quot;</span> },
{0x002D , <span class="stringliteral">&quot;No sync error&quot;</span> },
{0x002E , <span class="stringliteral">&quot;Invalid input FMMU configuration&quot;</span> },
{0x0030 , <span class="stringliteral">&quot;Invalid DC SYNC configuration&quot;</span> },
{0x0031 , <span class="stringliteral">&quot;Invalid DC latch configuration&quot;</span> },
{0x0032 , <span class="stringliteral">&quot;PLL error&quot;</span> },
{0x0033 , <span class="stringliteral">&quot;DC sync IO error&quot;</span> },
{0x0034 , <span class="stringliteral">&quot;DC sync timeout error&quot;</span> },
{0x0035 , <span class="stringliteral">&quot;DC invalid sync cycle time&quot;</span> },
{0x0035 , <span class="stringliteral">&quot;DC invalid sync0 cycle time&quot;</span> },
{0x0035 , <span class="stringliteral">&quot;DC invalid sync1 cycle time&quot;</span> },
{0x0042 , <span class="stringliteral">&quot;MBX_EOE&quot;</span> },
{0x0043 , <span class="stringliteral">&quot;MBX_COE&quot;</span> },
{0x0044 , <span class="stringliteral">&quot;MBX_FOE&quot;</span> },
{0x0045 , <span class="stringliteral">&quot;MBX_SOE&quot;</span> },
{0x004F , <span class="stringliteral">&quot;MBX_VOE&quot;</span> },
{0x0050 , <span class="stringliteral">&quot;EEPROM no access&quot;</span> },
{0x0051 , <span class="stringliteral">&quot;EEPROM error&quot;</span> },
{0x0060 , <span class="stringliteral">&quot;Slave restarted locally&quot;</span> },
{0x0061 , <span class="stringliteral">&quot;Device identification value updated&quot;</span> },
{0x00f0 , <span class="stringliteral">&quot;Application controller available&quot;</span> },
{0xffff , <span class="stringliteral">&quot;Unknown&quot;</span> }
}
</pre></div><p>AL status code list definition </p>
</div>
</div>
<a class="anchor" id="a966daae7af63e5fa6dc9177516e039ed"></a><!-- doxytag: member="ethercatprint.c::ec_mbxerrorlist" ref="a966daae7af63e5fa6dc9177516e039ed" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structec__mbxerrorlist__t.html">ec_mbxerrorlist_t</a> <a class="el" href="ethercatprint_8c.html#a966daae7af63e5fa6dc9177516e039ed">ec_mbxerrorlist</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{0x0000, <span class="stringliteral">&quot;No error&quot;</span> },
{0x0001, <span class="stringliteral">&quot;Syntax of 6 octet Mailbox Header is wrong&quot;</span> },
{0x0002, <span class="stringliteral">&quot;The mailbox protocol is not supported&quot;</span> },
{0x0003, <span class="stringliteral">&quot;Channel Field contains wrong value&quot;</span>},
{0x0004, <span class="stringliteral">&quot;The service is no supported&quot;</span>},
{0x0005, <span class="stringliteral">&quot;Invalid mailbox header&quot;</span>},
{0x0006, <span class="stringliteral">&quot;Length of received mailbox data is too short&quot;</span>},
{0x0007, <span class="stringliteral">&quot;No more memory in slave&quot;</span>},
{0x0008, <span class="stringliteral">&quot;The lenght of data is inconsistent&quot;</span>},
{0xffff, <span class="stringliteral">&quot;Unknown&quot;</span>}
}
</pre></div><p>MBX error list definition </p>
</div>
</div>
<a class="anchor" id="af7ffc7988490e837012ffa16795bd58b"></a><!-- doxytag: member="ethercatprint.c::ec_sdoerrorlist" ref="af7ffc7988490e837012ffa16795bd58b" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structec__sdoerrorlist__t.html">ec_sdoerrorlist_t</a> <a class="el" href="ethercatprint_8c.html#af7ffc7988490e837012ffa16795bd58b">ec_sdoerrorlist</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{0x00000000, <span class="stringliteral">&quot;No error&quot;</span> },
{0x05030000, <span class="stringliteral">&quot;Toggle bit not changed&quot;</span> },
{0x05040000, <span class="stringliteral">&quot;SDO protocol timeout&quot;</span> },
{0x05040001, <span class="stringliteral">&quot;Client/Server command specifier not valid or unknown&quot;</span> },
{0x05040005, <span class="stringliteral">&quot;Out of memory&quot;</span> },
{0x06010000, <span class="stringliteral">&quot;Unsupported access to an object&quot;</span> },
{0x06010001, <span class="stringliteral">&quot;Attempt to read to a write only object&quot;</span> },
{0x06010002, <span class="stringliteral">&quot;Attempt to write to a read only object&quot;</span> },
{0x06010003, <span class="stringliteral">&quot;Subindex can not be written, SI0 must be 0 for write access&quot;</span> },
{0x06010004, <span class="stringliteral">&quot;SDO Complete access not supported for variable length objects&quot;</span> },
{0x06010005, <span class="stringliteral">&quot;Object length exceeds mailbox size&quot;</span> },
{0x06010006, <span class="stringliteral">&quot;Object mapped to RxPDO, SDO download blocked&quot;</span> },
{0x06020000, <span class="stringliteral">&quot;The object does not exist in the object directory&quot;</span> },
{0x06040041, <span class="stringliteral">&quot;The object can not be mapped into the PDO&quot;</span> },
{0x06040042, <span class="stringliteral">&quot;The number and length of the objects to be mapped would exceed the PDO length&quot;</span> },
{0x06040043, <span class="stringliteral">&quot;General parameter incompatibility reason&quot;</span> },
{0x06040047, <span class="stringliteral">&quot;General internal incompatibility in the device&quot;</span> },
{0x06060000, <span class="stringliteral">&quot;Access failed due to a hardware error&quot;</span> },
{0x06070010, <span class="stringliteral">&quot;Data type does not match, length of service parameter does not match&quot;</span> },
{0x06070012, <span class="stringliteral">&quot;Data type does not match, length of service parameter too high&quot;</span> },
{0x06070013, <span class="stringliteral">&quot;Data type does not match, length of service parameter too low&quot;</span> },
{0x06090011, <span class="stringliteral">&quot;Subindex does not exist&quot;</span> },
{0x06090030, <span class="stringliteral">&quot;Value range of parameter exceeded (only for write access)&quot;</span> },
{0x06090031, <span class="stringliteral">&quot;Value of parameter written too high&quot;</span> },
{0x06090032, <span class="stringliteral">&quot;Value of parameter written too low&quot;</span> },
{0x06090036, <span class="stringliteral">&quot;Maximum value is less than minimum value&quot;</span> },
{0x08000000, <span class="stringliteral">&quot;General error&quot;</span> },
{0x08000020, <span class="stringliteral">&quot;Data cannot be transferred or stored to the application&quot;</span> },
{0x08000021, <span class="stringliteral">&quot;Data cannot be transferred or stored to the application because of local control&quot;</span> },
{0x08000022, <span class="stringliteral">&quot;Data cannot be transferred or stored to the application because of the present device state&quot;</span> },
{0x08000023, <span class="stringliteral">&quot;Object dictionary dynamic generation fails or no object dictionary is present&quot;</span> },
{0xffffffff, <span class="stringliteral">&quot;Unknown&quot;</span> }
}
</pre></div><p>SDO error list definition </p>
</div>
</div>
<a class="anchor" id="ac949f12c50c15225e4e72664143d2450"></a><!-- doxytag: member="ethercatprint.c::ec_soeerrorlist" ref="ac949f12c50c15225e4e72664143d2450" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structec__soeerrorlist__t.html">ec_soeerrorlist_t</a> <a class="el" href="ethercatprint_8c.html#ac949f12c50c15225e4e72664143d2450">ec_soeerrorlist</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{0x0000, <span class="stringliteral">&quot;No error&quot;</span> },
{0x1001, <span class="stringliteral">&quot;No IDN&quot;</span> },
{0x1009, <span class="stringliteral">&quot;Invalid access to element 1&quot;</span> },
{0x2001, <span class="stringliteral">&quot;No Name&quot;</span> },
{0x2002, <span class="stringliteral">&quot;Name transmission too short&quot;</span> },
{0x2003, <span class="stringliteral">&quot;Name transmission too long&quot;</span> },
{0x2004, <span class="stringliteral">&quot;Name cannot be changed (read only)&quot;</span> },
{0x2005, <span class="stringliteral">&quot;Name is write-protected at this time&quot;</span> },
{0x3002, <span class="stringliteral">&quot;Attribute transmission too short&quot;</span> },
{0x3003, <span class="stringliteral">&quot;Attribute transmission too long&quot;</span> },
{0x3004, <span class="stringliteral">&quot;Attribute cannot be changed (read only)&quot;</span> },
{0x3005, <span class="stringliteral">&quot;Attribute is write-protected at this time&quot;</span> },
{0x4001, <span class="stringliteral">&quot;No units&quot;</span> },
{0x4002, <span class="stringliteral">&quot;Unit transmission too short&quot;</span> },
{0x4003, <span class="stringliteral">&quot;Unit transmission too long&quot;</span> },
{0x4004, <span class="stringliteral">&quot;Unit cannot be changed (read only)&quot;</span> },
{0x4005, <span class="stringliteral">&quot;Unit is write-protected at this time&quot;</span> },
{0x5001, <span class="stringliteral">&quot;No minimum input value&quot;</span> },
{0x5002, <span class="stringliteral">&quot;Minimum input value transmission too short&quot;</span> },
{0x5003, <span class="stringliteral">&quot;Minimum input value transmission too long&quot;</span> },
{0x5004, <span class="stringliteral">&quot;Minimum input value cannot be changed (read only)&quot;</span> },
{0x5005, <span class="stringliteral">&quot;Minimum input value is write-protected at this time&quot;</span> },
{0x6001, <span class="stringliteral">&quot;No maximum input value&quot;</span> },
{0x6002, <span class="stringliteral">&quot;Maximum input value transmission too short&quot;</span> },
{0x6003, <span class="stringliteral">&quot;Maximum input value transmission too long&quot;</span> },
{0x6004, <span class="stringliteral">&quot;Maximum input value cannot be changed (read only)&quot;</span> },
{0x6005, <span class="stringliteral">&quot;Maximum input value is write-protected at this time&quot;</span> },
{0x7002, <span class="stringliteral">&quot;Operation data transmission too short&quot;</span> },
{0x7003, <span class="stringliteral">&quot;Operation data transmission too long&quot;</span> },
{0x7004, <span class="stringliteral">&quot;Operation data cannot be changed (read only)&quot;</span> },
{0x7005, <span class="stringliteral">&quot;Operation data is write-protected at this time (state)&quot;</span> },
{0x7006, <span class="stringliteral">&quot;Operation data is smaller than the minimum input value&quot;</span> },
{0x7007, <span class="stringliteral">&quot;Operation data is smaller than the maximum input value&quot;</span> },
{0x7008, <span class="stringliteral">&quot;Invalid operation data:Configured IDN will not be supported&quot;</span> },
{0x7009, <span class="stringliteral">&quot;Operation data write protected by a password&quot;</span> },
{0x700A, <span class="stringliteral">&quot;Operation data is write protected, it is configured cyclically&quot;</span> },
{0x700B, <span class="stringliteral">&quot;Invalid indirect addressing: (e.g., data container, list handling)&quot;</span> },
{0x700C, <span class="stringliteral">&quot;Operation data is write protected, due to other settings&quot;</span> },
{0x700D, <span class="stringliteral">&quot;Reserved&quot;</span> },
{0x7010, <span class="stringliteral">&quot;Procedure command already active&quot;</span> },
{0x7011, <span class="stringliteral">&quot;Procedure command not interruptible&quot;</span> },
{0x7012, <span class="stringliteral">&quot;Procedure command at this time not executable (state)&quot;</span> },
{0x7013, <span class="stringliteral">&quot;Procedure command not executable (invalid or false parameters)&quot;</span> },
{0x7014, <span class="stringliteral">&quot;No data state&quot;</span> },
{0x8001, <span class="stringliteral">&quot;No default value&quot;</span> },
{0x8002, <span class="stringliteral">&quot;Default value transmission too long&quot;</span> },
{0x8004, <span class="stringliteral">&quot;Default value cannot be changed, read only&quot;</span> },
{0x800A, <span class="stringliteral">&quot;Invalid drive number&quot;</span> },
{0x800A, <span class="stringliteral">&quot;General error&quot;</span> },
{0x800A, <span class="stringliteral">&quot;No element addressed&quot;</span> },
{0xffff, <span class="stringliteral">&quot;Unknown&quot;</span> }
}
</pre></div><p>SoE error list definition </p>
</div>
</div>
<a class="anchor" id="a0a6dfc8758c7dd41b3e41479402fffe3"></a><!-- doxytag: member="ethercatprint.c::estring" ref="a0a6dfc8758c7dd41b3e41479402fffe3" args="[EC_MAXERRORNAME]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="ethercatprint_8c.html#a0a6dfc8758c7dd41b3e41479402fffe3">estring</a>[EC_MAXERRORNAME]</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Mar 11 2015 20:44:23 for SOEM by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>