387 lines
18 KiB
HTML
387 lines
18 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: ecx_contextt Struct 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
|
|
 <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 Page</span></a></li>
|
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-attribs">Data Fields</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ecx_contextt Struct Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p><code>#include <ethercatmain.h></code></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
|
Data Fields</h2></td></tr>
|
|
<tr class="memitem:a4a3380a63e8b17c0e8f53912d017c445"><td class="memItemLeft" align="right" valign="top">ecx_portt * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a4a3380a63e8b17c0e8f53912d017c445">port</a></td></tr>
|
|
<tr class="separator:a4a3380a63e8b17c0e8f53912d017c445"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad258deb50cab3200e37c1cce9ddaa6e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__slavet.html">ec_slavet</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#ad258deb50cab3200e37c1cce9ddaa6e3">slavelist</a></td></tr>
|
|
<tr class="separator:ad258deb50cab3200e37c1cce9ddaa6e3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9d55b3f5a0474435bae01c1864168d04"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a9d55b3f5a0474435bae01c1864168d04">slavecount</a></td></tr>
|
|
<tr class="separator:a9d55b3f5a0474435bae01c1864168d04"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ade7d588a78ac5cdd8ea913087751063c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#ade7d588a78ac5cdd8ea913087751063c">maxslave</a></td></tr>
|
|
<tr class="separator:ade7d588a78ac5cdd8ea913087751063c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4238dbb446e1eac93d3462509f3d0813"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__groupt.html">ec_groupt</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a4238dbb446e1eac93d3462509f3d0813">grouplist</a></td></tr>
|
|
<tr class="separator:a4238dbb446e1eac93d3462509f3d0813"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a274f73410cbd5a42133b16edaf128b66"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a274f73410cbd5a42133b16edaf128b66">maxgroup</a></td></tr>
|
|
<tr class="separator:a274f73410cbd5a42133b16edaf128b66"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9eb0a8f24ab9b6fe6262b2e69526baa3"><td class="memItemLeft" align="right" valign="top">uint8 * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a9eb0a8f24ab9b6fe6262b2e69526baa3">esibuf</a></td></tr>
|
|
<tr class="separator:a9eb0a8f24ab9b6fe6262b2e69526baa3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac6a94c89a64452d0595f2970c0cb621f"><td class="memItemLeft" align="right" valign="top">uint32 * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#ac6a94c89a64452d0595f2970c0cb621f">esimap</a></td></tr>
|
|
<tr class="separator:ac6a94c89a64452d0595f2970c0cb621f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a15fb38f53c2e993e666a3294cdd69119"><td class="memItemLeft" align="right" valign="top">uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a15fb38f53c2e993e666a3294cdd69119">esislave</a></td></tr>
|
|
<tr class="separator:a15fb38f53c2e993e666a3294cdd69119"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae782f23c7bcfb7aeafbe70ba8e5ffe1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__eringt.html">ec_eringt</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#ae782f23c7bcfb7aeafbe70ba8e5ffe1b">elist</a></td></tr>
|
|
<tr class="separator:ae782f23c7bcfb7aeafbe70ba8e5ffe1b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab50c673e88f903b78901258ac4a57cc1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__idxstackT.html">ec_idxstackT</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#ab50c673e88f903b78901258ac4a57cc1">idxstack</a></td></tr>
|
|
<tr class="separator:ab50c673e88f903b78901258ac4a57cc1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a71bb4a132349a1ab5032c94b49ccba33"><td class="memItemLeft" align="right" valign="top">boolean * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a71bb4a132349a1ab5032c94b49ccba33">ecaterror</a></td></tr>
|
|
<tr class="separator:a71bb4a132349a1ab5032c94b49ccba33"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a99aa867137598ee3ee3255af3fbd9c77"><td class="memItemLeft" align="right" valign="top">uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a99aa867137598ee3ee3255af3fbd9c77">DCtO</a></td></tr>
|
|
<tr class="separator:a99aa867137598ee3ee3255af3fbd9c77"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abdb941e89612d50d3f261d72188d15d7"><td class="memItemLeft" align="right" valign="top">uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#abdb941e89612d50d3f261d72188d15d7">DCl</a></td></tr>
|
|
<tr class="separator:abdb941e89612d50d3f261d72188d15d7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aaf83f518e8e6296b7320e554e68795cb"><td class="memItemLeft" align="right" valign="top">int64 * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#aaf83f518e8e6296b7320e554e68795cb">DCtime</a></td></tr>
|
|
<tr class="separator:aaf83f518e8e6296b7320e554e68795cb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a99d297e2f0a06984847b32fcd73a8f51"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__SMcommtypet.html">ec_SMcommtypet</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a99d297e2f0a06984847b32fcd73a8f51">SMcommtype</a></td></tr>
|
|
<tr class="separator:a99d297e2f0a06984847b32fcd73a8f51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a53552f4442b69e56b0d74e48bb318265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__PDOassignt.html">ec_PDOassignt</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a53552f4442b69e56b0d74e48bb318265">PDOassign</a></td></tr>
|
|
<tr class="separator:a53552f4442b69e56b0d74e48bb318265"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0a007e67273b21b75f91f8167d18dd08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__PDOdesct.html">ec_PDOdesct</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a0a007e67273b21b75f91f8167d18dd08">PDOdesc</a></td></tr>
|
|
<tr class="separator:a0a007e67273b21b75f91f8167d18dd08"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a44e1e43f114e0bda59e69f0db3802290"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__eepromSMt.html">ec_eepromSMt</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a44e1e43f114e0bda59e69f0db3802290">eepSM</a></td></tr>
|
|
<tr class="separator:a44e1e43f114e0bda59e69f0db3802290"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad380876432333e4bffa26b5992a23737"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structec__eepromFMMUt.html">ec_eepromFMMUt</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#ad380876432333e4bffa26b5992a23737">eepFMMU</a></td></tr>
|
|
<tr class="separator:ad380876432333e4bffa26b5992a23737"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a741d9bd24f406eb5a34839ca05d68a67"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structecx__contextt.html#a741d9bd24f406eb5a34839ca05d68a67">FOEhook</a> )(uint16 <a class="el" href="eepromtool_8c.html#a7f46665d1fe6d01a75a90942bb34cfaf">slave</a>, int packetnumber, int datasize)</td></tr>
|
|
<tr class="separator:a741d9bd24f406eb5a34839ca05d68a67"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Context structure , referenced by all ecx functions </p>
|
|
</div><h2 class="groupheader">Field Documentation</h2>
|
|
<a class="anchor" id="abdb941e89612d50d3f261d72188d15d7"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint16 ecx_contextt::DCl</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, length of DC datagram </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aaf83f518e8e6296b7320e554e68795cb"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int64* ecx_contextt::DCtime</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>reference to last DC time from slaves </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a99aa867137598ee3ee3255af3fbd9c77"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint16 ecx_contextt::DCtO</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, position of DC datagram in process data packet </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a71bb4a132349a1ab5032c94b49ccba33"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">boolean* ecx_contextt::ecaterror</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>reference to ecaterror state </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ad380876432333e4bffa26b5992a23737"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__eepromFMMUt.html">ec_eepromFMMUt</a>* ecx_contextt::eepFMMU</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, FMMU list from eeprom </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a44e1e43f114e0bda59e69f0db3802290"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__eepromSMt.html">ec_eepromSMt</a>* ecx_contextt::eepSM</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, SM list from eeprom </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ae782f23c7bcfb7aeafbe70ba8e5ffe1b"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__eringt.html">ec_eringt</a>* ecx_contextt::elist</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, reference to error list </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a9eb0a8f24ab9b6fe6262b2e69526baa3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint8* ecx_contextt::esibuf</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, reference to eeprom cache buffer </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ac6a94c89a64452d0595f2970c0cb621f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint32* ecx_contextt::esimap</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, reference to eeprom cache map </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a15fb38f53c2e993e666a3294cdd69119"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint16 ecx_contextt::esislave</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, current slave for eeprom cache </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a741d9bd24f406eb5a34839ca05d68a67"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int(* ecx_contextt::FOEhook)(uint16 <a class="el" href="eepromtool_8c.html#a7f46665d1fe6d01a75a90942bb34cfaf">slave</a>, int packetnumber, int datasize)</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>registered FoE hook </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a4238dbb446e1eac93d3462509f3d0813"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__groupt.html">ec_groupt</a>* ecx_contextt::grouplist</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>grouplist reference </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ab50c673e88f903b78901258ac4a57cc1"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__idxstackT.html">ec_idxstackT</a>* ecx_contextt::idxstack</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, reference to processdata stack buffer info </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a274f73410cbd5a42133b16edaf128b66"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int ecx_contextt::maxgroup</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>maximum number of groups allowed in grouplist </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ade7d588a78ac5cdd8ea913087751063c"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int ecx_contextt::maxslave</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>maximum number of slaves allowed in slavelist </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a53552f4442b69e56b0d74e48bb318265"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__PDOassignt.html">ec_PDOassignt</a>* ecx_contextt::PDOassign</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, PDO assign list </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0a007e67273b21b75f91f8167d18dd08"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__PDOdesct.html">ec_PDOdesct</a>* ecx_contextt::PDOdesc</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, PDO description list </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a4a3380a63e8b17c0e8f53912d017c445"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ecx_portt* ecx_contextt::port</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>port reference, may include red_port </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a9d55b3f5a0474435bae01c1864168d04"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int* ecx_contextt::slavecount</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>number of slaves found in configuration </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ad258deb50cab3200e37c1cce9ddaa6e3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__slavet.html">ec_slavet</a>* ecx_contextt::slavelist</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>slavelist reference </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a99d297e2f0a06984847b32fcd73a8f51"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structec__SMcommtypet.html">ec_SMcommtypet</a>* ecx_contextt::SMcommtype</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>internal, SM buffer </p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
|
<li><a class="el" href="ethercatmain_8h.html">ethercatmain.h</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Tue Feb 26 2013 13:57:51 for SOEM by  <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>
|