<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_class_relay" xml:lang="en-US">
<title>Relay Class Reference</title>
<indexterm><primary>Relay</primary></indexterm>
<para>
<computeroutput>#include &lt;Relay.h&gt;</computeroutput>
</para>
Inheritance diagram for Relay:<para>
    <informalfigure>
        <mediaobject>
            <imageobject>
                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dc/d83/class_relay__inherit__graph.svg"></imagedata>
            </imageobject>
        </mediaobject>
    </informalfigure>
</para>
<simplesect>
    <title>Public Member Functions    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1a610b516bc5610910376cc1fe720c03c2">debug</link> ()</para>

<para>Virtual function to debug the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1a78bdbec59f41d1ee9ae60ef4f648387f">info</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">val0</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">val1</link>)</para>

<para>Virtual function to display information about the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1af713bcdb78d94f40981875742a215292">loop</link> ()</para>

<para>Virtual function to run the component in a loop. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1a9069d56f87954f62b16125cf3de6079f">onRegisterMethods</link> (<link linkend="_class_bridge">Bridge</link> *bridge)</para>
</listitem>
            <listitem><para><link linkend="_class_relay_1abe4bd8b576186c04115d761e048c8d02">Relay</link> (<link linkend="_class_component">Component</link> *<link linkend="_class_component_1abe8dcb7fc6074ff862cc4b9866196e21">owner</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_pin</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_id</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_addr</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_val</link>=0)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1ab3f8779c4a6979169a059609ef586660">set</link> (<link linkend="_class_timer">int</link> val)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1a419ee3853784882c3b4832f49889bf0c">setup</link> ()</para>

<para>Virtual function to set up the component. </para>
</listitem>
        </itemizedlist>
</simplesect>
Public Member Functions inherited from <link linkend="_class_component">Component</link>        <itemizedlist>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_component_1ab0641f7dfd6a83b2bf9c0dabf913bba8">clearFlag</link> (<link linkend="_class_timer">byte</link> <link linkend="_class_timer">flag</link>)</para>

<para>Clears a specific flag for the component. </para>
</listitem>
            <listitem><para><link linkend="_class_component_1a8775db6d1a2c1afc2e77cd3c8f39da6f">Component</link> ()</para>

<para>Default constructor for the <link linkend="_class_component">Component</link> class. </para>
</listitem>
            <listitem><para><link linkend="_class_component_1a105408e9463fdbe926fe2ef78f4003f8">Component</link> (<link linkend="_class_timer">String</link> <link linkend="_class_timer">_name</link>)</para>

<para>Constructor for the <link linkend="_class_component">Component</link> class with a specified name. </para>
</listitem>
            <listitem><para><link linkend="_class_component_1aa06f9abfec867a4d76640a783543b981">Component</link> (<link linkend="_class_timer">String</link> <link linkend="_class_timer">_name</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_id</link>)</para>

<para>Constructor for the <link linkend="_class_component">Component</link> class with a specified name and ID. </para>
</listitem>
            <listitem><para><link linkend="_class_component_1aad8eeba8c6f6b51ef3b85f144b3f050c">Component</link> (<link linkend="_class_timer">String</link> <link linkend="_class_timer">_name</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_id</link>, <link linkend="_class_timer">int</link> <link linkend="_class_timer">_flags</link>)</para>

<para>Constructor for the <link linkend="_class_component">Component</link> class with a specified name, ID, and flags. </para>
</listitem>
            <listitem><para><link linkend="_class_component_1aab29a9d52d0fb0f1f68a6f1107fce504">Component</link> (<link linkend="_class_timer">String</link> <link linkend="_class_timer">_name</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_id</link>, <link linkend="_class_timer">int</link> <link linkend="_class_timer">_flags</link>, <link linkend="_class_component">Component</link> *<link linkend="_class_timer">_owner</link>)</para>

<para>Constructor for the <link linkend="_class_component">Component</link> class with a specified name, ID, flags, and owner. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1a2509b6b05062a9f37be00d6633448f3a">debug</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">val0</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">val1</link>)</para>

<para>Virtual function to debug the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1a5a88f501e28538492a8b00f7256cfa88">destroy</link> ()</para>

<para>Virtual function to destroy the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_component_1a5944c18d0e1de53f2842149ca364b672">disable</link> ()</para>

