doc/doxygen/html/data_8h-source.html
author etisserant
Mon, 02 Jul 2007 18:22:58 +0200
changeset 236 905677ed00f3
parent 215 f49e5a6b7804
child 240 34654679f262
permissions -rw-r--r--
Full preliminary implementation of TPDO transmit type:
- SYNC (N) (1-240)
- RTR only + SYNC (252)
- RTR only (253)
- EVENT, with timer and inhibit time (254 and 255)

User app have to call sendPDOevent(d) to eventually signal mapped data changes.
Callbacks added to 0x140N, TPDO comm parameters for on the fly timers values change.
TestMasterSlave updated.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>CanFestival: include/data.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_2209bfb26110ae52d50da4cefad5e72f.html">include</a></div>
<h1>data.h</h1><a href="data_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">This file is part of CanFestival, a library implementing CanOpen Stack. </span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">See COPYING file for copyrights details.</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">This library is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment">modify it under the terms of the GNU Lesser General Public</span>
<a name="l00010"></a>00010 <span class="comment">License as published by the Free Software Foundation; either</span>
<a name="l00011"></a>00011 <span class="comment">version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">This library is distributed in the hope that it will be useful,</span>
<a name="l00014"></a>00014 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00015"></a>00015 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00016"></a>00016 <span class="comment">Lesser General Public License for more details.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">You should have received a copy of the GNU Lesser General Public</span>
<a name="l00019"></a>00019 <span class="comment">License along with this library; if not, write to the Free Software</span>
<a name="l00020"></a>00020 <span class="comment">Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="l00021"></a>00021 <span class="comment">*/</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#ifndef __data_h__</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define __data_h__</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="comment">/* declaration of CO_Data type let us include all necessary headers</span>
<a name="l00028"></a>00028 <span class="comment"> struct struct_CO_Data can then be defined later</span>
<a name="l00029"></a>00029 <span class="comment"> */</span>
<a name="l00030"></a><a class="code" href="data_8h.html#b5cf1318d7813273cd91a7af56f62142">00030</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structstruct__CO__Data.html">struct_CO_Data</a> <a class="code" href="data_8h.html#b5cf1318d7813273cd91a7af56f62142">CO_Data</a>;
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="win32_2applicfg_8h.html">applicfg.h</a>"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="def_8h.html">def.h</a>"</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="can_8h.html">can.h</a>"</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="objdictdef_8h.html">objdictdef.h</a>"</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="objacces_8h.html">objacces.h</a>"</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="sdo_8h.html">sdo.h</a>"</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="pdo_8h.html">pdo.h</a>"</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="states_8h.html">states.h</a>"</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="lifegrd_8h.html">lifegrd.h</a>"</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="sync_8h.html">sync.h</a>"</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="nmtMaster_8h.html">nmtMaster.h</a>"</span>
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="comment">/* This structurs contains all necessary information for a CanOpen node */</span>
<a name="l00045"></a><a class="code" href="structstruct__CO__Data.html">00045</a> <span class="keyword">struct </span><a class="code" href="structstruct__CO__Data.html">struct_CO_Data</a> {
<a name="l00046"></a>00046         <span class="comment">/* Object dictionary */</span>
<a name="l00047"></a><a class="code" href="structstruct__CO__Data.html#e5c35e97a1061bb9737359cc12192269">00047</a>         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *<a class="code" href="structstruct__CO__Data.html#e5c35e97a1061bb9737359cc12192269">bDeviceNodeId</a>;
<a name="l00048"></a><a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">00048</a>         <span class="keyword">const</span> <a class="code" href="structtd__indextable.html">indextable</a> *<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>;
<a name="l00049"></a><a class="code" href="structstruct__CO__Data.html#83ae82d4401e78e3fd3a1ed5d457ade7">00049</a>         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *<a class="code" href="structstruct__CO__Data.html#83ae82d4401e78e3fd3a1ed5d457ade7">count_sync</a>;
<a name="l00050"></a><a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">00050</a>         <a class="code" href="structs__quick__index.html">quick_index</a> *<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>;
<a name="l00051"></a><a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">00051</a>         <a class="code" href="structs__quick__index.html">quick_index</a> *<a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">lastIndex</a>;
<a name="l00052"></a><a class="code" href="structstruct__CO__Data.html#6c3f14328d7662f0adc1da9964327a2e">00052</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> *<a class="code" href="structstruct__CO__Data.html#6c3f14328d7662f0adc1da9964327a2e">ObjdictSize</a>;
<a name="l00053"></a><a class="code" href="structstruct__CO__Data.html#cfe2baf2887f190ca8deebaf462e62fe">00053</a>         <span class="keyword">const</span> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *<a class="code" href="structstruct__CO__Data.html#cfe2baf2887f190ca8deebaf462e62fe">iam_a_slave</a>;
<a name="l00054"></a><a class="code" href="structstruct__CO__Data.html#a8e71f9e9e67d0a594bad7dbbe99a35a">00054</a>         <a class="code" href="objacces_8h.html#270e94e9acf61da8b2f36b3ebdbf2fdd">valueRangeTest_t</a> <a class="code" href="structstruct__CO__Data.html#a8e71f9e9e67d0a594bad7dbbe99a35a">valueRangeTest</a>;
<a name="l00055"></a>00055         
<a name="l00056"></a>00056         <span class="comment">/* SDO */</span>
<a name="l00057"></a><a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">00057</a>         <a class="code" href="structstruct__s__transfer.html">s_transfer</a> <a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<a class="code" href="config_8h.html#b410d06e4fefdbea0d0093a489f54786">SDO_MAX_SIMULTANEOUS_TRANSFERTS</a>];
<a name="l00058"></a>00058         <span class="comment">/* s_sdo_parameter *sdo_parameters; */</span>
<a name="l00059"></a>00059 
<a name="l00060"></a>00060         <span class="comment">/* State machine */</span>
<a name="l00061"></a><a class="code" href="structstruct__CO__Data.html#a03a5121facf5b21d541f8566a8345d6">00061</a>         <a class="code" href="states_8h.html#5891f63a4c9243179838389a93d084e2">e_nodeState</a> <a class="code" href="structstruct__CO__Data.html#a03a5121facf5b21d541f8566a8345d6">nodeState</a>;
<a name="l00062"></a><a class="code" href="structstruct__CO__Data.html#ab01aa22a1af1044224220cd45e5796d">00062</a>         <a class="code" href="structs__state__communication.html">s_state_communication</a> <a class="code" href="structstruct__CO__Data.html#ab01aa22a1af1044224220cd45e5796d">CurrentCommunicationState</a>;
<a name="l00063"></a><a class="code" href="structstruct__CO__Data.html#b45e9ca46cffe7924c35ae136db6a2b6">00063</a>         <a class="code" href="states_8h.html#d0cd6d1eb89085da7cb9f32ce386e8bc">initialisation_t</a> <a class="code" href="structstruct__CO__Data.html#b45e9ca46cffe7924c35ae136db6a2b6">initialisation</a>;
<a name="l00064"></a><a class="code" href="structstruct__CO__Data.html#d7c66fb721e3f6279a6ff03bf91d82e2">00064</a>         <a class="code" href="states_8h.html#f4a6da4fe018afbe20eaf716c248e02a">preOperational_t</a> <a class="code" href="structstruct__CO__Data.html#d7c66fb721e3f6279a6ff03bf91d82e2">preOperational</a>;
<a name="l00065"></a><a class="code" href="structstruct__CO__Data.html#432ddce132ec2f7473064e4fa8ef3f9a">00065</a>         <a class="code" href="states_8h.html#8aed99e590473f26db47a9c2dc5b73fc">operational_t</a> <a class="code" href="structstruct__CO__Data.html#432ddce132ec2f7473064e4fa8ef3f9a">operational</a>;
<a name="l00066"></a><a class="code" href="structstruct__CO__Data.html#89dd7dd17f9dd16b7a06c3cf30c2ca02">00066</a>         <a class="code" href="states_8h.html#c99397ce6341b6b5128104aee4c27ec5">stopped_t</a> <a class="code" href="structstruct__CO__Data.html#89dd7dd17f9dd16b7a06c3cf30c2ca02">stopped</a>;
<a name="l00067"></a>00067 
<a name="l00068"></a>00068         <span class="comment">/* NMT-heartbeat */</span>
<a name="l00069"></a><a class="code" href="structstruct__CO__Data.html#51a0927cdf730eca5661d2d1a26b9e43">00069</a>         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *<a class="code" href="structstruct__CO__Data.html#51a0927cdf730eca5661d2d1a26b9e43">ConsumerHeartbeatCount</a>;
<a name="l00070"></a><a class="code" href="structstruct__CO__Data.html#928052654c25135aab556909845fa8ea">00070</a>         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> *<a class="code" href="structstruct__CO__Data.html#928052654c25135aab556909845fa8ea">ConsumerHeartbeatEntries</a>;
<a name="l00071"></a><a class="code" href="structstruct__CO__Data.html#e0b1fd1bec517c2bc12c5a4fd72adca6">00071</a>         <a class="code" href="timer_8h.html#146f546340de2a44ab2f63681d40de95">TIMER_HANDLE</a> *<a class="code" href="structstruct__CO__Data.html#e0b1fd1bec517c2bc12c5a4fd72adca6">ConsumerHeartBeatTimers</a>;
<a name="l00072"></a><a class="code" href="structstruct__CO__Data.html#61d5500b982867b523baf6668a2c377d">00072</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> *<a class="code" href="structstruct__CO__Data.html#61d5500b982867b523baf6668a2c377d">ProducerHeartBeatTime</a>;
<a name="l00073"></a><a class="code" href="structstruct__CO__Data.html#914dd3ff14e15217fe67c0804200a200">00073</a>         <a class="code" href="timer_8h.html#146f546340de2a44ab2f63681d40de95">TIMER_HANDLE</a> <a class="code" href="structstruct__CO__Data.html#914dd3ff14e15217fe67c0804200a200">ProducerHeartBeatTimer</a>;
<a name="l00074"></a><a class="code" href="structstruct__CO__Data.html#2ec2bc87656945d2c7dda7ebe662b245">00074</a>         <a class="code" href="lifegrd_8h.html#eca3959d33fceb33487363a0493d3b7d">heartbeatError_t</a> <a class="code" href="structstruct__CO__Data.html#2ec2bc87656945d2c7dda7ebe662b245">heartbeatError</a>;
<a name="l00075"></a><a class="code" href="structstruct__CO__Data.html#40414cf320a3c3d6236790bd10b4301a">00075</a>         <a class="code" href="states_8h.html#5891f63a4c9243179838389a93d084e2">e_nodeState</a> <a class="code" href="structstruct__CO__Data.html#40414cf320a3c3d6236790bd10b4301a">NMTable</a>[<a class="code" href="config_8h.html#89f774dfdb67cc1f78c7e7d457a16fdc">NMT_MAX_NODE_ID</a>]; 
<a name="l00076"></a>00076 
<a name="l00077"></a>00077         <span class="comment">/* SYNC */</span>
<a name="l00078"></a><a class="code" href="structstruct__CO__Data.html#b8e7a429eb6e0bca2429685725516fe8">00078</a>         <a class="code" href="timer_8h.html#146f546340de2a44ab2f63681d40de95">TIMER_HANDLE</a> <a class="code" href="structstruct__CO__Data.html#b8e7a429eb6e0bca2429685725516fe8">syncTimer</a>;
<a name="l00079"></a><a class="code" href="structstruct__CO__Data.html#eb1479220ec68407a35635bfbffa3386">00079</a>         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> *<a class="code" href="structstruct__CO__Data.html#eb1479220ec68407a35635bfbffa3386">COB_ID_Sync</a>;
<a name="l00080"></a><a class="code" href="structstruct__CO__Data.html#2dddbef6ce165dca7ff916e2e1409142">00080</a>         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> *<a class="code" href="structstruct__CO__Data.html#2dddbef6ce165dca7ff916e2e1409142">Sync_Cycle_Period</a>;
<a name="l00081"></a>00081         <span class="comment">/*UNS32 *Sync_window_length;;*/</span>
<a name="l00082"></a><a class="code" href="structstruct__CO__Data.html#7eeaefe180dfceca6e829a0a8018f342">00082</a>         <a class="code" href="sync_8h.html#8a0b5b8c19b375ef1c985caa120f3274">post_sync_t</a> <a class="code" href="structstruct__CO__Data.html#7eeaefe180dfceca6e829a0a8018f342">post_sync</a>;
<a name="l00083"></a><a class="code" href="structstruct__CO__Data.html#0cf540e2e36e14c04e1c783dc88d9a0e">00083</a>         <a class="code" href="sync_8h.html#b9bc4632750ad12f918aa22a1eb7756b">post_TPDO_t</a> <a class="code" href="structstruct__CO__Data.html#0cf540e2e36e14c04e1c783dc88d9a0e">post_TPDO</a>;
<a name="l00084"></a>00084         
<a name="l00085"></a>00085         <span class="comment">/* PDO */</span>
<a name="l00086"></a><a class="code" href="structstruct__CO__Data.html#26f4d508a9e409f2ace9c8c55d92d826">00086</a>         <a class="code" href="structstruct__s__process__var.html">s_process_var</a> <a class="code" href="structstruct__CO__Data.html#26f4d508a9e409f2ace9c8c55d92d826">process_var</a>;
<a name="l00087"></a>00087         
<a name="l00088"></a>00088         <span class="comment">/* General */</span>
<a name="l00089"></a><a class="code" href="structstruct__CO__Data.html#01f012ef56b614a9519530433b01054f">00089</a>         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="structstruct__CO__Data.html#01f012ef56b614a9519530433b01054f">toggle</a>;
<a name="l00090"></a><a class="code" href="structstruct__CO__Data.html#c960c3c56e8389105c2853cfb393de0c">00090</a>         <a class="code" href="unix_2applicfg_8h.html#712c7b28987b12b8d400df19c92d0f5e">CAN_HANDLE</a> <a class="code" href="structstruct__CO__Data.html#c960c3c56e8389105c2853cfb393de0c">canHandle</a>;   
<a name="l00091"></a><a class="code" href="structstruct__CO__Data.html#1863bd74fef91ec89b4c1ff0bee2dfbf">00091</a>         <a class="code" href="objdictdef_8h.html#a844575e4d9c9870137121bf0fb241fb">scanIndexOD_t</a> <a class="code" href="structstruct__CO__Data.html#1863bd74fef91ec89b4c1ff0bee2dfbf">scanIndexOD</a>;
<a name="l00092"></a><a class="code" href="structstruct__CO__Data.html#d6cd6ffa658b1ed35d887b6bacb990cf">00092</a>         <a class="code" href="objacces_8h.html#7b55b55a3f5ed8e4b2991cb85c7be7ce">storeODSubIndex_t</a> <a class="code" href="structstruct__CO__Data.html#d6cd6ffa658b1ed35d887b6bacb990cf">storeODSubIndex</a>; 
<a name="l00093"></a>00093         
<a name="l00094"></a>00094         <span class="comment">/* DCF concise */</span>
<a name="l00095"></a><a class="code" href="structstruct__CO__Data.html#de0a65bcf0cb16fd4dafe4d866655aab">00095</a>         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>* <a class="code" href="structstruct__CO__Data.html#de0a65bcf0cb16fd4dafe4d866655aab">dcf_cursor</a>;
<a name="l00096"></a><a class="code" href="structstruct__CO__Data.html#0a588710c53092b75cfe284ca7d9ccff">00096</a>         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="structstruct__CO__Data.html#0a588710c53092b75cfe284ca7d9ccff">dcf_count_targets</a>;
<a name="l00097"></a>00097         
<a name="l00098"></a>00098 };
<a name="l00099"></a>00099 
<a name="l00100"></a>00100 <span class="preprocessor">#define NMTable_Initializer Unknown_state,</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span>
<a name="l00102"></a>00102 <span class="preprocessor">#define s_transfer_Initializer {\</span>
<a name="l00103"></a>00103 <span class="preprocessor">                0,          </span><span class="comment">/* nodeId */</span>\
<a name="l00104"></a>00104                 0,          <span class="comment">/* wohami */</span>\
<a name="l00105"></a>00105                 SDO_RESET,  <span class="comment">/* state */</span>\
<a name="l00106"></a>00106                 0,          <span class="comment">/* toggle */</span>\
<a name="l00107"></a>00107                 0,          <span class="comment">/* abortCode */</span>\
<a name="l00108"></a>00108                 0,          <span class="comment">/* index */</span>\
<a name="l00109"></a>00109                 0,          <span class="comment">/* subIndex */</span>\
<a name="l00110"></a>00110                 0,          <span class="comment">/* count */</span>\
<a name="l00111"></a>00111                 0,          <span class="comment">/* offset */</span>\
<a name="l00112"></a>00112                 {0},        <span class="comment">/* data (static use, so that all the table is initialize at 0)*/</span>\
<a name="l00113"></a>00113                 0,          <span class="comment">/* dataType */</span>\
<a name="l00114"></a>00114                 -1,         <span class="comment">/* timer */</span>\
<a name="l00115"></a>00115                 NULL        <span class="comment">/* Callback */</span>\
<a name="l00116"></a>00116           },
<a name="l00117"></a>00117 
<a name="l00118"></a>00118 <span class="comment">/* A macro to initialize the data in client app.*/</span>
<a name="l00119"></a>00119 <span class="comment">/* CO_Data structure */</span>
<a name="l00120"></a>00120 <span class="preprocessor">#define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\</span>
<a name="l00121"></a>00121 <span class="preprocessor">        </span><span class="comment">/* Object dictionary*/</span>\
<a name="l00122"></a>00122         &amp; NODE_PREFIX ## _bDeviceNodeId,     <span class="comment">/* bDeviceNodeId */</span>\
<a name="l00123"></a>00123         NODE_PREFIX ## _objdict,             <span class="comment">/* objdict  */</span>\
<a name="l00124"></a>00124         NODE_PREFIX ## _count_sync,          <span class="comment">/* count_sync */</span>\
<a name="l00125"></a>00125         &amp; NODE_PREFIX ## _firstIndex,        <span class="comment">/* firstIndex */</span>\
<a name="l00126"></a>00126         &amp; NODE_PREFIX ## _lastIndex,         <span class="comment">/* lastIndex */</span>\
<a name="l00127"></a>00127         &amp; NODE_PREFIX ## _ObjdictSize,       <span class="comment">/* ObjdictSize */</span>\
<a name="l00128"></a>00128         &amp; NODE_PREFIX ## _iam_a_slave,       <span class="comment">/* iam_a_slave */</span>\
<a name="l00129"></a>00129         NODE_PREFIX ## _valueRangeTest,      <span class="comment">/* valueRangeTest */</span>\
<a name="l00130"></a>00130         \
<a name="l00131"></a>00131         <span class="comment">/* SDO, structure s_transfer */</span>\
<a name="l00132"></a>00132         {\
<a name="l00133"></a>00133           REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(s_transfer_Initializer)\
<a name="l00134"></a>00134         },\
<a name="l00135"></a>00135         \
<a name="l00136"></a>00136         <span class="comment">/* State machine*/</span>\
<a name="l00137"></a>00137         Unknown_state,      <span class="comment">/* nodeState */</span>\
<a name="l00138"></a>00138         <span class="comment">/* structure s_state_communication */</span>\
<a name="l00139"></a>00139         {\
<a name="l00140"></a>00140                 0,          <span class="comment">/* csBoot_Up */</span>\
<a name="l00141"></a>00141                 0,          <span class="comment">/* csSDO */</span>\
<a name="l00142"></a>00142                 0,          <span class="comment">/* csEmergency */</span>\
<a name="l00143"></a>00143                 0,          <span class="comment">/* csSYNC */</span>\
<a name="l00144"></a>00144                 0,          <span class="comment">/* csHeartbeat */</span>\
<a name="l00145"></a>00145                 0           <span class="comment">/* csPDO */</span>\
<a name="l00146"></a>00146         },\
<a name="l00147"></a>00147         _initialisation,     <span class="comment">/* initialisation */</span>\
<a name="l00148"></a>00148         _preOperational,     <span class="comment">/* preOperational */</span>\
<a name="l00149"></a>00149         _operational,        <span class="comment">/* operational */</span>\
<a name="l00150"></a>00150         _stopped,            <span class="comment">/* stopped */</span>\
<a name="l00151"></a>00151         \
<a name="l00152"></a>00152         <span class="comment">/* NMT-heartbeat */</span>\
<a name="l00153"></a>00153         &amp; NODE_PREFIX ## _highestSubIndex_obj1016, <span class="comment">/* ConsumerHeartbeatCount */</span>\
<a name="l00154"></a>00154         NODE_PREFIX ## _obj1016,                   <span class="comment">/* ConsumerHeartbeatEntries */</span>\
<a name="l00155"></a>00155         NODE_PREFIX ## _heartBeatTimers,           <span class="comment">/* ConsumerHeartBeatTimers  */</span>\
<a name="l00156"></a>00156         &amp; NODE_PREFIX ## _obj1017,                 <span class="comment">/* ProducerHeartBeatTime */</span>\
<a name="l00157"></a>00157         TIMER_NONE,                                <span class="comment">/* ProducerHeartBeatTimer */</span>\
<a name="l00158"></a>00158         _heartbeatError,           <span class="comment">/* heartbeatError */</span>\
<a name="l00159"></a>00159         \
<a name="l00160"></a>00160         {REPEAT_NMT_MAX_NODE_ID_TIMES(NMTable_Initializer)},\
<a name="l00161"></a>00161                                                    <span class="comment">/* is  well initialized at "Unknown_state". Is it ok ? (FD)*/</span>\
<a name="l00162"></a>00162         \
<a name="l00163"></a>00163         <span class="comment">/* SYNC */</span>\
<a name="l00164"></a>00164         TIMER_NONE,                                <span class="comment">/* syncTimer */</span>\
<a name="l00165"></a>00165         &amp; NODE_PREFIX ## _obj1005,                 <span class="comment">/* COB_ID_Sync */</span>\
<a name="l00166"></a>00166         &amp; NODE_PREFIX ## _obj1006,                 <span class="comment">/* Sync_Cycle_Period */</span>\
<a name="l00167"></a>00167         <span class="comment">/*&amp; NODE_PREFIX ## _obj1007, */</span>            <span class="comment">/* Sync_window_length */</span>\
<a name="l00168"></a>00168         _post_sync,                 <span class="comment">/* post_sync */</span>\
<a name="l00169"></a>00169         _post_TPDO,                 <span class="comment">/* post_TPDO */</span>\
<a name="l00170"></a>00170         \
<a name="l00171"></a>00171         <span class="comment">/* PDO, structure s_process_var */</span>\
<a name="l00172"></a>00172         {\
<a name="l00173"></a>00173                 0,          <span class="comment">/* count */</span>\
<a name="l00174"></a>00174                 {0}         <span class="comment">/* data (static use, so that all the table is initialize at 0)*/</span>\
<a name="l00175"></a>00175         },\
<a name="l00176"></a>00176         \
<a name="l00177"></a>00177         <span class="comment">/* General */</span>\
<a name="l00178"></a>00178         0,                                         <span class="comment">/* toggle */</span>\
<a name="l00179"></a>00179         NULL,                   <span class="comment">/* canSend */</span>\
<a name="l00180"></a>00180         NODE_PREFIX ## _scanIndexOD,                <span class="comment">/* scanIndexOD */</span>\
<a name="l00181"></a>00181         _storeODSubIndex,                <span class="comment">/* storeODSubIndex */</span>\
<a name="l00182"></a>00182         NULL,           <span class="comment">/*dcf_cursor*/</span>\
<a name="l00183"></a>00183         1               <span class="comment">/*dcf_count_targets*/</span>\
<a name="l00184"></a>00184 }
<a name="l00185"></a>00185 
<a name="l00186"></a>00186 <span class="preprocessor">#endif </span><span class="comment">/* __data_h__ */</span>
<a name="l00187"></a>00187 
<a name="l00188"></a>00188 
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:39 2007 for CanFestival by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>