<?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_app" xml:lang="en-US">
<title>App Class Reference</title>
<indexterm><primary>App</primary></indexterm>
<para>

<para>The <link linkend="_class_app">App</link> class represents the main application component. </para>
 
</para>
<para>
<computeroutput>#include &lt;App.h&gt;</computeroutput>
</para>
Inheritance diagram for App:<para>
    <informalfigure>
        <mediaobject>
            <imageobject>
                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../d5/def/class_app__inherit__graph.svg"></imagedata>
            </imageobject>
        </mediaobject>
    </informalfigure>
</para>
<simplesect>
    <title>Public Member Functions    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_app_1acb8cbf3e285b91d0170ffe87df5989c5">App</link> ()</para>

<para>Default constructor for the <link linkend="_class_app">App</link> class. </para>
</listitem>
            <listitem><para><link linkend="_class_component">Component</link> * <link linkend="_class_app_1ab4bad333be57f75097d4db33a0005de8">byId</link> (<link linkend="_class_timer">short</link> <link linkend="_class_component_1aba3a6b372b8f2efde31c1556c7107cf0">id</link>)</para>

<para>Retrieves a component by its ID. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_app_1a7828e60561005d8be896f8886bb6ecae">debug</link> ()</para>

<para>Performs debugging operations for the application. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_app_1a0de678919a81cdad718e891b2e640733">info</link> ()</para>

<para>Retrieves information about the application. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_app_1aa11e6e2c74bf07e565f7e8d17435e310">loop</link> ()</para>

<para>Runs the main loop of the application. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_app_1a29cb1278e50180ebfc4c227069951c1c">numByFlag</link> (<link linkend="_types_8h_1ab95f123a6c9bcfee6a343170ef8c5f69">ushort</link> <link linkend="_class_timer">flag</link>)</para>

<para>Retrieves the number of components with a specific flag. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">void</link> <link linkend="_class_app_1a9db654336bbdad3dbcedb410b4baca00">printRegisters</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_app_1a52f788b24f60dc3dcad3a40cdd490f97">registerComponents</link> (<link linkend="_class_bridge">Bridge</link> *<link linkend="_class_app_1af01b1aecd8a01cfa82ecadf38cfbe881">bridge</link>)</para>

<para>Register all components in <computeroutput><link linkend="_class_bridge">Bridge</link></computeroutput> </para>
</listitem>
            <listitem><para><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">short</link> <link linkend="_class_app_1a70d8aa55d9ab0475ce2e1b58f642ca8e">setup</link> ()</para>

<para>Performs the setup operations for the application and it&apos;s components. </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_1a5ee9563b1698bace212cda16a404ddb4">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">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_1aa872a02516634c1be99503a8de65113f">onRegisterMethods</link> (<link linkend="_class_bridge">Bridge</link> *bridge)</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>
<simplesect>
    <title>Public Attributes    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_bridge">Bridge</link> * <link linkend="_class_app_1af01b1aecd8a01cfa82ecadf38cfbe881">bridge</link></para>
</listitem>
            <listitem><para><link linkend="_class_timer">Vector</link>&lt; <link linkend="_class_component">Component</link> * &gt; <link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link></para>

<para>The list of components in the application. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_app_1aa9719a134650ba0e7c056af8ee1d42e8">DEBUG_INTERVAL</link></para>

<para>The interval for debugging operations. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_app_1a796a9a210c717eaaca3b632273b5bae9">debugTS</link></para>

<para>The timestamp for the last debug operation. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_app_1afa03325bb068e405ec7245bc1b860ec3">loopTS</link></para>

<para>The timestamp for the last loop operation. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">Vector</link>&lt; <link linkend="_class_modbus_gateway">ModbusGateway</link> * &gt; <link linkend="_class_app_1a0f2fdc9b06e6229451d72d927b4b14e4">nComponents</link></para>

<para>The list of components in the application. </para>
</listitem>
            <listitem><para><link linkend="_class_timer">Timer</link>&lt; 10, <link linkend="_class_timer">millis</link> &gt; <link linkend="_class_app_1ac221575eecd151c430b71f0db7495744">timer</link></para>

<para>The timer used for scheduling tasks. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_app_1adc7942c113d34fd3f271d02f76c1ae00">wait</link></para>