<para>Disables the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_component_1af659603312b1770279f3722f8ea303a4">enable</link> ()</para>

<para>Enables the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_component_1a76d5c1c0f128959a0245cbceeef26443">enabled</link> ()</para>

<para>Checks if the component is enabled. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_component_1a6fbb2db0159837bf1e84bc4b27ff0f0a">hasFlag</link> (<link linkend="_class_timer">byte</link> <link linkend="_class_timer">flag</link>)</para>

<para>Checks if the component has a specific flag. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1ac9ad2cae93058a6aab4d57b1e7800374">info</link> ()</para>

<para>Virtual function to display information about the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1a91ac0196b944c9f1c9db4142395738df">onError</link> (<link linkend="_class_timer">short</link> <link linkend="_class_component_1aba3a6b372b8f2efde31c1556c7107cf0">id</link>, <link linkend="_class_timer">short</link> error)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1a9551f96bacf5477e5efb04ad3985e95f">onMessage</link> (<link linkend="_class_timer">int</link> <link linkend="_class_component_1aba3a6b372b8f2efde31c1556c7107cf0">id</link>, <link linkend="_osr-fw-base_2src_2enums_8h_1af647086e100e6e572160d67b627db67b">E_CALLS</link> verb, <link linkend="_osr-fw-base_2src_2enums_8h_1a881f3b5416932fb0f5774c343d8bacf4">E_MessageFlags</link> <link linkend="_class_component_1ad2627608e8e3bab6ae2598f56138803a">flags</link>, <link linkend="_class_timer">const</link> <link linkend="_class_timer">void</link> *<link linkend="_class_timer">user</link>, <link linkend="_class_component">Component</link> *<link linkend="_class_timer">src</link>)</para>

<para>Handles incoming messages. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1abb477935ff940965ad5e5712b5785d12">onRawResponse</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">size</link>, <link linkend="_class_timer">uint8_t</link> rxBuffer[])</para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1a881f4ed620349bc9e0706daa12b81674">onResponse</link> (<link linkend="_class_timer">short</link> error)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_component_1a423dca2635dd4b5f3cc5e1942d0942b3">setFlag</link> (<link linkend="_class_timer">byte</link> <link linkend="_class_timer">flag</link>)</para>

<para>Sets a specific flag for the component. </para>
</listitem>
            <listitem><para><link linkend="_class_component_1ab8378fa275af98e568a7e91d33d867af">~Component</link> ()</para>

<para>Destructor for the <link linkend="_class_component">Component</link> class. </para>
</listitem>
        </itemizedlist>
