SOEM/doc/html/ethercatbase_8h.html

1223 lines
52 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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>SOEM: ethercatbase.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="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 style="padding-left: 0.5em;">
<div id="projectname">SOEM
&#160;<span id="projectnumber">v1.3.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_3012a2599d87e3128fe81d8c5dd7e75c.html">soem</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">ethercatbase.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Headerfile for <a class="el" href="ethercatbase_8c.html" title="Base EtherCAT functions.">ethercatbase.c</a>.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa2c4e8eb36480d128235b435add9cf67"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#aa2c4e8eb36480d128235b435add9cf67">ecx_setupdatagram</a> (ecx_portt *port, void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO, uint16 length, void *data)</td></tr>
<tr class="separator:aa2c4e8eb36480d128235b435add9cf67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d2fda4df4db4607d917330cafe07081"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a0d2fda4df4db4607d917330cafe07081">ecx_adddatagram</a> (ecx_portt *port, void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)</td></tr>
<tr class="separator:a0d2fda4df4db4607d917330cafe07081"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b888fa00f141e401be521c6b340d044"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a1b888fa00f141e401be521c6b340d044">ecx_BWR</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a1b888fa00f141e401be521c6b340d044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4903c87e0cc698ac3968f191af60332"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#ac4903c87e0cc698ac3968f191af60332">ecx_BRD</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:ac4903c87e0cc698ac3968f191af60332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a81a64b05912cf1b6a7cde6070fa408"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a3a81a64b05912cf1b6a7cde6070fa408">ecx_APRD</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a3a81a64b05912cf1b6a7cde6070fa408"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe3c16067b99aebd4d9bfd9a2b93a36c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#abe3c16067b99aebd4d9bfd9a2b93a36c">ecx_ARMW</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:abe3c16067b99aebd4d9bfd9a2b93a36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada9732437a0dad686ed000d9876c12bc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#ada9732437a0dad686ed000d9876c12bc">ecx_FRMW</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:ada9732437a0dad686ed000d9876c12bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dd3bf6a952c6b3c260655dac9dc8f34"><td class="memItemLeft" align="right" valign="top">uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a6dd3bf6a952c6b3c260655dac9dc8f34">ecx_APRDw</a> (ecx_portt *port, uint16 ADP, uint16 ADO, int timeout)</td></tr>
<tr class="separator:a6dd3bf6a952c6b3c260655dac9dc8f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40b981992928c4b72cf7f08c9538fd6e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a40b981992928c4b72cf7f08c9538fd6e">ecx_FPRD</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a40b981992928c4b72cf7f08c9538fd6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e55ff9162d1123ad7c3b1f34a7e6df"><td class="memItemLeft" align="right" valign="top">uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#ab4e55ff9162d1123ad7c3b1f34a7e6df">ecx_FPRDw</a> (ecx_portt *port, uint16 ADP, uint16 ADO, int timeout)</td></tr>
<tr class="separator:ab4e55ff9162d1123ad7c3b1f34a7e6df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada12b7523b9d2615b8a4f5ca3d5270a1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#ada12b7523b9d2615b8a4f5ca3d5270a1">ecx_APWRw</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 data, int timeout)</td></tr>
<tr class="separator:ada12b7523b9d2615b8a4f5ca3d5270a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cc23ebda2862d9a7aa260529b818fa0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a0cc23ebda2862d9a7aa260529b818fa0">ecx_APWR</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a0cc23ebda2862d9a7aa260529b818fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95b517724b08125f19b3f50b9e79f14c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a95b517724b08125f19b3f50b9e79f14c">ecx_FPWRw</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 data, int timeout)</td></tr>
<tr class="separator:a95b517724b08125f19b3f50b9e79f14c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84b35855ebd2a8226dbcaddc0ecba9b5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a84b35855ebd2a8226dbcaddc0ecba9b5">ecx_FPWR</a> (ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a84b35855ebd2a8226dbcaddc0ecba9b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a747384434ba949b38f1f7064645c460e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a747384434ba949b38f1f7064645c460e">ecx_LRW</a> (ecx_portt *port, uint32 LogAdr, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a747384434ba949b38f1f7064645c460e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a48db45b5d5328d7e5d51155e8abfaa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a6a48db45b5d5328d7e5d51155e8abfaa">ecx_LRD</a> (ecx_portt *port, uint32 LogAdr, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a6a48db45b5d5328d7e5d51155e8abfaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23db3b931b4e045e0b35c7bfe7d787ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#a23db3b931b4e045e0b35c7bfe7d787ac">ecx_LWR</a> (ecx_portt *port, uint32 LogAdr, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a23db3b931b4e045e0b35c7bfe7d787ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3ee60104e7da46b07594c82f00dc0f8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8h.html#ad3ee60104e7da46b07594c82f00dc0f8">ecx_LRWDC</a> (ecx_portt *port, uint32 LogAdr, uint16 length, void *data, uint16 DCrs, int64 *DCtime, int timeout)</td></tr>
<tr class="separator:ad3ee60104e7da46b07594c82f00dc0f8"><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>Headerfile for <a class="el" href="ethercatbase_8c.html" title="Base EtherCAT functions.">ethercatbase.c</a>. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0d2fda4df4db4607d917330cafe07081"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_adddatagram </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>frame</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8&#160;</td>
<td class="paramname"><em>com</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">boolean&#160;</td>
<td class="paramname"><em>more</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add EtherCAT datagram to a standard ethernet frame with existing datagram(s).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">frame</td><td>= framebuffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">com</td><td>= command </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>= index used for TX and RX buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">more</td><td>= TRUE if still more datagrams to follow </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of datagram excluding EtherCAT header </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= databuffer to be copied in datagram </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Offset to data in rx frame, usefull to retrieve data after RX. </dd></dl>
</div>
</div>
<a class="anchor" id="a3a81a64b05912cf1b6a7cde6070fa408"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_APRD </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>APRD "auto increment address read" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, each slave ++, slave that has 0 excecutes </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>= databuffer to put slave data in </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a6dd3bf6a952c6b3c260655dac9dc8f34"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16 ecx_APRDw </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>APRDw "auto increment address read" word return primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, each slave ++, slave that has 0 reads. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>word data from slave </dd></dl>
</div>
</div>
<a class="anchor" id="a0cc23ebda2862d9a7aa260529b818fa0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_APWR </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>APWR "auto increment address write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, each slave ++, slave that has 0 writes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= databuffer to write to slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="ada12b7523b9d2615b8a4f5ca3d5270a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_APWRw </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>APWRw "auto increment address write" word primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, each slave ++, slave that has 0 writes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= word data to write to slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="abe3c16067b99aebd4d9bfd9a2b93a36c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_ARMW </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>APRMW "auto increment address read, multiple write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, each slave ++, slave that has 0 reads, following slaves write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>= databuffer to put slave data in </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="ac4903c87e0cc698ac3968f191af60332"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_BRD </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>BRD "broadcast read" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, normally 0 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>= databuffer to put slave data in </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a1b888fa00f141e401be521c6b340d044"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_BWR </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>BRW "broadcast write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, normally 0 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= databuffer to be written to slaves </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a40b981992928c4b72cf7f08c9538fd6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_FPRD </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FPRD "configured address read" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, slave that has address reads. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>= databuffer to put slave data in </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="ab4e55ff9162d1123ad7c3b1f34a7e6df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16 ecx_FPRDw </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FPRDw "configured address read" word return primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, slave that has address reads. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>word data from slave </dd></dl>
</div>
</div>
<a class="anchor" id="a84b35855ebd2a8226dbcaddc0ecba9b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_FPWR </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FPWR "configured address write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, slave that has address writes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= databuffer to write to slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a95b517724b08125f19b3f50b9e79f14c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_FPWRw </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FPWR "configured address write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, slave that has address writes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= word to write to slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="ada9732437a0dad686ed000d9876c12bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_FRMW </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FPRMW "configured address read, multiple write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position, slave that has address reads, following slaves write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset, slave memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>= databuffer to put slave data in </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a6a48db45b5d5328d7e5d51155e8abfaa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_LRD </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32&#160;</td>
<td class="paramname"><em>LogAdr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>LRD "logical memory read" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LogAdr</td><td>= Logical memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of bytes to read from slave. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>= databuffer to read from slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a747384434ba949b38f1f7064645c460e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_LRW </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32&#160;</td>
<td class="paramname"><em>LogAdr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>LRW "logical memory read / write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LogAdr</td><td>= Logical memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>= databuffer to write to and read from slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="ad3ee60104e7da46b07594c82f00dc0f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_LRWDC </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32&#160;</td>
<td class="paramname"><em>LogAdr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>DCrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64 *&#160;</td>
<td class="paramname"><em>DCtime</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>LRW "logical memory read / write" primitive plus Clock Distribution. Blocking. Frame consists of two datagrams, one LRW and one FPRMW.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LogAdr</td><td>= Logical memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>= databuffer to write to and read from slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">DCrs</td><td>= Distributed Clock reference slave address. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">DCtime</td><td>= DC time read from reference slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="a23db3b931b4e045e0b35c7bfe7d787ac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_LWR </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32&#160;</td>
<td class="paramname"><em>LogAdr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>LWR "logical memory write" primitive. Blocking.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LogAdr</td><td>= Logical memory address </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of databuffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= databuffer to write to slave. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>= timeout in us, standard is EC_TIMEOUTRET </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Workcounter or EC_NOFRAME </dd></dl>
</div>
</div>
<a class="anchor" id="aa2c4e8eb36480d128235b435add9cf67"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ecx_setupdatagram </td>
<td>(</td>
<td class="paramtype">ecx_portt *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>frame</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8&#160;</td>
<td class="paramname"><em>com</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>ADO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate and set EtherCAT datagram in a standard ethernet frame.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>= port context struct </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">frame</td><td>= framebuffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">com</td><td>= command </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>= index used for TX and RX buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADP</td><td>= Address Position </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ADO</td><td>= Address Offset </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>= length of datagram excluding EtherCAT header </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>= databuffer to be copied in datagram </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>always 0 </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Feb 26 2013 13:57:51 for SOEM by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>