<para>The wait time between loop iterations. </para>
</listitem>
            <listitem><para><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> <link linkend="_class_app_1a5d0c4f6f1c7509cc87a857e9a9662cdd">waitTS</link></para>

<para>The timestamp for the last wait operation. </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>The <link linkend="_class_app">App</link> class represents the main application component. </para>



<para>This class inherits from the <link linkend="_class_component">Component</link> class and provides functionality for setting up, running the main loop, debugging, and providing information about the application. </para>
<para>
Definition at line <link linkend="__app_8h_source_1l00017">17</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<section>
<title>Constructor &amp; Destructor Documentation</title>
<anchor xml:id="_class_app_1acb8cbf3e285b91d0170ffe87df5989c5"/><section>
    <title>App()</title>
<indexterm><primary>App</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>App</secondary></indexterm>
<para><computeroutput>App::App ( )</computeroutput></para><para>

<para>Default constructor for the <link linkend="_class_app">App</link> class. </para>
</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00014">14</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00014 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;:&#32;<link linkend="_class_component_1a8775db6d1a2c1afc2e77cd3c8f39da6f">Component</link>(<emphasis role="stringliteral">&quot;APP&quot;</emphasis>,&#32;0,&#32;<link linkend="_class_component_1a2435f54f8ea88aa317f562b97c48175e">Component::COMPONENT_DEFAULT</link>)
00015 {
00016 &#32;&#32;&#32;&#32;<link linkend="_class_app_1aa9719a134650ba0e7c056af8ee1d42e8">DEBUG_INTERVAL</link>&#32;=&#32;1000;
00017 &#32;&#32;&#32;&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.setStorage(<link linkend="__app_8cpp_1a237aabeb9c355ed022bf2b76d63c11a8">componentsArray</link>);
00018 &#32;&#32;&#32;&#32;<link linkend="_class_app_1a0f2fdc9b06e6229451d72d927b4b14e4">nComponents</link>.setStorage(<link linkend="__app_8cpp_1a8ea9b53ab88f99a7fe2779309ef72ae4">componentsArrayModbus</link>);
00019 &#32;&#32;&#32;&#32;<link linkend="_class_app_1a796a9a210c717eaaca3b632273b5bae9">debugTS</link>&#32;=&#32;0;
00020 }
</programlisting></section>
</section>
<section>
<title>Member Function Documentation</title>
<anchor xml:id="_class_app_1ab4bad333be57f75097d4db33a0005de8"/><section>
    <title>byId()</title>
<indexterm><primary>byId</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>byId</secondary></indexterm>
<para><computeroutput><link linkend="_class_component">Component</link> * App::byId (<link linkend="_class_timer">short</link> id)</computeroutput></para><para>

<para>Retrieves a component by its ID. </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>id</entry><entry>
<para>The ID of the component to retrieve. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns</title>

<para>A pointer to the component with the specified ID, or nullptr if not found. </para>
</formalpara>
</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00140">140</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00141 {
00142 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00143 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00144 &#32;&#32;&#32;&#32;{
00145 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00146 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;id&#32;==&#32;<emphasis role="keywordtype">id</emphasis>)
00147 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00148 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">component</link>;
00149 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00150 &#32;&#32;&#32;&#32;}
00151 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">NULL</link>;
00152 }
</programlisting></section>
<anchor xml:id="_class_app_1a7828e60561005d8be896f8886bb6ecae"/><section>
    <title>debug()</title>
<indexterm><primary>debug</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>debug</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> App::debug ( )<computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Performs debugging operations for the application. </para>
</para>

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

