SOEM/doc/html/ethercatbase_8c.html

2040 lines
81 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.c 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.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Base EtherCAT functions.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &quot;oshw.h&quot;</code><br/>
<code>#include &quot;osal.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="ethercatbase_8h.html">ethercatbase.h</a>&quot;</code><br/>
</div><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_8c.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_8c.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_8c.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_8c.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_8c.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_8c.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_8c.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_8c.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_8c.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_8c.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:a0cc23ebda2862d9a7aa260529b818fa0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.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:ada12b7523b9d2615b8a4f5ca3d5270a1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.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:a84b35855ebd2a8226dbcaddc0ecba9b5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.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:a95b517724b08125f19b3f50b9e79f14c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.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:a747384434ba949b38f1f7064645c460e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.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_8c.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_8c.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_8c.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>
<tr class="memitem:a3b9a1e2b9fc1e15cf147a85d484db027"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a3b9a1e2b9fc1e15cf147a85d484db027">ec_setupdatagram</a> (void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO, uint16 length, void *data)</td></tr>
<tr class="separator:a3b9a1e2b9fc1e15cf147a85d484db027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a775297e7bcfe08569ad537d6e3a770fb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a775297e7bcfe08569ad537d6e3a770fb">ec_adddatagram</a> (void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)</td></tr>
<tr class="separator:a775297e7bcfe08569ad537d6e3a770fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ad29de613339c69a0b132114928b208"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a3ad29de613339c69a0b132114928b208">ec_BWR</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a3ad29de613339c69a0b132114928b208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30d9ab75b270ba904509fb1af2b8dc17"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a30d9ab75b270ba904509fb1af2b8dc17">ec_BRD</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a30d9ab75b270ba904509fb1af2b8dc17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80f6087e11fc1a42832f7c7872122308"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a80f6087e11fc1a42832f7c7872122308">ec_APRD</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a80f6087e11fc1a42832f7c7872122308"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fb77485174d13b8b5fe8bd2cac816e9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a9fb77485174d13b8b5fe8bd2cac816e9">ec_ARMW</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a9fb77485174d13b8b5fe8bd2cac816e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a1aa39c19d1e54b7e5f1b5c37c6f84e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a8a1aa39c19d1e54b7e5f1b5c37c6f84e">ec_FRMW</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a8a1aa39c19d1e54b7e5f1b5c37c6f84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae04f6096929eed658625620ba507b219"><td class="memItemLeft" align="right" valign="top">uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#ae04f6096929eed658625620ba507b219">ec_APRDw</a> (uint16 ADP, uint16 ADO, int timeout)</td></tr>
<tr class="separator:ae04f6096929eed658625620ba507b219"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac2dc2b5a39ace0793473ab89bb56c7d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#aac2dc2b5a39ace0793473ab89bb56c7d">ec_FPRD</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:aac2dc2b5a39ace0793473ab89bb56c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a688faf55cfa019c9c0bb637142bfbcd4"><td class="memItemLeft" align="right" valign="top">uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a688faf55cfa019c9c0bb637142bfbcd4">ec_FPRDw</a> (uint16 ADP, uint16 ADO, int timeout)</td></tr>
<tr class="separator:a688faf55cfa019c9c0bb637142bfbcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02a1741d276571009e46fbe39e9f729f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a02a1741d276571009e46fbe39e9f729f">ec_APWR</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a02a1741d276571009e46fbe39e9f729f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca3c5979b5549da9f4a6f441a74e132b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#aca3c5979b5549da9f4a6f441a74e132b">ec_APWRw</a> (uint16 ADP, uint16 ADO, uint16 data, int timeout)</td></tr>
<tr class="separator:aca3c5979b5549da9f4a6f441a74e132b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2fe58363a824f15838718ee31f11ffc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#aa2fe58363a824f15838718ee31f11ffc">ec_FPWR</a> (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:aa2fe58363a824f15838718ee31f11ffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fc76bd01a00a0f6da9fb3927eabc24d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a2fc76bd01a00a0f6da9fb3927eabc24d">ec_FPWRw</a> (uint16 ADP, uint16 ADO, uint16 data, int timeout)</td></tr>
<tr class="separator:a2fc76bd01a00a0f6da9fb3927eabc24d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a785fba63c633dd865d0b778adb0239c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a785fba63c633dd865d0b778adb0239c2">ec_LRW</a> (uint32 LogAdr, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a785fba63c633dd865d0b778adb0239c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b5e08a277e1be8f7a9a783e58fb4d2a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#a6b5e08a277e1be8f7a9a783e58fb4d2a">ec_LRD</a> (uint32 LogAdr, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:a6b5e08a277e1be8f7a9a783e58fb4d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1edce1f583efd3c9616409b23cb088d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#ad1edce1f583efd3c9616409b23cb088d">ec_LWR</a> (uint32 LogAdr, uint16 length, void *data, int timeout)</td></tr>
<tr class="separator:ad1edce1f583efd3c9616409b23cb088d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2b92060d47d3ea8b18cff9184113eba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ethercatbase_8c.html#ae2b92060d47d3ea8b18cff9184113eba">ec_LRWDC</a> (uint32 LogAdr, uint16 length, void *data, uint16 DCrs, int64 *DCtime, int timeout)</td></tr>
<tr class="separator:ae2b92060d47d3ea8b18cff9184113eba"><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>Base EtherCAT functions. </p>
<p>Setting up a datagram in an ethernet frame. EtherCAT datagram primitives, broadcast, auto increment, configured and logical addressed data transfers. All base transfers are blocking, so wait for the frame to be returned to the master or timeout. If this is not acceptable build your own datagrams and use the functions from nicdrv.c. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a775297e7bcfe08569ad537d6e3a770fb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_adddatagram </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">
</div>
</div>
<a class="anchor" id="a80f6087e11fc1a42832f7c7872122308"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_APRD </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">
</div>
</div>
<a class="anchor" id="ae04f6096929eed658625620ba507b219"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16 ec_APRDw </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">
</div>
</div>
<a class="anchor" id="a02a1741d276571009e46fbe39e9f729f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_APWR </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">
</div>
</div>
<a class="anchor" id="aca3c5979b5549da9f4a6f441a74e132b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_APWRw </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">
</div>
</div>
<a class="anchor" id="a9fb77485174d13b8b5fe8bd2cac816e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_ARMW </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">
</div>
</div>
<a class="anchor" id="a30d9ab75b270ba904509fb1af2b8dc17"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_BRD </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">
</div>
</div>
<a class="anchor" id="a3ad29de613339c69a0b132114928b208"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_BWR </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">
</div>
</div>
<a class="anchor" id="aac2dc2b5a39ace0793473ab89bb56c7d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_FPRD </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">
</div>
</div>
<a class="anchor" id="a688faf55cfa019c9c0bb637142bfbcd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16 ec_FPRDw </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">
</div>
</div>
<a class="anchor" id="aa2fe58363a824f15838718ee31f11ffc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_FPWR </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">
</div>
</div>
<a class="anchor" id="a2fc76bd01a00a0f6da9fb3927eabc24d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_FPWRw </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">
</div>
</div>
<a class="anchor" id="a8a1aa39c19d1e54b7e5f1b5c37c6f84e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_FRMW </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">
</div>
</div>
<a class="anchor" id="a6b5e08a277e1be8f7a9a783e58fb4d2a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_LRD </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">
</div>
</div>
<a class="anchor" id="a785fba63c633dd865d0b778adb0239c2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_LRW </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">
</div>
</div>
<a class="anchor" id="ae2b92060d47d3ea8b18cff9184113eba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_LRWDC </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">
</div>
</div>
<a class="anchor" id="ad1edce1f583efd3c9616409b23cb088d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_LWR </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">
</div>
</div>
<a class="anchor" id="a3b9a1e2b9fc1e15cf147a85d484db027"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ec_setupdatagram </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">
</div>
</div>
<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>