Public Member Functions inherited from <link linkend="_class_modbus_gateway">ModbusGateway</link>        <itemizedlist>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_modbus_gateway_1aaed7ceff9ed90a73b3edc860d2795d7f">getAddress</link> ()</para>
</listitem>
            <listitem><para><link linkend="_osr-fw-base_2examples_2pid_2enums_8h_1aff1341ea5077cc6097a0d7db89be4cf6">MB_FC</link> <link linkend="_class_modbus_gateway_1a5c58a1e93cb3300108c27d6f3eaac3cb">getFunctionCode</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_modbus_gateway_1a680298496fefeef0355f7fb406494aaf">getNumberAddresses</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">String</link> <link linkend="_class_modbus_gateway_1a9903e131718805f2658f68f96389f934">getRegisterDescription</link> (<link linkend="_class_timer">short</link> flags=0)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">const</link> <link linkend="_class_timer">char</link> * <link linkend="_class_modbus_gateway_1a13a4de4fa5b5bbf94a9a91de8e0fbd5f">getRegisterMode</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_modbus_gateway_1a78bde10e865f221affe774b2850470a6">ModbusGateway</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_modbus_gateway_1aeefdee0066e75a03f92a7cd64f5cd923">ModbusGateway</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">_addr</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_modbus_gateway_1ac72b8f93fa8050a9c71bbe862f592734">ModbusGateway</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">_addr</link>, <link linkend="_class_timer">short</link> <link linkend="_class_timer">_fc</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_gateway_1ad711fa3496ac0ac5d63f7e7080e1cb3d">setAddress</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">_addr</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_gateway_1a8c7b6c6b51675430e188f6394ce954ee">setFunctionCode</link> (<link linkend="_osr-fw-base_2examples_2pid_2enums_8h_1aff1341ea5077cc6097a0d7db89be4cf6">MB_FC</link> <link linkend="_class_timer">fc</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_gateway_1ada2cf17a72c4de2a05aef802f0d4d295">setGateway</link> (<link linkend="_class_mudbus">Mudbus</link> *<link linkend="_class_modbus_gateway_1a009e368330030aac35cabd6b1daf7387">mudbus</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_gateway_1a6170d47d3030ff71417815f00229aeb2">setNumberAddresses</link> (<link linkend="_class_timer">short</link> <link linkend="_class_timer">_nbAddr</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_gateway_1afc6d54612f4e6cfee3b3740c7cc550dd">setRegisterMode</link> (<link linkend="_osr-fw-base_2src_2enums_8h_1a1f6ea713f12845dd4706bc8f0d5da9cf">MB_REGISTER_MODE</link> mode)</para>
</listitem>
        </itemizedlist>
Public Member Functions inherited from <link linkend="_class_modbus_value_3_01bool_01_4">ModbusValue&lt; bool &gt;</link>        <itemizedlist>
            <listitem><para><link linkend="_class_modbus_value_3_01bool_01_4_1aaad13d86494a58a8f743d4d527207be4">ModbusValue</link> (<link linkend="_class_timer">int</link> <link linkend="_class_timer">_addr</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_modbus_value_3_01bool_01_4_1ac639fa02808f83fd1ea83090fa11d7f5">ModbusValue</link> (<link linkend="_class_timer">int</link> <link linkend="_class_timer">_addr</link>, <link linkend="_class_timer">int</link> <link linkend="_class_timer">_fc</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_modbus_value_3_01bool_01_4_1a3b842ed90306680527f0321b7e9aa589">netVal</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_value_3_01bool_01_4_1a307bf0988275c8a8dda38a3e2f786e6e">onChange</link> (<link linkend="_class_timer">const</link> <link linkend="_class_timer">bool</link> &amp;value)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_modbus_value_3_01bool_01_4_1ae41a8809515c6659bec973b09aa4532d">onSet</link> (<link linkend="_class_timer">const</link> <link linkend="_class_timer">bool</link> &amp;value)</para>
</listitem>
        </itemizedlist>
<simplesect>
    <title>Public Attributes    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link></para>
</listitem>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f">value</link></para>
</listitem>
        </itemizedlist>
</simplesect>
Public Attributes inherited from <link linkend="_class_component">Component</link>        <itemizedlist>
            <listitem><para><link linkend="_class_timer">int</link> <link linkend="_class_component_1ad2627608e8e3bab6ae2598f56138803a">flags</link></para>

<para>The run flags for the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">const</link> <link linkend="_class_timer">short</link> <link linkend="_class_component_1aba3a6b372b8f2efde31c1556c7107cf0">id</link></para>

<para>The ID of the component. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_component_1a9bd1750a52031e6b5d60a0f6c7de5c8b">last</link></para>

<para>The last tick time in milliseconds. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">String</link> <link linkend="_class_component_1acf12509f5baeb0096cad073f7d3575d4">name</link></para>

<para>The name of the component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">int</link> <link linkend="_class_component_1a89ecb049c2d7c026913e60f1393237dc">nFlags</link></para>

<para>The network capabilities of the component. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_component_1a62bafa07263df702e1c33cd60ddc25b8">now</link></para>

<para>The current time in milliseconds. </para>
</listitem>
            <listitem><para><link linkend="_class_component">Component</link> * <link linkend="_class_component_1abe8dcb7fc6074ff862cc4b9866196e21">owner</link></para>

<para>The owner of the component. </para>
</listitem>
        </itemizedlist>
Public Attributes inherited from <link linkend="_class_modbus_gateway">ModbusGateway</link>        <itemizedlist>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_modbus_gateway_1afe42c727b139008073bdeefbfd039eec">addr</link></para>
</listitem>
            <listitem><para><link linkend="_osr-fw-base_2examples_2pid_2enums_8h_1aff1341ea5077cc6097a0d7db89be4cf6">MB_FC</link> <link linkend="_class_modbus_gateway_1adfa9598d37ed50b06433e58c92389048">fn</link></para>
</listitem>
            <listitem><para><link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link> <link linkend="_class_modbus_gateway_1a60eadb64880be33ef9f8fafc2fd0979f">lastMQSlot</link></para>
</listitem>
            <listitem><para><link linkend="_class_mudbus">Mudbus</link> * <link linkend="_class_modbus_gateway_1a009e368330030aac35cabd6b1daf7387">mudbus</link></para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_modbus_gateway_1a6652fb1d4b0a59277b996b2fb4de4e32">nbAddr</link></para>
</listitem>
            <listitem><para><link linkend="_class_timer">short</link> <link linkend="_class_modbus_gateway_1a6a5d7233939da7d48dcd6c977bdc960b">registerMode</link></para>
</listitem>
        </itemizedlist>
<simplesect>
    <title>Additional Inherited Members    </title>
Static Public Attributes inherited from <link linkend="_class_component">Component</link>        <itemizedlist>
            <listitem><para><link linkend="_class_timer">static</link> <link linkend="_class_timer">const</link> <link linkend="_class_timer">int</link> <link linkend="_class_component_1a2435f54f8ea88aa317f562b97c48175e">COMPONENT_DEFAULT</link> = 1 &lt;&lt; OBJECT_RUN_FLAGS::E_OF_LOOP | 1 &lt;&lt; OBJECT_RUN_FLAGS::E_OF_SETUP</para>

<para>The default run flags for a component. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">static</link> <link linkend="_class_timer">const</link> <link linkend="_class_timer">int</link> <link linkend="_class_component_1aacfebfd04c61064f59bd407923e3408a">COMPONENT_NO_ID</link> = 0</para>

<para>The default ID for a component. </para>
</listitem>
        </itemizedlist>
</simplesect>
<section>
<title>Detailed Description</title>
<para>
Definition at line <link linkend="__relay_8h_source_1l00017">17</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
</section>
<section>
<title>Constructor &amp; Destructor Documentation</title>
<anchor xml:id="_class_relay_1abe4bd8b576186c04115d761e048c8d02"/><section>
    <title>Relay()</title>
<indexterm><primary>Relay</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>Relay</secondary></indexterm>
<para><computeroutput>Relay::Relay (<link linkend="_class_component">Component</link> * owner, <link linkend="_class_timer">short</link> _pin, <link linkend="_class_timer">short</link> _id, <link linkend="_class_timer">short</link> _addr, <link linkend="_class_timer">short</link> _val = <computeroutput>0</computeroutput>
)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="__relay_8h_source_1l00021">21</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00026 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;:&#32;<link linkend="_class_timer">ModbusValue&lt;bool&gt;</link>(<link linkend="_class_timer">_addr</link>,&#32;<link linkend="_osr-fw-base_2examples_2pid_2enums_8h_1aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC::MB_FC_READ_COILS</link>),
00027 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component_1a8775db6d1a2c1afc2e77cd3c8f39da6f">Component</link>(<emphasis role="stringliteral">&quot;MB_Relay&quot;</emphasis>,&#32;<link linkend="_class_timer">_id</link>,&#32;<link linkend="_class_component_1a2435f54f8ea88aa317f562b97c48175e">Component::COMPONENT_DEFAULT</link>,&#32;<link linkend="_class_component_1abe8dcb7fc6074ff862cc4b9866196e21">owner</link>),
00028 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>(<link linkend="_class_timer">_pin</link>),
00029 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f">value</link>(<link linkend="_class_timer">_val</link>)
00030 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//registerMode(MB_REGISTER_MODE::E_MB_REGISTER_MODE_READ_WRITE)</emphasis>
00031 &#32;&#32;&#32;&#32;{
00032 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//setFlag(OBJECT_RUN_FLAGS::E_OF_DEBUG);</emphasis>
00033 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_macros_8h_1ad6734ab7b97edb45709008a2869d7be0">SBI</link>(<link linkend="_class_component_1a89ecb049c2d7c026913e60f1393237dc">nFlags</link>,&#32;OBJECT_NET_CAPS::E_NCAPS_MODBUS);
00034 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_modbus_gateway_1afc6d54612f4e6cfee3b3740c7cc550dd">setRegisterMode</link>(MB_REGISTER_MODE::E_MB_REGISTER_MODE_READ_WRITE);
00035 &#32;&#32;&#32;&#32;}
</programlisting></section>
</section>
<section>
<title>Member Function Documentation</title>
<anchor xml:id="_class_relay_1a610b516bc5610910376cc1fe720c03c2"/><section>
    <title>debug()</title>
<indexterm><primary>debug</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>debug</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::debug ( )<computeroutput>[inline]</computeroutput>, <computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Virtual function to debug the component. </para>
</para>

<para>
                <formalpara>
                    <title>
Parameters</title>
                    <para>
                    <table frame="all">
                        <tgroup cols="2" align="left" colsep="1" rowsep="1">
                        <colspec colwidth="1*"/>
                        <colspec colwidth="4*"/>
                        <tbody>
                            <row>
<entry>stream</entry><entry>
<para>The stream to output the debug information to. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns</title>

<para>The error code indicating the success or failure of the operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1ab2e2c2e11b072136d6be468b8db54d22">Component</link>.</para>
<para>
Definition at line <link linkend="__relay_8h_source_1l00042">42</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00043 &#32;&#32;&#32;&#32;{
00044 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_component_1ac9ad2cae93058a6aab4d57b1e7800374">info</link>(0,0);
00045 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_relay_1a78bdbec59f41d1ee9ae60ef4f648387f"/><section>
    <title>info()</title>
<indexterm><primary>info</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>info</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::info (<link linkend="_class_timer">short</link> val0, <link linkend="_class_timer">short</link> val1)<computeroutput>[inline]</computeroutput>, <computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Virtual function to display information about the component. </para>
</para>

<para>
                <formalpara>
                    <title>
Parameters</title>
                    <para>
                    <table frame="all">
                        <tgroup cols="2" align="left" colsep="1" rowsep="1">
                        <colspec colwidth="1*"/>
                        <colspec colwidth="4*"/>
                        <tbody>
                            <row>
<entry>stream</entry><entry>
<para>The stream to output the information to. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns</title>

<para>The error code indicating the success or failure of the operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1a5ee9563b1698bace212cda16a404ddb4">Component</link>.</para>
<para>
Definition at line <link linkend="__relay_8h_source_1l00037">37</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00038 &#32;&#32;&#32;&#32;{
00039 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">Log</link>.verboseln(<emphasis role="stringliteral">&quot;Relay::info&#32;-&#32;Pin=%d&#32;|&#32;Key=%d&#32;|&#32;Addr=%d&#32;|&#32;Val=%d&#32;|&#32;NetVal=%d&#32;&quot;</emphasis>,&#32;<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>,&#32;<emphasis role="keywordtype">id</emphasis>,&#32;<link linkend="_class_modbus_gateway_1afe42c727b139008073bdeefbfd039eec">addr</link>,&#32;<link linkend="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f">value</link>,&#32;<link linkend="_class_modbus_value_3_01bool_01_4_1a3b842ed90306680527f0321b7e9aa589">netVal</link>());
00040 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00041 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_relay_1af713bcdb78d94f40981875742a215292"/><section>
    <title>loop()</title>
<indexterm><primary>loop</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>loop</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::loop ( )<computeroutput>[inline]</computeroutput>, <computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Virtual function to run the component in a loop. </para>
</para>

<para><formalpara><title>Returns</title>

<para>The error code indicating the success or failure of the operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1a8f031c6c5e888711277cb9b688405477">Component</link>.</para>
<para>
Definition at line <link linkend="__relay_8h_source_1l00096">96</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00097 &#32;&#32;&#32;&#32;{
00098 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">bool</emphasis>&#32;val&#32;=&#32;<link linkend="_class_modbus_value_3_01bool_01_4_1a3b842ed90306680527f0321b7e9aa589">netVal</link>();
00099 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(val&#32;!=&#32;<link linkend="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f">value</link>)
00100 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00101 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_relay_1ab3f8779c4a6979169a059609ef586660">set</link>(val);
00102 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00103 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00104 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_relay_1a9069d56f87954f62b16125cf3de6079f"/><section>
    <title>onRegisterMethods()</title>
<indexterm><primary>onRegisterMethods</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>onRegisterMethods</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::onRegisterMethods (<link linkend="_class_bridge">Bridge</link> * bridge)<computeroutput>[inline]</computeroutput>, <computeroutput>[virtual]</computeroutput></computeroutput></para>
<para>Registers methods for the component with the specified bridge. This method should be overridden by derived classes to provide custom method registration logic.</para>

<para>
                <formalpara>
                    <title>
Parameters</title>
                    <para>
                    <table frame="all">
                        <tgroup cols="2" align="left" colsep="1" rowsep="1">
                        <colspec colwidth="1*"/>
                        <colspec colwidth="4*"/>
                        <tbody>
                            <row>
<entry>bridge</entry><entry>
<para>The bridge to register methods with. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns</title>

<para>The status code indicating the success or failure of the method registration. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1aa872a02516634c1be99503a8de65113f">Component</link>.</para>
<para>
Definition at line <link linkend="__relay_8h_source_1l00087">87</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00088 &#32;&#32;&#32;&#32;{
00089 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;bridge-&gt;<link linkend="_class_bridge_1a94f5bb815a531cf26e748f134ef54527">registerMemberFunction</link>(<emphasis role="keywordtype">id</emphasis>,&#32;<emphasis role="keyword">this</emphasis>,&#32;<link linkend="_macros_8h_1a17c46249a379fcc3db1131c6b7d95de6">C_STR</link>(<emphasis role="stringliteral">&quot;set&quot;</emphasis>),&#32;(<link linkend="__component_8h_1a8a69ab8f0f634d4a87e21b0396590c7c">ComponentFnPtr</link>)&amp;<link linkend="_class_relay_1ab3f8779c4a6979169a059609ef586660">Relay::set</link>);
00090 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;bridge-&gt;<link linkend="_class_bridge_1a94f5bb815a531cf26e748f134ef54527">registerMemberFunction</link>(<emphasis role="keywordtype">id</emphasis>,&#32;<emphasis role="keyword">this</emphasis>,&#32;<link linkend="_macros_8h_1a17c46249a379fcc3db1131c6b7d95de6">C_STR</link>(<emphasis role="stringliteral">&quot;info&quot;</emphasis>),&#32;(<link linkend="__component_8h_1a8a69ab8f0f634d4a87e21b0396590c7c">ComponentFnPtr</link>)&amp;<link linkend="_class_component_1ac9ad2cae93058a6aab4d57b1e7800374">Relay::info</link>);
00091 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;bridge-&gt;<link linkend="_class_bridge_1a94f5bb815a531cf26e748f134ef54527">registerMemberFunction</link>(<emphasis role="keywordtype">id</emphasis>,&#32;<emphasis role="keyword">this</emphasis>,&#32;<link linkend="_macros_8h_1a17c46249a379fcc3db1131c6b7d95de6">C_STR</link>(<emphasis role="stringliteral">&quot;setFlag&quot;</emphasis>),&#32;(<link linkend="__component_8h_1a8a69ab8f0f634d4a87e21b0396590c7c">ComponentFnPtr</link>)&amp;<link linkend="_class_component_1a423dca2635dd4b5f3cc5e1942d0942b3">Relay::setFlag</link>);
00092 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//bridge-&gt;registerMemberFunction(id,&#32;this,&#32;C_STR(&quot;clearFlag&quot;),&#32;(ComponentFnPtr)&amp;Relay::clearFlag);</emphasis>
00093 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00094 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_relay_1ab3f8779c4a6979169a059609ef586660"/><section>
    <title>set()</title>
<indexterm><primary>set</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>set</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::set (<link linkend="_class_timer">int</link> val)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="__relay_8h_source_1l00061">61</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00062 &#32;&#32;&#32;&#32;{
00063 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f">value</link>&#32;=&#32;val;
00064 <emphasis role="preprocessor">#ifdef&#32;PLATFORM_PORTENTA_H7_M7&#x240D;</emphasis>
00065 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">_value</link>&#32;==&#32;1)
00066 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00067 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">digital_outputs</link>.set(<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>,&#32;<link linkend="_class_timer">HIGH</link>);
00068 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">Log</link>.verbose(<link linkend="_class_timer">F</link>(<emphasis role="stringliteral">&quot;Relay:set&#32;pin=%d&#32;value=%d&quot;</emphasis>&#32;<link linkend="_class_timer">CR</link>),&#32;<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>,&#32;<link linkend="_class_timer">_value</link>);
00069 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00070 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
00071 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00072 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">digital_outputs</link>.set(<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>,&#32;<link linkend="_class_timer">LOW</link>);
00073 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">Log</link>.verbose(<link linkend="_class_timer">F</link>(<emphasis role="stringliteral">&quot;Relay:set&#32;pin=%d&#32;value=%d&quot;</emphasis>&#32;<link linkend="_class_timer">CR</link>),&#32;<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>,&#32;<link linkend="_class_timer">_value</link>);
00074 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00075 <emphasis role="preprocessor">#endif&#x240D;</emphasis>
00076 
00077 <emphasis role="preprocessor">#ifdef&#32;PLATFORM_CONTROLLINO_MEGA&#x240D;</emphasis>
00078 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">digitalWrite</link>(<link linkend="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7">pin</link>,&#32;val&#32;?&#32;<link linkend="_class_timer">HIGH</link>&#32;:&#32;<link linkend="_class_timer">LOW</link>);
00079 <emphasis role="preprocessor">#endif&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#x240D;</emphasis>
00080 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_modbus_value_3_01bool_01_4_1a3b842ed90306680527f0321b7e9aa589">netVal</link>()&#32;!=&#32;<link linkend="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f">value</link>)
00081 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00082 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_modbus_value_3_01bool_01_4_1ae41a8809515c6659bec973b09aa4532d">onSet</link>(val);
00083 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00084 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;val;
00085 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_relay_1a419ee3853784882c3b4832f49889bf0c"/><section>
    <title>setup()</title>
<indexterm><primary>setup</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>setup</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::setup ( )<computeroutput>[inline]</computeroutput>, <computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Virtual function to set up the component. </para>
</para>

<para><formalpara><title>Returns</title>

<para>The error code indicating the success or failure of the operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1a7a6699a2366b7f67b0efa76cc4821088">Component</link>.</para>
<para>
Definition at line <link linkend="__relay_8h_source_1l00047">47</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
<programlisting linenumbering="unnumbered">00048 &#32;&#32;&#32;&#32;{
00049 <emphasis role="preprocessor">#ifdef&#32;PLATFORM_PORTENTA_H7_M7&#x240D;</emphasis>
00050 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*</emphasis>
00051 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;digital_outputs.setLatch();&#x240D;</emphasis>
00052 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;//&#32;Uncomment&#32;this&#32;line&#32;to&#32;set&#32;over&#32;current&#32;behavior&#32;of&#32;all&#x240D;</emphasis>
00053 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;//&#32;channels&#32;to&#32;auto&#32;retry&#32;mode&#32;instead&#32;of&#32;latch&#32;mode:&#x240D;</emphasis>
00054 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;//&#32;digital_outputs.setRetry();&#x240D;</emphasis>
00055 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;digital_outputs.set(pin,&#32;LOW);&#x240D;</emphasis>
00056 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
00057 <emphasis role="preprocessor">#endif&#x240D;</emphasis>
00058 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00059 &#32;&#32;&#32;&#32;}
</programlisting></section>
</section>
<section>
<title>Member Data Documentation</title>
<anchor xml:id="_class_relay_1aaa0caa86cf261bf8c556862003eae7d7"/><section>
    <title>pin</title>
<indexterm><primary>pin</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>pin</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> Relay::pin</computeroutput></para><para>
Definition at line <link linkend="__relay_8h_source_1l00106">106</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
</section>
<anchor xml:id="_class_relay_1a8429f2fc1b6a74cb24030391c4d65c6f"/><section>
    <title>value</title>
<indexterm><primary>value</primary><secondary>Relay</secondary></indexterm>
<indexterm><primary>Relay</primary><secondary>value</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">bool</link> Relay::value</computeroutput></para><para>
Definition at line <link linkend="__relay_8h_source_1l00107">107</link> of file <link linkend="__relay_8h_source">Relay.h</link>.</para>
</section>
<para>
The documentation for this class was generated from the following file:</para>
<link linkend="__relay_8h">Relay.h</link></section>
</section>