<para>A status code indicating the result of the debug operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1ab2e2c2e11b072136d6be468b8db54d22">Component</link>.</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00099">99</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00100 {
00101 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">millis</link>()&#32;-&#32;<link linkend="_class_app_1a796a9a210c717eaaca3b632273b5bae9">debugTS</link>&#32;&gt;&#32;<link linkend="_class_app_1aa9719a134650ba0e7c056af8ee1d42e8">DEBUG_INTERVAL</link>)
00102 &#32;&#32;&#32;&#32;{
00103 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00104 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">nb</link>&#32;=&#32;0;
00105 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00106 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00107 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00108 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;hasFlag(OBJECT_RUN_FLAGS::E_OF_DEBUG))
00109 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00110 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;debug())
00111 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00112 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">Serial</link>.println(<emphasis role="stringliteral">&quot;\n&quot;</emphasis>);
00113 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">nb</link>++;
00114 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00115 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00116 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00117 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">nb</link>)
00118 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00119 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">Serial</link>.println(<emphasis role="stringliteral">&quot;\n&quot;</emphasis>);
00120 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00121 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_app_1a796a9a210c717eaaca3b632273b5bae9">debugTS</link>&#32;=&#32;<link linkend="_class_timer">millis</link>();
00122 &#32;&#32;&#32;&#32;}
00123 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00124 }
</programlisting></section>
<anchor xml:id="_class_app_1a0de678919a81cdad718e891b2e640733"/><section>
    <title>info()</title>
<indexterm><primary>info</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>info</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> App::info ( )<computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Retrieves information about the application. </para>
</para>

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

<para>A status code indicating the result of the info operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1ac9ad2cae93058a6aab4d57b1e7800374">Component</link>.</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00126">126</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00127 {
00128 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00129 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00130 &#32;&#32;&#32;&#32;{
00131 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00132 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;hasFlag(OBJECT_RUN_FLAGS::E_OF_INFO))
00133 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00134 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">component</link>-&gt;info();
00135 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00136 &#32;&#32;&#32;&#32;}
00137 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00138 }
</programlisting></section>
<anchor xml:id="_class_app_1aa11e6e2c74bf07e565f7e8d17435e310"/><section>
    <title>loop()</title>
<indexterm><primary>loop</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>loop</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> App::loop ( )<computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Runs the main loop of the application. </para>
</para>

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

<para>A status code indicating the result of the loop operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1a8f031c6c5e888711277cb9b688405477">Component</link>.</para>
<para>
Reimplemented in <link linkend="_class_p_h_app_1a58c21ee9a4733c2e293a72ee82ba6350">PHApp</link>.</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00063">63</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00064 {
00065 &#32;&#32;&#32;&#32;<link linkend="_class_app_1ac221575eecd151c430b71f0db7495744">timer</link>.<link linkend="_class_timer_1a522d59f128a42a01db7541fd431871a1">tick</link>();
00066 &#32;&#32;&#32;&#32;<link linkend="_class_component_1a62bafa07263df702e1c33cd60ddc25b8">now</link>&#32;=&#32;<link linkend="_class_timer">millis</link>();
00067 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00068 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00069 &#32;&#32;&#32;&#32;{
00070 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00071 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;hasFlag(OBJECT_RUN_FLAGS::E_OF_LOOP))
00072 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00073 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">component</link>-&gt;now&#32;=&#32;<link linkend="_class_component_1a62bafa07263df702e1c33cd60ddc25b8">now</link>;
00074 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">component</link>-&gt;loop();
00075 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00076 &#32;&#32;&#32;&#32;}
00077 &#32;&#32;&#32;&#32;<link linkend="_class_app_1a7828e60561005d8be896f8886bb6ecae">debug</link>();
00078 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00079 }
</programlisting></section>
<anchor xml:id="_class_app_1a29cb1278e50180ebfc4c227069951c1c"/><section>
    <title>numByFlag()</title>
<indexterm><primary>numByFlag</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>numByFlag</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> App::numByFlag (<link linkend="_types_8h_1ab95f123a6c9bcfee6a343170ef8c5f69">ushort</link> flag)<computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Retrieves the number of components with a specific flag. </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>flag</entry><entry>
<para>The flag to filter the components by. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns</title>

<para>The number of components with the specified flag. </para>
</formalpara>
</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00084">84</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00085 {
00086 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00087 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">l</link>&#32;=&#32;0;
00088 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00089 &#32;&#32;&#32;&#32;{
00090 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00091 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!!(<link linkend="_class_timer">component</link>-&gt;hasFlag(<link linkend="_class_timer">flag</link>)))
00092 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00093 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">l</link>++;
00094 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00095 &#32;&#32;&#32;&#32;}
00096 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">l</link>;
00097 }
</programlisting></section>
<anchor xml:id="_class_app_1a9db654336bbdad3dbcedb410b4baca00"/><section>
    <title>printRegisters()</title>
