aboutsummaryrefslogtreecommitdiffstats
path: root/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__m_g_r.html
blob: 045ec09ef6921c9b2277b1209a4f3f5dd6bfaac4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>UNICENS: Manager</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="style_html.css" rel="stylesheet" type="text/css" />
<link href="inic.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="GlobalWrapper">
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr>
  <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
  <td>
   <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
   <div id="projectbrief">User Manual and API Reference</div>
    <div id="searchbox">        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__m_g_r.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Manager </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1>Introduction</h1>
<p>The Manager is an optional component that automatically handles the following tasks:</p>
<ul>
<li>Force the network to available state</li>
<li>Re-initialization of nodes if necessary</li>
<li>Automatically starts the NodeDiscovery and the RoutingManagement</li>
<li>Automatically handles the NodeDiscovery tasks according to a preset list of nodes</li>
<li>Automatically announces nodes as available/not available to the RoutingManagement</li>
</ul>
<p>If the application uses a dynamic approach for the RoutingManagement it is recommended to use the function <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8" title="Sets the given route to active respectively inactive and triggers the routing process to handle the r...">Ucs_Rm_SetRouteActive()</a> together with Manager component.</p>
<p>Enable the Manager in the initialization structure. </p>
<div class="fragment"><div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d" title="If set to false the application must handle network startup, node discovery and rooting by hand...">enabled</a> = <span class="keyword">true</span>;</div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Since the manager already handles a set of tasks that may also be done by hand it is necessary to <em>enable</em> the Manager and to not access the API which as handles by the Manager.</dd></dl>
<p>Do not access the following functions if the Manager is enabled:</p>
<ul>
<li><a class="el" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup()</a></li>
<li><a class="el" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc" title="Switches of the MOST Network.">Ucs_Network_Shutdown()</a></li>
<li><a class="el" href="group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819" title="Triggers the INIC to force the NotAvailable state.">Ucs_Network_ForceNotAvailable()</a></li>
<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec" title="Starts the Node Discovery service.">Ucs_Nd_Start()</a></li>
<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6" title="Stops the Node Discovery service.">Ucs_Nd_Stop()</a></li>
<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e" title="Initializes all nodes.">Ucs_Nd_InitAll()</a></li>
<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start()</a></li>
<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable()</a></li>
</ul>
<p>The following callback functions will not work if the Manager is enabled:</p>
<ul>
<li><a class="el" href="struct_ucs___nd___init_data__t.html">init_data.nd.eval_fptr</a></li>
<li><a class="el" href="struct_ucs___nd___init_data__t.html">init_data.nd.report_fptr</a></li>
</ul>
<table  class="mns_ic_table">
<tr>
<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, section <a class="el" href="group___g___u_c_s___m_g_r.html">Manager</a>. </td></tr>
</table>
<h1>Declaration of Nodes and Routes</h1>
<p>The application must define a set of structures that are required as input for the Manager. Basically the application must provide a list of nodes and a list of routes.</p>
<dl class="section note"><dt>Note</dt><dd>It is important that each node in the "list of nodes" has a valid pointer to a node signature. Within the node signature the <code>node_address</code> attribute must be set to the value as set in the "identification string" of the respective node (INIC). Each node must be configured with a unique <code>node_address</code>. Other values inside the identification string are not evaluated by the Manager.</dd></dl>
<p>The code below shows a setup of two nodes and one route for synchronous streaming. Since the route is initialized as "active" it is automatically created as soon as both nodes are available. The application does not need to activate this route at a certain time.</p>
<div class="fragment"><div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
<div class="line"><span class="comment">/* Nodes                                                                                          */</span></div>
<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
<div class="line"><span class="preprocessor">#define APP_NODES_NUM 2U</span></div>
<div class="line"><span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> signature201  = {0x201U <span class="comment">/*node_address*/</span>}; </div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> signature205 = {0x205U <span class="comment">/*node_address*/</span>};</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> app_nodes[APP_NODES_NUM] = {{&amp;signature201, NULL, 0U}, {&amp;signature205, NULL, 0U}};</div>
<div class="line"></div>
<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
<div class="line"><span class="comment">/* Routes                                                                                         */</span></div>
<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
<div class="line"><span class="comment">/* Specification of XRM JOB OUT */</span></div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___most_socket__t.html" title="Configuration structure of a MOST socket.">Ucs_Xrm_MostSocket_t</a>         Xrm_Most_Sckt_Out = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c" title="MOST socket.">UCS_XRM_RC_TYPE_MOST_SOCKET</a>, 0x0D00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe" title="Socket transfers data out of INIC.">UCS_SOCKET_DIR_OUTPUT</a>, </div>
<div class="line">                                                         <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f" title="Specifies the synchronous streaming data type.">UCS_MOST_SCKT_SYNC_DATA</a>, 2U };</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___default_created_port__t.html" title="Configuration structure of a default created port. This structure is used for ports that are configur...">Ucs_Xrm_DefaultCreatedPort_t</a> Xrm_Usb_Port_1    = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1" title="Default created port.">UCS_XRM_RC_TYPE_DC_PORT</a>, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3" title="USB Port.">UCS_XRM_PORT_TYPE_USB</a>, 0U};</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___usb_socket__t.html" title="Configuration structure of a USB socket.">Ucs_Xrm_UsbSocket_t</a>          Xrm_Usb_Socket_In = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11" title="USB socket.">UCS_XRM_RC_TYPE_USB_SOCKET</a>, &amp;Xrm_Usb_Port_1, </div>
<div class="line">                                                         <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7" title="Socket transfers data into INIC.">UCS_SOCKET_DIR_INPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf" title="Specifies the synchronous streaming data type.">UCS_USB_SCKT_SYNC_DATA</a> , </div>
<div class="line">                                                         0x01U<span class="comment">/*endpoint*/</span>, 0x0007U <span class="comment">/*frames*/</span> };</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___sync_con__t.html" title="Configuration structure of a synchronous data connection.">Ucs_Xrm_SyncCon_t</a>            Xrm_Sync_Conn_Src = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265" title="Synchronous data connection.">UCS_XRM_RC_TYPE_SYNC_CON</a>, &amp;Xrm_Usb_Socket_In, </div>
<div class="line">                                                         &amp;Xrm_Most_Sckt_Out, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772" title="No mute monitoring.">UCS_SYNC_MUTE_MODE_NO_MUTING</a>, 0U };</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Specification of XRM JOB IN */</span></div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___most_socket__t.html" title="Configuration structure of a MOST socket.">Ucs_Xrm_MostSocket_t</a>         Xrm_Most_Sckt_In  = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c" title="MOST socket.">UCS_XRM_RC_TYPE_MOST_SOCKET</a>, 0x0D00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7" title="Socket transfers data into INIC.">UCS_SOCKET_DIR_INPUT</a>,</div>
<div class="line">                                                          <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f" title="Specifies the synchronous streaming data type.">UCS_MOST_SCKT_SYNC_DATA</a>, 2U };</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___default_created_port__t.html" title="Configuration structure of a default created port. This structure is used for ports that are configur...">Ucs_Xrm_DefaultCreatedPort_t</a> Xrm_Usb_Port_2    = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1" title="Default created port.">UCS_XRM_RC_TYPE_DC_PORT</a>, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3" title="USB Port.">UCS_XRM_PORT_TYPE_USB</a>, 0U};</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___usb_socket__t.html" title="Configuration structure of a USB socket.">Ucs_Xrm_UsbSocket_t</a>         Xrm_Usb_Socket_Out = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11" title="USB socket.">UCS_XRM_RC_TYPE_USB_SOCKET</a>, &amp;Xrm_Usb_Port_2, </div>
<div class="line">                                                         <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe" title="Socket transfers data out of INIC.">UCS_SOCKET_DIR_OUTPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf" title="Specifies the synchronous streaming data type.">UCS_USB_SCKT_SYNC_DATA</a> ,</div>
<div class="line">                                                         0x81U<span class="comment">/*endpoint*/</span>, 0x0007U <span class="comment">/*frames*/</span> };</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___sync_con__t.html" title="Configuration structure of a synchronous data connection.">Ucs_Xrm_SyncCon_t</a>           Xrm_Sync_Conn_Sink = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265" title="Synchronous data connection.">UCS_XRM_RC_TYPE_SYNC_CON</a>, &amp;Xrm_Most_Sckt_In, </div>
<div class="line">                                                         &amp;Xrm_Usb_Socket_Out, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772" title="No mute monitoring.">UCS_SYNC_MUTE_MODE_NO_MUTING</a>, 0U };</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Specification of the XRM jobs lists */</span></div>
<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_out[] = { &amp;Xrm_Most_Sckt_Out, &amp;Xrm_Usb_Port_1, &amp;Xrm_Usb_Socket_In,  </div>
<div class="line">                                               &amp;Xrm_Sync_Conn_Src, NULL };</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_in [] = { &amp;Xrm_Most_Sckt_In,  &amp;Xrm_Usb_Port_2, &amp;Xrm_Usb_Socket_Out, </div>
<div class="line">                                               &amp;Xrm_Sync_Conn_Sink, NULL };</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Source and Sink Endpoints */</span></div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_src   = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da" title="Specifies the source endpoint.">UCS_RM_EP_SOURCE</a>, &amp;xrm_job_out[0], &amp;app_nodes[0] };</div>
<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink  = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>,   &amp;xrm_job_in[0],  &amp;app_nodes[1] };</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Routes Specification */</span></div>
<div class="line"><span class="preprocessor">#define APP_ROUTES_NUM          1U</span></div>
<div class="line"><span class="preprocessor">static Ucs_Rm_Route_t app_routes[APP_ROUTES_NUM]  = { {&amp;endpoint_src, &amp;endpoint_sink, true </span><span class="comment">/*is_active*/</span><span class="preprocessor">, 66U} };</span></div>
</div><!-- fragment --><h1>Initialization</h1>
<p>The code below shows a possible initialization sequence of the Application Message Service.</p>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_Initialize(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
<div class="line">    <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;init_data);</div>
<div class="line"></div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d" title="If set to false the application must handle network startup, node discovery and rooting by hand...">enabled</a> = <span class="keyword">true</span>;</div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818" title="Optional callback function notifying node events.">report_fptr</a> = &amp;App_OnMgrReport;</div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2" title="The desired packet bandwidth.">packet_bw</a> = 52U;</div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c" title="Reference to the list of nodes.">nodes_list_ptr</a> = &amp;app_nodes[0];</div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114" title="Number of nodes in the list.">nodes_list_size</a> = APP_NODES_NUM;</div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030" title="Reference to a list of routes.">routes_list_ptr</a> = &amp;app_routes[0];</div>
<div class="line">    init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369" title="Number of routes in the list.">routes_list_size</a> = APP_ROUTES_NUM;</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* ... further initialization ... */</span></div>
<div class="line"></div>
<div class="line">    <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(&amp;init_data, &amp;App_OnInitResult);</div>
<div class="line">}</div>
</div><!-- fragment --><table  class="mns_ic_table">
<tr>
<td id="mns_ic_started">&#160;</td><td>See also <em>Getting Started</em>, section <a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a>. </td></tr>
</table>
<h1>Status Reports</h1>
<p>If the application logic requires information about the availability of nodes, it is possible to register an optional callback function <a class="el" href="group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6">mgr.report_fptr</a>. See also the initialization code above. The following code shows an implementation of this function. </p>
<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnMgrReport(<a class="code" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445" title="Manager report codes.">Ucs_MgrReport_t</a> code, uint16_t node_address, <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> *node_ptr, <span class="keywordtype">void</span> *user_ptr)</div>
<div class="line">{</div>
<div class="line">    (void)printf(<span class="stringliteral">&quot;App_OnMgrReport(): code=%d, node_addr=0x%04X, node_ptr=%p\n&quot;</span>, code, node_address, node_ptr);</div>
<div class="line">}</div>
</div><!-- fragment --> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
  </ul>
</div>
</body>
<!--
Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
Doxygen 1.8.2
-->
<script language="javascript">
<!--
$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
-->
</script>
</html>