<indexterm><primary>printRegisters</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>printRegisters</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">virtual</link> <link linkend="_class_timer">void</link> App::printRegisters ( )<computeroutput>[inline]</computeroutput>, <computeroutput>[virtual]</computeroutput></computeroutput></para><para>
Reimplemented in <link linkend="_class_p_h_app_1a8203dc83324553b085afc06556fc5fe0">PHApp</link>.</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00123">123</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
<programlisting linenumbering="unnumbered">00123 {&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;&#32;}
</programlisting></section>
<anchor xml:id="_class_app_1a52f788b24f60dc3dcad3a40cdd490f97"/><section>
    <title>registerComponents()</title>
<indexterm><primary>registerComponents</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>registerComponents</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> App::registerComponents (<link linkend="_class_bridge">Bridge</link> * bridge)<computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Register all components in <computeroutput><link linkend="_class_bridge">Bridge</link></computeroutput> </para>
</para>

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

<para>A status code indicating the result of the setup operation. </para>
</formalpara>
</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00048">48</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00049 {
00050 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00051 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00052 &#32;&#32;&#32;&#32;{
00053 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00054 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;hasFlag(OBJECT_RUN_FLAGS::E_OF_DISABLED))
00055 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00056 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">continue</emphasis>;
00057 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00058 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">component</link>-&gt;onRegisterMethods(<link linkend="_class_app_1af01b1aecd8a01cfa82ecadf38cfbe881">bridge</link>);
00059 &#32;&#32;&#32;&#32;}
00060 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00061 }
</programlisting></section>
<anchor xml:id="_class_app_1a70d8aa55d9ab0475ce2e1b58f642ca8e"/><section>
    <title>setup()</title>
<indexterm><primary>setup</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>setup</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">short</link> App::setup ( )<computeroutput>[virtual]</computeroutput></computeroutput></para><para>

<para>Performs the setup operations for the application and it&apos;s components. </para>
</para>

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

<para>A status code indicating the result of the setup operation. </para>
</formalpara>
</para>
<para>
Reimplemented from <link linkend="_class_component_1a7a6699a2366b7f67b0efa76cc4821088">Component</link>.</para>
<para>
Reimplemented in <link linkend="_class_p_h_app_1ad8446427753647ad0732538b77a96eda">PHApp</link>.</para>
<para>
Definition at line <link linkend="__app_8cpp_source_1l00022">22</link> of file <link linkend="__app_8cpp_source">App.cpp</link>.</para>
<programlisting linenumbering="unnumbered">00023 {
00024 &#32;&#32;&#32;&#32;<link linkend="_class_timer">Log</link>.verbose(<link linkend="_class_timer">F</link>(<emphasis role="stringliteral">&quot;*&#32;App:setup&#32;*&quot;</emphasis>&#32;<link linkend="_class_timer">CR</link>));
00025 &#32;&#32;&#32;&#32;<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">s</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>.size();
00026 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<link linkend="_types_8h_1a65f85814a8290f9797005d3b28e7e5fc">uchar</link>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">s</link>;&#32;<link linkend="_class_timer">i</link>++)
00027 &#32;&#32;&#32;&#32;{
00028 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_component">Component</link>&#32;*<link linkend="_class_timer">component</link>&#32;=&#32;<link linkend="_class_app_1ac52ad5d6e22cf44fec90047ded84358d">components</link>[<link linkend="_class_timer">i</link>];
00029 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<link linkend="_class_timer">component</link>-&gt;owner)
00030 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00031 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">component</link>-&gt;owner&#32;=&#32;<emphasis role="keyword">this</emphasis>;
00032 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00033 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">component</link>-&gt;hasFlag(OBJECT_RUN_FLAGS::E_OF_SETUP))
00034 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00035 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">component</link>-&gt;setup();
00036 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00037 &#32;&#32;&#32;&#32;}
00038 
00039 &#32;&#32;&#32;&#32;<link linkend="_class_app_1a0de678919a81cdad718e891b2e640733">info</link>();
00040 &#32;&#32;&#32;&#32;<emphasis role="comment">/*</emphasis>
00041 <emphasis role="comment">&#32;&#32;&#32;&#32;if&#32;(bridge)</emphasis>
00042 <emphasis role="comment">&#32;&#32;&#32;&#32;{</emphasis>
00043 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;bridge-&gt;onRegisterMethods(bridge);</emphasis>
00044 <emphasis role="comment">&#32;&#32;&#32;&#32;}*/</emphasis>
00045 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_firmware__v2__cm_2enums_8h_1a1e7cc741c56207a8872ea58373276925">E_OK</link>;
00046 }
</programlisting></section>
</section>
<section>
<title>Member Data Documentation</title>
<anchor xml:id="_class_app_1af01b1aecd8a01cfa82ecadf38cfbe881"/><section>
    <title>bridge</title>
<indexterm><primary>bridge</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>bridge</secondary></indexterm>
<para><computeroutput><link linkend="_class_bridge">Bridge</link>* App::bridge</computeroutput></para><para>
Definition at line <link linkend="__app_8h_source_1l00121">121</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1ac52ad5d6e22cf44fec90047ded84358d"/><section>
    <title>components</title>
<indexterm><primary>components</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>components</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">Vector</link>&lt;<link linkend="_class_component">Component</link> *&gt; App::components</computeroutput></para><para>

<para>The list of components in the application. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00073">73</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1aa9719a134650ba0e7c056af8ee1d42e8"/><section>
    <title>DEBUG_INTERVAL</title>
<indexterm><primary>DEBUG_INTERVAL</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>DEBUG_INTERVAL</secondary></indexterm>
<para><computeroutput><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> App::DEBUG_INTERVAL</computeroutput></para><para>

<para>The interval for debugging operations. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00108">108</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1a796a9a210c717eaaca3b632273b5bae9"/><section>
    <title>debugTS</title>
<indexterm><primary>debugTS</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>debugTS</secondary></indexterm>
<para><computeroutput><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> App::debugTS</computeroutput></para><para>

<para>The timestamp for the last debug operation. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00083">83</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1afa03325bb068e405ec7245bc1b860ec3"/><section>
    <title>loopTS</title>
<indexterm><primary>loopTS</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>loopTS</secondary></indexterm>
<para><computeroutput><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> App::loopTS</computeroutput></para><para>

<para>The timestamp for the last loop operation. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00088">88</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1a0f2fdc9b06e6229451d72d927b4b14e4"/><section>
    <title>nComponents</title>
<indexterm><primary>nComponents</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>nComponents</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">Vector</link>&lt;<link linkend="_class_modbus_gateway">ModbusGateway</link> *&gt; App::nComponents</computeroutput></para><para>

<para>The list of components in the application. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00078">78</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1ac221575eecd151c430b71f0db7495744"/><section>
    <title>timer</title>
<indexterm><primary>timer</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>timer</secondary></indexterm>
<para><computeroutput><link linkend="_class_timer">Timer</link>&lt;10, <link linkend="_class_timer">millis</link>&gt; App::timer</computeroutput></para><para>

<para>The timer used for scheduling tasks. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00103">103</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1adc7942c113d34fd3f271d02f76c1ae00"/><section>
    <title>wait</title>
<indexterm><primary>wait</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>wait</secondary></indexterm>
<para><computeroutput><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> App::wait</computeroutput></para><para>

<para>The wait time between loop iterations. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00093">93</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<anchor xml:id="_class_app_1a5d0c4f6f1c7509cc87a857e9a9662cdd"/><section>
    <title>waitTS</title>
<indexterm><primary>waitTS</primary><secondary>App</secondary></indexterm>
<indexterm><primary>App</primary><secondary>waitTS</secondary></indexterm>
<para><computeroutput><link linkend="_types_8h_1ab14fc3b0e7b9535ec25836108ce96a45">millis_t</link> App::waitTS</computeroutput></para><para>

<para>The timestamp for the last wait operation. </para>
</para>
<para>
Definition at line <link linkend="__app_8h_source_1l00098">98</link> of file <link linkend="__app_8h_source">App.h</link>.</para>
</section>
<para>
The documentation for this class was generated from the following files:</para>
<link linkend="__app_8h">App.h</link><link linkend="__app_8cpp">App.cpp</link></section>
</section>
