doc/doxygen/html/sdo_8c-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.
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
     3
<title>CanFestival: src/sdo.c Source File</title>
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     4
<link href="doxygen.css" rel="stylesheet" type="text/css">
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     5
<link href="tabs.css" rel="stylesheet" type="text/css">
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     6
</head><body>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     7
<!-- Generated by Doxygen 1.5.1 -->
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     8
<div class="tabs">
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
     9
  <ul>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    10
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    11
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    12
    <li id="current"><a href="files.html"><span>Files</span></a></li>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    13
    <li><a href="dirs.html"><span>Directories</span></a></li>
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    14
  </ul></div>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    15
<div class="tabs">
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    16
  <ul>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    17
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    18
    <li><a href="globals.html"><span>Globals</span></a></li>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    19
  </ul></div>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    20
<div class="nav">
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    21
<a class="el" href="dir_c0a169d39c08973f879fd54f07b9e9f7.html">src</a></div>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    22
<h1>sdo.c</h1><a href="sdo_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    23
<a name="l00002"></a>00002 <span class="comment">This file is part of CanFestival, a library implementing CanOpen Stack. </span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    24
<a name="l00003"></a>00003 <span class="comment"></span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    25
<a name="l00004"></a>00004 <span class="comment">Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    26
<a name="l00005"></a>00005 <span class="comment"></span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    27
<a name="l00006"></a>00006 <span class="comment">See COPYING file for copyrights details.</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    28
<a name="l00007"></a>00007 <span class="comment"></span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    29
<a name="l00008"></a>00008 <span class="comment">This library is free software; you can redistribute it and/or</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    30
<a name="l00009"></a>00009 <span class="comment">modify it under the terms of the GNU Lesser General Public</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    31
<a name="l00010"></a>00010 <span class="comment">License as published by the Free Software Foundation; either</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    32
<a name="l00011"></a>00011 <span class="comment">version 2.1 of the License, or (at your option) any later version.</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    33
<a name="l00012"></a>00012 <span class="comment"></span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    34
<a name="l00013"></a>00013 <span class="comment">This library is distributed in the hope that it will be useful,</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    35
<a name="l00014"></a>00014 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    36
<a name="l00015"></a>00015 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    37
<a name="l00016"></a>00016 <span class="comment">Lesser General Public License for more details.</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    38
<a name="l00017"></a>00017 <span class="comment"></span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    39
<a name="l00018"></a>00018 <span class="comment">You should have received a copy of the GNU Lesser General Public</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    40
<a name="l00019"></a>00019 <span class="comment">License along with this library; if not, write to the Free Software</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    41
<a name="l00020"></a>00020 <span class="comment">Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    42
<a name="l00021"></a>00021 <span class="comment">*/</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    43
<a name="l00032"></a>00032 <span class="comment">/* #define DEBUG_WAR_CONSOLE_ON */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    44
<a name="l00033"></a>00033 <span class="comment">/* #define DEBUG_ERR_CONSOLE_ON */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    45
<a name="l00034"></a>00034 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    46
<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="objacces_8h.html">objacces.h</a>"</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    47
<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="sdo_8h.html">sdo.h</a>"</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    48
<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="win32_2canfestival_8h.html">canfestival.h</a>"</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    49
<a name="l00038"></a>00038 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    50
<a name="l00039"></a>00039 <span class="comment">/* Uncomment if your compiler does not support inline functions */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    51
<a name="l00040"></a><a class="code" href="sdo_8c.html#b5ce7bd7fe4169a9f709815f03f9870b">00040</a> <span class="preprocessor">#define NO_INLINE </span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    52
<a name="l00041"></a>00041 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    53
<a name="l00042"></a>00042 <span class="preprocessor">#ifdef NO_INLINE</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    54
<a name="l00043"></a><a class="code" href="sdo_8c.html#2eb6f9e0395b47b8d5e3eeae4fe0c116">00043</a> <span class="preprocessor"></span><span class="preprocessor">  #define INLINE </span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    55
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#else</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    56
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">  #define INLINE inline</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    57
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    58
<a name="l00047"></a>00047 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    59
<a name="l00048"></a>00048 <span class="comment">/*Internals prototypes*/</span>
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
    60
<a name="l00049"></a>00049 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    61
<a name="l00065"></a>00065 <a class="code" href="sdo_8c.html#2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a">_writeNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    62
<a name="l00066"></a>00066                        <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> count, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <span class="keywordtype">void</span> *data, <a class="code" href="sdo_8h.html#606eccfef67e572723e1efba3f0d87ba">SDOCallback_t</a> Callback, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> endianize);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    63
<a name="l00067"></a>00067 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    64
<a name="l00080"></a>00080 <a class="code" href="sdo_8c.html#2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270">_readNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    65
<a name="l00081"></a>00081         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <a class="code" href="sdo_8h.html#606eccfef67e572723e1efba3f0d87ba">SDOCallback_t</a> Callback);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    66
<a name="l00082"></a>00082         
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    67
<a name="l00083"></a>00083 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    68
<a name="l00084"></a>00084 <span class="comment">/***************************************************************************/</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    69
<a name="l00085"></a>00085 <span class="comment">/* SDO (un)packing macros */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    70
<a name="l00086"></a>00086 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    71
<a name="l00089"></a><a class="code" href="sdo_8c.html#ce5a1634ff4089db3b228cdd5010c321">00089</a> <span class="preprocessor">#define getSDOcs(byte) (byte &gt;&gt; 5)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    72
<a name="l00090"></a>00090 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    73
<a name="l00093"></a><a class="code" href="sdo_8c.html#dfd3877d80f6b903b491a115e587bd14">00093</a> <span class="preprocessor">#define getSDOn2(byte) ((byte &gt;&gt; 2) &amp; 3)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    74
<a name="l00094"></a>00094 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    75
<a name="l00097"></a><a class="code" href="sdo_8c.html#e5677ca12bfb71b06cbd6e99e9be0955">00097</a> <span class="preprocessor">#define getSDOn3(byte) ((byte &gt;&gt; 1) &amp; 7)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    76
<a name="l00098"></a>00098 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    77
<a name="l00101"></a><a class="code" href="sdo_8c.html#cf60675f20de8746e279dce3a5c8e3c6">00101</a> <span class="preprocessor">#define getSDOe(byte) ((byte &gt;&gt; 1) &amp; 1)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    78
<a name="l00102"></a>00102 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    79
<a name="l00105"></a><a class="code" href="sdo_8c.html#f7f9e9bc3d59c9772d4c767b199dcf89">00105</a> <span class="preprocessor">#define getSDOs(byte) (byte &amp; 1)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    80
<a name="l00106"></a>00106 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    81
<a name="l00109"></a><a class="code" href="sdo_8c.html#e5a2dafe8497bff1fd88f881ea74414d">00109</a> <span class="preprocessor">#define getSDOc(byte) (byte &amp; 1)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    82
<a name="l00110"></a>00110 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    83
<a name="l00113"></a><a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">00113</a> <span class="preprocessor">#define getSDOt(byte) ((byte &gt;&gt; 4) &amp; 1)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    84
<a name="l00114"></a>00114 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    85
<a name="l00117"></a><a class="code" href="sdo_8c.html#d9b34e26bf67f1251f3bb364756e17f1">00117</a> <span class="preprocessor">#define getSDOindex(byte1, byte2) ((byte2 &lt;&lt; 8) | (byte1))</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    86
<a name="l00118"></a>00118 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    87
<a name="l00121"></a><a class="code" href="sdo_8c.html#52a96f6fa6083f6b291133135b7155a8">00121</a> <span class="preprocessor">#define getSDOsubIndex(byte3) (byte3)</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    88
<a name="l00122"></a>00122 <span class="preprocessor"></span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    89
<a name="l00129"></a><a class="code" href="sdo_8h.html#9309025e29b59e09026abcd3b45a5b61">00129</a> <span class="keywordtype">void</span> <a class="code" href="sdo_8c.html#9309025e29b59e09026abcd3b45a5b61">SDOTimeoutAlarm</a>(<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <span class="keywordtype">id</span>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    90
<a name="l00130"></a>00130 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    91
<a name="l00131"></a>00131     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A01, <span class="stringliteral">"SDO timeout. SDO response not received."</span>, 0);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    92
<a name="l00132"></a>00132     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2A02, <span class="stringliteral">"server node : "</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#2b0484e16a202ee1bfd43e16b0bae16f">nodeId</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    93
<a name="l00133"></a>00133     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2A02, <span class="stringliteral">"      index : "</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    94
<a name="l00134"></a>00134     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2A02, <span class="stringliteral">"   subIndex : "</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    95
<a name="l00135"></a>00135     <span class="comment">/* Reset timer handler */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    96
<a name="l00136"></a>00136     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[id].<a class="code" href="structstruct__s__transfer.html#5ef26fb9ec5de7702471923586933a1a">timer</a> = TIMER_NONE;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    97
<a name="l00137"></a>00137     <span class="comment">/*Set aborted state*/</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
    98
<a name="l00138"></a>00138     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[id].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#2acbeebb18a23287a9fe30f1f9e3f964">SDO_ABORTED_INTERNAL</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
    99
<a name="l00139"></a>00139     <span class="comment">/* Sending a SDO abort */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   100
<a name="l00140"></a>00140     <a class="code" href="sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c">sendSDOabort</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#aa0efe13c25c38cc79842b3eded01b96">whoami</a>, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   101
<a name="l00141"></a>00141                  <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>, <a class="code" href="def_8h.html#49351f44f9d88d66d47c221c7a0989c3">SDOABT_TIMED_OUT</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   102
<a name="l00142"></a>00142     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[id].<a class="code" href="structstruct__s__transfer.html#214694408d5f6e87695807efd2cfbc47">abortCode</a> = <a class="code" href="def_8h.html#49351f44f9d88d66d47c221c7a0989c3">SDOABT_TIMED_OUT</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   103
<a name="l00143"></a>00143     <span class="comment">/* Call the user function to inform of the problem.*/</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   104
<a name="l00144"></a>00144     <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   105
<a name="l00145"></a>00145         <span class="comment">/*If ther is a callback, it is responsible to close SDO transfer (client)*/</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   106
<a name="l00146"></a>00146         (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[id].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#2b0484e16a202ee1bfd43e16b0bae16f">nodeId</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   107
<a name="l00147"></a>00147     <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[<span class="keywordtype">id</span>].<a class="code" href="structstruct__s__transfer.html#aa0efe13c25c38cc79842b3eded01b96">whoami</a> == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   108
<a name="l00148"></a>00148         <span class="comment">/*Else, if server, reset the line*/</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   109
<a name="l00149"></a>00149         <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<span class="keywordtype">id</span>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   110
<a name="l00150"></a>00150 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   111
<a name="l00151"></a>00151 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   112
<a name="l00152"></a><a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">00152</a> <span class="preprocessor">#define StopSDO_TIMER(id) \</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   113
<a name="l00153"></a>00153 <span class="preprocessor">MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   114
<a name="l00154"></a>00154 <span class="preprocessor">d-&gt;transfers[id].timer = DelAlarm(d-&gt;transfers[id].timer);</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   115
<a name="l00155"></a>00155 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   116
<a name="l00156"></a><a class="code" href="sdo_8c.html#c1e9eb7a28803b958d298b6997cc60ca">00156</a> <span class="preprocessor">#define StartSDO_TIMER(id) \</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   117
<a name="l00157"></a>00157 <span class="preprocessor">MSG_WAR(0x3A06, "StartSDO_TIMER for line : ", line);\</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   118
<a name="l00158"></a>00158 <span class="preprocessor">d-&gt;transfers[id].timer = SetAlarm(d,id,&amp;SDOTimeoutAlarm,MS_TO_TIMEVAL(SDO_TIMEOUT_MS),0);</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   119
<a name="l00159"></a>00159 <span class="preprocessor"></span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   120
<a name="l00160"></a><a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">00160</a> <span class="preprocessor">#define RestartSDO_TIMER(id) \</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   121
<a name="l00161"></a>00161 <span class="preprocessor">MSG_WAR(0x3A07, "restartSDO_TIMER for line : ", line);\</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   122
<a name="l00162"></a>00162 <span class="preprocessor">if(d-&gt;transfers[id].timer != TIMER_NONE) { StopSDO_TIMER(id) StartSDO_TIMER(id) }</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   123
<a name="l00163"></a>00163 <span class="preprocessor"></span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   124
<a name="l00169"></a><a class="code" href="sdo_8h.html#1f4f07eccc4890a11ccf4f632da7740b">00169</a> <span class="keywordtype">void</span> <a class="code" href="sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b">resetSDO</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   125
<a name="l00170"></a>00170 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   126
<a name="l00171"></a>00171   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> j;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   127
<a name="l00172"></a>00172 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   128
<a name="l00173"></a>00173   <span class="comment">/* transfer structure initialization */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   129
<a name="l00174"></a>00174     <span class="keywordflow">for</span> (j = 0 ; j &lt; <a class="code" href="config_8h.html#b410d06e4fefdbea0d0093a489f54786">SDO_MAX_SIMULTANEOUS_TRANSFERTS</a> ; j++) 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   130
<a name="l00175"></a>00175       <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, j);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   131
<a name="l00176"></a>00176 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   132
<a name="l00177"></a>00177 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   133
<a name="l00186"></a><a class="code" href="sdo_8h.html#2eb5309dca3a7363da5e5e7230b85d58">00186</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58">SDOlineToObjdict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   134
<a name="l00187"></a>00187 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   135
<a name="l00188"></a>00188   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>      size;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   136
<a name="l00189"></a>00189   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> errorCode;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   137
<a name="l00190"></a>00190   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A08, <span class="stringliteral">"Enter in SDOlineToObjdict "</span>, line);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   138
<a name="l00191"></a>00191   size = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   139
<a name="l00192"></a>00192   errorCode = <a class="code" href="objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0">setODentry</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   140
<a name="l00193"></a>00193                          (<span class="keywordtype">void</span> *) <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>, &amp;size, 1);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   141
<a name="l00194"></a>00194   <span class="keywordflow">if</span> (errorCode != <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   142
<a name="l00195"></a>00195     <span class="keywordflow">return</span> errorCode;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   143
<a name="l00196"></a>00196   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A08, <span class="stringliteral">"exit of SDOlineToObjdict "</span>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   144
<a name="l00197"></a>00197   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   145
<a name="l00198"></a>00198 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   146
<a name="l00199"></a>00199 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   147
<a name="l00200"></a>00200 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   148
<a name="l00209"></a><a class="code" href="sdo_8h.html#29427a80fd1aeabff30bf0602fbc220f">00209</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="sdo_8c.html#29427a80fd1aeabff30bf0602fbc220f">objdictToSDOline</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   149
<a name="l00210"></a>00210 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   150
<a name="l00211"></a>00211   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>  size = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   151
<a name="l00212"></a>00212   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>  dataType;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   152
<a name="l00213"></a>00213   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> errorCode;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   153
<a name="l00214"></a>00214 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   154
<a name="l00215"></a>00215   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A05, <span class="stringliteral">"objdict-&gt;line index : "</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   155
<a name="l00216"></a>00216   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A06, <span class="stringliteral">"  subIndex : "</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   156
<a name="l00217"></a>00217 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   157
<a name="l00218"></a>00218   errorCode = <a class="code" href="objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac">getODentry</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>,
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   158
<a name="l00219"></a>00219                                 <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>,
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   159
<a name="l00220"></a>00220                                 (<span class="keywordtype">void</span> *)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>,
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   160
<a name="l00221"></a>00221                                 &amp;size, &amp;dataType, 0);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   161
<a name="l00222"></a>00222   
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   162
<a name="l00223"></a>00223   <span class="keywordflow">if</span> (errorCode != <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   163
<a name="l00224"></a>00224     <span class="keywordflow">return</span> errorCode;
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
   164
<a name="l00225"></a>00225 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   165
<a name="l00226"></a>00226   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> = size;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   166
<a name="l00227"></a>00227   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> = 0;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   167
<a name="l00228"></a>00228 <span class="preprocessor">#if 0</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   168
<a name="l00229"></a>00229 <span class="preprocessor"></span>   <span class="comment">/*Me laisser a, please ! (FD)*/</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   169
<a name="l00230"></a>00230   {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   170
<a name="l00231"></a>00231     <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   171
<a name="l00232"></a>00232     <span class="keywordflow">for</span> (i = 0 ; i &lt; 10 ; i++) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   172
<a name="l00233"></a>00233       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(i, <span class="stringliteral">"data= "</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[i]);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   173
<a name="l00234"></a>00234     }     
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   174
<a name="l00235"></a>00235   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   175
<a name="l00236"></a>00236 <span class="preprocessor">#endif</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   176
<a name="l00237"></a>00237 <span class="preprocessor"></span>  <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   177
<a name="l00238"></a>00238 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   178
<a name="l00239"></a>00239 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   179
<a name="l00250"></a><a class="code" href="sdo_8h.html#ad6eb8be03b832ebba4dfb87aaba4065">00250</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nbBytes, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>* data) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   180
<a name="l00251"></a>00251   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   181
<a name="l00252"></a>00252   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> offset;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   182
<a name="l00253"></a>00253 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   183
<a name="l00254"></a>00254   <span class="keywordflow">if</span> ((<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> + nbBytes) &gt; <a class="code" href="config_8h.html#c4b8fc75a2a59607635b1df2fb1e1134">SDO_MAX_LENGTH_TRANSFERT</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   184
<a name="l00255"></a>00255     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A10,<span class="stringliteral">"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT"</span>, nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   185
<a name="l00256"></a>00256     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   186
<a name="l00257"></a>00257   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   187
<a name="l00258"></a>00258     <span class="keywordflow">if</span> ((<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> + nbBytes) &gt; <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   188
<a name="l00259"></a>00259     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A11,<span class="stringliteral">"SDO Size of data too large. Exceed count"</span>, nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   189
<a name="l00260"></a>00260     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   190
<a name="l00261"></a>00261   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   191
<a name="l00262"></a>00262   offset = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   192
<a name="l00263"></a>00263   for (i = 0 ; i &lt; nbBytes ; i++) 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   193
<a name="l00264"></a>00264     * (data + i) = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[offset + i];
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   194
<a name="l00265"></a>00265   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> + nbBytes;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   195
<a name="l00266"></a>00266   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   196
<a name="l00267"></a>00267 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   197
<a name="l00268"></a>00268 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   198
<a name="l00279"></a><a class="code" href="sdo_8h.html#18b6f7e9c9441640a88ffef1e8720694">00279</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694">SDOtoLine</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nbBytes, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>* data)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   199
<a name="l00280"></a>00280 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   200
<a name="l00281"></a>00281   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   201
<a name="l00282"></a>00282   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> offset;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   202
<a name="l00283"></a>00283   
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   203
<a name="l00284"></a>00284   <span class="keywordflow">if</span> ((<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> + nbBytes) &gt; <a class="code" href="config_8h.html#c4b8fc75a2a59607635b1df2fb1e1134">SDO_MAX_LENGTH_TRANSFERT</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   204
<a name="l00285"></a>00285     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A15,<span class="stringliteral">"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT"</span>, nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   205
<a name="l00286"></a>00286     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   206
<a name="l00287"></a>00287   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   207
<a name="l00288"></a>00288   offset = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   208
<a name="l00289"></a>00289   for (i = 0 ; i &lt; nbBytes ; i++) 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   209
<a name="l00290"></a>00290     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[offset + i] = * (data + i);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   210
<a name="l00291"></a>00291   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> + nbBytes;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   211
<a name="l00292"></a>00292   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   212
<a name="l00293"></a>00293 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   213
<a name="l00294"></a>00294 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   214
<a name="l00307"></a><a class="code" href="sdo_8h.html#2019db2a4d17e6d29c055cbae173e2b9">00307</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   215
<a name="l00308"></a>00308                 <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> abortCode)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   216
<a name="l00309"></a>00309 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   217
<a name="l00310"></a>00310   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   218
<a name="l00311"></a>00311   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   219
<a name="l00312"></a>00312   err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   220
<a name="l00313"></a>00313   <span class="keywordflow">if</span> (!err) <span class="comment">/* If a line on use have been found.*/</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   221
<a name="l00314"></a>00314     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A20, <span class="stringliteral">"FailedSDO : line found : "</span>, line);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   222
<a name="l00315"></a>00315   <span class="keywordflow">if</span> ((! err) &amp;&amp; (whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>)) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   223
<a name="l00316"></a>00316     <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line );
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   224
<a name="l00317"></a>00317     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A21, <span class="stringliteral">"FailedSDO : line released : "</span>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   225
<a name="l00318"></a>00318   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   226
<a name="l00319"></a>00319   <span class="keywordflow">if</span> ((! err) &amp;&amp; (whoami == <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>)) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   227
<a name="l00320"></a>00320     <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line);
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   228
<a name="l00321"></a>00321     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#2acbeebb18a23287a9fe30f1f9e3f964">SDO_ABORTED_INTERNAL</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   229
<a name="l00322"></a>00322   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   230
<a name="l00323"></a>00323   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A22, <span class="stringliteral">"Sending SDO abort "</span>, 0);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   231
<a name="l00324"></a>00324   err = <a class="code" href="sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c">sendSDOabort</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, index, subIndex, abortCode);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   232
<a name="l00325"></a>00325   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   233
<a name="l00326"></a>00326     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A23, <span class="stringliteral">"Unable to send the SDO abort"</span>, 0);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   234
<a name="l00327"></a>00327     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   235
<a name="l00328"></a>00328   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   236
<a name="l00329"></a>00329   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   237
<a name="l00330"></a>00330 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   238
<a name="l00331"></a>00331 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   239
<a name="l00338"></a><a class="code" href="sdo_8h.html#42d33be015d4c4c83c73f1f0e588f481">00338</a> <span class="keywordtype">void</span> <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a> ( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line )
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   240
<a name="l00339"></a>00339 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   241
<a name="l00340"></a>00340   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i; 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   242
<a name="l00341"></a>00341   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A25, <span class="stringliteral">"reset SDO line nb : "</span>, line); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   243
<a name="l00342"></a>00342   <a class="code" href="sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d">initSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, 0, 0, 0, <a class="code" href="def_8h.html#b97393c9473837a2886583a1d5f69cf9">SDO_RESET</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   244
<a name="l00343"></a>00343   <span class="keywordflow">for</span> (i = 0 ; i &lt; <a class="code" href="config_8h.html#c4b8fc75a2a59607635b1df2fb1e1134">SDO_MAX_LENGTH_TRANSFERT</a> ; i++)
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   245
<a name="l00344"></a>00344     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[i] = 0;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   246
<a name="l00345"></a>00345 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   247
<a name="l00346"></a>00346 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   248
<a name="l00359"></a><a class="code" href="sdo_8h.html#b9c873a15f55b29112b5527a6cc6898d">00359</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d">initSDOline</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="structstruct__s__timer__entry.html#a58939661154282941a8b289d6019064">state</a>)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   249
<a name="l00360"></a>00360 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   250
<a name="l00361"></a>00361   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A25, <span class="stringliteral">"init SDO line nb : "</span>, line); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   251
<a name="l00362"></a>00362   <span class="keywordflow">if</span> (state == <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a> || state == <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>){
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   252
<a name="l00363"></a>00363         <a class="code" href="sdo_8c.html#c1e9eb7a28803b958d298b6997cc60ca">StartSDO_TIMER</a>(line)
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   253
<a name="l00364"></a>00364   }<span class="keywordflow">else</span>{
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   254
<a name="l00365"></a>00365         <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line)
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   255
<a name="l00366"></a>00366   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   256
<a name="l00367"></a>00367   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#2b0484e16a202ee1bfd43e16b0bae16f">nodeId</a> = nodeId; 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   257
<a name="l00368"></a>00368   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a> = index;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   258
<a name="l00369"></a>00369   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a> = subIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   259
<a name="l00370"></a>00370   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = state;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   260
<a name="l00371"></a>00371   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   261
<a name="l00372"></a>00372   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   262
<a name="l00373"></a>00373   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   263
<a name="l00374"></a>00374   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#bac6b366cfcddb5e7d64f6bf2eb97d74">dataType</a> = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   264
<a name="l00375"></a>00375   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a> = NULL;  
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   265
<a name="l00376"></a>00376   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   266
<a name="l00377"></a>00377 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   267
<a name="l00378"></a>00378 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   268
<a name="l00388"></a><a class="code" href="sdo_8h.html#58d1f9691977617601beb9e5b4123252">00388</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#58d1f9691977617601beb9e5b4123252">getSDOfreeLine</a> ( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *line )
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   269
<a name="l00389"></a>00389 {
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   270
<a name="l00390"></a>00390         
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   271
<a name="l00391"></a>00391   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   272
<a name="l00392"></a>00392     
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   273
<a name="l00393"></a>00393   <span class="keywordflow">for</span> (i = 0 ; i &lt; <a class="code" href="config_8h.html#b410d06e4fefdbea0d0093a489f54786">SDO_MAX_SIMULTANEOUS_TRANSFERTS</a> ; i++){
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   274
<a name="l00394"></a>00394     <span class="keywordflow">if</span> ( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[i].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> == <a class="code" href="def_8h.html#b97393c9473837a2886583a1d5f69cf9">SDO_RESET</a> ) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   275
<a name="l00395"></a>00395       *line = i;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   276
<a name="l00396"></a>00396       <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[i].<a class="code" href="structstruct__s__transfer.html#aa0efe13c25c38cc79842b3eded01b96">whoami</a> = whoami;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   277
<a name="l00397"></a>00397       <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   278
<a name="l00398"></a>00398     } <span class="comment">/* end if */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   279
<a name="l00399"></a>00399   } <span class="comment">/* end for */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   280
<a name="l00400"></a>00400   <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A25, <span class="stringliteral">"Too many SDO in progress. Aborted."</span>, i);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   281
<a name="l00401"></a>00401   <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   282
<a name="l00402"></a>00402 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   283
<a name="l00403"></a>00403 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   284
<a name="l00414"></a><a class="code" href="sdo_8h.html#bb0c376b048ab2c6e0524b135b62376f">00414</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *line)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   285
<a name="l00415"></a>00415 {
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   286
<a name="l00416"></a>00416         
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   287
<a name="l00417"></a>00417   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   288
<a name="l00418"></a>00418     
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   289
<a name="l00419"></a>00419   <span class="keywordflow">for</span> (i = 0 ; i &lt; <a class="code" href="config_8h.html#b410d06e4fefdbea0d0093a489f54786">SDO_MAX_SIMULTANEOUS_TRANSFERTS</a> ; i++){
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   290
<a name="l00420"></a>00420     <span class="keywordflow">if</span> ( (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[i].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#b97393c9473837a2886583a1d5f69cf9">SDO_RESET</a>) &amp;&amp;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   291
<a name="l00421"></a>00421          (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[i].<a class="code" href="structstruct__s__transfer.html#2b0484e16a202ee1bfd43e16b0bae16f">nodeId</a> == nodeId) &amp;&amp; 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   292
<a name="l00422"></a>00422          (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[i].<a class="code" href="structstruct__s__transfer.html#aa0efe13c25c38cc79842b3eded01b96">whoami</a> == whoami) ) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   293
<a name="l00423"></a>00423       *line = i;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   294
<a name="l00424"></a>00424       <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   295
<a name="l00425"></a>00425     }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   296
<a name="l00426"></a>00426   } 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   297
<a name="l00427"></a>00427   <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   298
<a name="l00428"></a>00428 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   299
<a name="l00429"></a>00429 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   300
<a name="l00439"></a><a class="code" href="sdo_8h.html#555a772d3a88a29c495f33513f8b2d58">00439</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#555a772d3a88a29c495f33513f8b2d58">closeSDOtransfer</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   301
<a name="l00440"></a>00440 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   302
<a name="l00441"></a>00441   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   303
<a name="l00442"></a>00442   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   304
<a name="l00443"></a>00443   err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   305
<a name="l00444"></a>00444   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   306
<a name="l00445"></a>00445     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2A30, <span class="stringliteral">"No SDO communication to close for node : "</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   307
<a name="l00446"></a>00446     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   308
<a name="l00447"></a>00447   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   309
<a name="l00448"></a>00448   <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line);  
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   310
<a name="l00449"></a>00449   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   311
<a name="l00450"></a>00450 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   312
<a name="l00451"></a>00451 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   313
<a name="l00461"></a><a class="code" href="sdo_8h.html#acceb714c6e457e98deb9ba164ba2a2f">00461</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f">getSDOlineRestBytes</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * nbBytes)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   314
<a name="l00462"></a>00462 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   315
<a name="l00463"></a>00463   <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> == 0) <span class="comment">/* if received initiate SDO protocol with e=0 and s=0 */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   316
<a name="l00464"></a>00464     * nbBytes = 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   317
<a name="l00465"></a>00465   <span class="keywordflow">else</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   318
<a name="l00466"></a>00466     * nbBytes = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> - (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   319
<a name="l00467"></a>00467   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   320
<a name="l00468"></a>00468 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   321
<a name="l00469"></a>00469 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   322
<a name="l00479"></a><a class="code" href="sdo_8h.html#601a837ecb5f21bf4c66b058c5ae7810">00479</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810">setSDOlineRestBytes</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nbBytes)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   323
<a name="l00480"></a>00480 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   324
<a name="l00481"></a>00481   <span class="keywordflow">if</span> (nbBytes &gt; <a class="code" href="config_8h.html#c4b8fc75a2a59607635b1df2fb1e1134">SDO_MAX_LENGTH_TRANSFERT</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   325
<a name="l00482"></a>00482     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A35,<span class="stringliteral">"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT"</span>, nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   326
<a name="l00483"></a>00483     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   327
<a name="l00484"></a>00484   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   328
<a name="l00485"></a>00485   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> = nbBytes;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   329
<a name="l00486"></a>00486   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   330
<a name="l00487"></a>00487 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   331
<a name="l00488"></a>00488 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   332
<a name="l00498"></a><a class="code" href="sdo_8h.html#c6b5d7d1439d537da992a96644a1ca5d">00498</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami, <a class="code" href="structstruct__s__SDO.html">s_SDO</a> sdo)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   333
<a name="l00499"></a>00499 {       
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   334
<a name="l00500"></a>00500   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> offset;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   335
<a name="l00501"></a>00501   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> lastIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   336
<a name="l00502"></a>00502   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> found = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   337
<a name="l00503"></a>00503   <a class="code" href="structMessage.html">Message</a> m;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   338
<a name="l00504"></a>00504   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   339
<a name="l00505"></a>00505   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> * pwCobId = NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   340
<a name="l00506"></a>00506   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> * pwNodeId = NULL;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   341
<a name="l00507"></a>00507 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   342
<a name="l00508"></a>00508   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A38, <span class="stringliteral">"sendSDO"</span>,0);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   343
<a name="l00509"></a>00509   <span class="keywordflow">if</span>( !((<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a03a5121facf5b21d541f8566a8345d6">nodeState</a> == <a class="code" href="states_8h.html#3136d2815abe9d284f985e0a7ec68646a80594b1522cb686b981f56bbec45124">Operational</a>) ||  (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a03a5121facf5b21d541f8566a8345d6">nodeState</a> == <a class="code" href="states_8h.html#3136d2815abe9d284f985e0a7ec68646c747c16a9c4d7dec65cdab6e38df99b7">Pre_operational</a> ))) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   344
<a name="l00510"></a>00510     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2A39, <span class="stringliteral">"unable to send the SDO (not in op or pre-op mode"</span>, <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a03a5121facf5b21d541f8566a8345d6">nodeState</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   345
<a name="l00511"></a>00511     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   346
<a name="l00512"></a>00512   }                             
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   347
<a name="l00513"></a>00513 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   348
<a name="l00514"></a>00514   <span class="comment">/*get the server-&gt;client cobid*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   349
<a name="l00515"></a>00515   <span class="keywordflow">if</span> ( whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a> )   {<span class="comment">/*case server. Easy because today only one server SDO is authorized in CanFestival*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   350
<a name="l00516"></a>00516     offset = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>-&gt;<a class="code" href="structs__quick__index.html#998dc7bd9cf744bf43510c1273a4a3c2">SDO_SVR</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   351
<a name="l00517"></a>00517     <span class="keywordflow">if</span> (offset == 0) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   352
<a name="l00518"></a>00518       <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A42, <span class="stringliteral">"SendSDO : No SDO server found"</span>, 0); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   353
<a name="l00519"></a>00519       <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   354
<a name="l00520"></a>00520     }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   355
<a name="l00521"></a>00521     pwCobId = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[2].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   356
<a name="l00522"></a>00522     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A41, <span class="stringliteral">"I am server. cobId : "</span>, *pwCobId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   357
<a name="l00523"></a>00523   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   358
<a name="l00524"></a>00524   <span class="keywordflow">else</span> {                        <span class="comment">/*case client*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   359
<a name="l00525"></a>00525     <span class="comment">/* Get the client-&gt;server cobid.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   360
<a name="l00526"></a>00526     <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> sdoNum = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   361
<a name="l00527"></a>00527     offset = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   362
<a name="l00528"></a>00528     lastIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">lastIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   363
<a name="l00529"></a>00529     <span class="keywordflow">if</span> (offset == 0) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   364
<a name="l00530"></a>00530       <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A42, <span class="stringliteral">"SendSDO : No SDO client index found"</span>, 0); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   365
<a name="l00531"></a>00531       <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   366
<a name="l00532"></a>00532     }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   367
<a name="l00533"></a>00533     <span class="comment">/* First, have to find at the index where is defined the communication with the server node */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   368
<a name="l00534"></a>00534     <span class="keywordflow">while</span> (offset &lt;= lastIndex){
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   369
<a name="l00535"></a>00535       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A43,<span class="stringliteral">"Reading index : "</span>, 0x1280 + sdoNum);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   370
<a name="l00536"></a>00536       <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= 3) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   371
<a name="l00537"></a>00537         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A28, <span class="stringliteral">"Subindex 3  not found at index "</span>, 0x1280 + sdoNum);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   372
<a name="l00538"></a>00538         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   373
<a name="l00539"></a>00539       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   374
<a name="l00540"></a>00540       pwNodeId = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[3].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   375
<a name="l00541"></a>00541       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A44, <span class="stringliteral">"Found nodeId server = "</span>, *pwNodeId);     
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   376
<a name="l00542"></a>00542       <span class="keywordflow">if</span>(*pwNodeId == sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a>) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   377
<a name="l00543"></a>00543         found = 1;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   378
<a name="l00544"></a>00544         <span class="keywordflow">break</span>;          
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   379
<a name="l00545"></a>00545       }      
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   380
<a name="l00546"></a>00546       offset ++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   381
<a name="l00547"></a>00547       sdoNum ++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   382
<a name="l00548"></a>00548     }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   383
<a name="l00549"></a>00549     <span class="keywordflow">if</span> (! found){
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   384
<a name="l00550"></a>00550       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a> (0x2A45, <span class="stringliteral">"No SDO client corresponds to the mesage to send to node "</span>, sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   385
<a name="l00551"></a>00551       <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   386
<a name="l00552"></a>00552     }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   387
<a name="l00553"></a>00553     <span class="comment">/* Second, read the cobid client-&gt;server */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   388
<a name="l00554"></a>00554     pwCobId = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[1].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   389
<a name="l00555"></a>00555   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   390
<a name="l00556"></a>00556   <span class="comment">/* message copy for sending */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   391
<a name="l00557"></a>00557   m.<a class="code" href="structMessage.html#c5d40bde75d015beb48293c052a218b5">cob_id</a>.<a class="code" href="structSHORT__CAN.html#614e1c6a40f1261e2b15ad69b19e9698">w</a> = *pwCobId;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   392
<a name="l00558"></a>00558   m.<a class="code" href="structMessage.html#41c5a4e7eaeb2c2ae1af2b2c83129615">rtr</a> = <a class="code" href="def_8h.html#0c43b00ce49efc3586ad17dd80d73940">NOT_A_REQUEST</a>; 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   393
<a name="l00559"></a>00559   <span class="comment">/* the length of SDO must be 8 */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   394
<a name="l00560"></a>00560   m.<a class="code" href="structMessage.html#d1dd9a88dda088ff4c7073d49613613d">len</a> = 8;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   395
<a name="l00561"></a>00561   <span class="keywordflow">for</span> (i = 0 ; i &lt; 8 ; i++) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   396
<a name="l00562"></a>00562     m.<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[i] =  sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i];
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   397
<a name="l00563"></a>00563   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   398
<a name="l00564"></a>00564   <span class="keywordflow">return</span> <a class="code" href="canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977">canSend</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#c960c3c56e8389105c2853cfb393de0c">canHandle</a>,&amp;m);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   399
<a name="l00565"></a>00565 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   400
<a name="l00566"></a>00566 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   401
<a name="l00578"></a><a class="code" href="sdo_8h.html#b26c3f2fb63d81055809d6ccaa785b7c">00578</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c">sendSDOabort</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> abortCode)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   402
<a name="l00579"></a>00579 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   403
<a name="l00580"></a>00580   <a class="code" href="structstruct__s__SDO.html">s_SDO</a> sdo;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   404
<a name="l00581"></a>00581   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> ret;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   405
<a name="l00582"></a>00582   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2A50,<span class="stringliteral">"Sending SDO abort "</span>, abortCode);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   406
<a name="l00583"></a>00583   sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = *<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#e5c35e97a1061bb9737359cc12192269">bDeviceNodeId</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   407
<a name="l00584"></a>00584   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = 0x80;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   408
<a name="l00585"></a>00585   <span class="comment">/* Index */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   409
<a name="l00586"></a>00586   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[1] = index &amp; 0xFF; <span class="comment">/* LSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   410
<a name="l00587"></a>00587   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[2] = (index &gt;&gt; 8) &amp; 0xFF; <span class="comment">/* MSB */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   411
<a name="l00588"></a>00588   <span class="comment">/* Subindex */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   412
<a name="l00589"></a>00589   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[3] = subIndex;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   413
<a name="l00590"></a>00590   <span class="comment">/* Data */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   414
<a name="l00591"></a>00591   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[4] = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)(abortCode &amp; 0xFF);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   415
<a name="l00592"></a>00592   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[5] = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)((abortCode &gt;&gt; 8) &amp; 0xFF);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   416
<a name="l00593"></a>00593   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[6] = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)((abortCode &gt;&gt; 16) &amp; 0xFF);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   417
<a name="l00594"></a>00594   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[7] = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)((abortCode &gt;&gt; 24) &amp; 0xFF);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   418
<a name="l00595"></a>00595   ret = <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   419
<a name="l00596"></a>00596 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   420
<a name="l00597"></a>00597   <span class="keywordflow">return</span> ret;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   421
<a name="l00598"></a>00598 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   422
<a name="l00599"></a>00599 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   423
<a name="l00608"></a><a class="code" href="sdo_8h.html#2a93a7c780472b1d8666d89aa270f661">00608</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#2a93a7c780472b1d8666d89aa270f661">proceedSDO</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="structMessage.html">Message</a> *m)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   424
<a name="l00609"></a>00609 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   425
<a name="l00610"></a>00610   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   426
<a name="l00611"></a>00611   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   427
<a name="l00612"></a>00612   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nbBytes; <span class="comment">/* received or to be transmited. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   428
<a name="l00613"></a>00613   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId = 0;  <span class="comment">/* The node from which the SDO is received */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   429
<a name="l00614"></a>00614   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> nodeId_32; <span class="comment">/* node id in 32 bits, for temporary use */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   430
<a name="l00615"></a>00615   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> *pNodeId = NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   431
<a name="l00616"></a>00616   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> whoami = <a class="code" href="def_8h.html#5c0ec02d3f240083717a69a83b71a882">SDO_UNKNOWN</a>;  <span class="comment">/* SDO_SERVER or SDO_CLIENT.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   432
<a name="l00617"></a>00617   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> errorCode; <span class="comment">/* while reading or writing in the local object dictionary.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   433
<a name="l00618"></a>00618   <a class="code" href="structstruct__s__SDO.html">s_SDO</a> sdo;    <span class="comment">/* SDO to transmit */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   434
<a name="l00619"></a>00619   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   435
<a name="l00620"></a>00620   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   436
<a name="l00621"></a>00621   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> abortCode;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   437
<a name="l00622"></a>00622   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i,j;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   438
<a name="l00623"></a>00623   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> *     pCobId = NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   439
<a name="l00624"></a>00624   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> offset;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   440
<a name="l00625"></a>00625   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> lastIndex;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   441
<a name="l00626"></a>00626 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   442
<a name="l00627"></a>00627   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A60, <span class="stringliteral">"proceedSDO "</span>, 0);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   443
<a name="l00628"></a>00628   whoami = <a class="code" href="def_8h.html#5c0ec02d3f240083717a69a83b71a882">SDO_UNKNOWN</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   444
<a name="l00629"></a>00629   <span class="comment">/* Looking for the cobId in the object dictionary. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   445
<a name="l00630"></a>00630   <span class="comment">/* Am-I a server ? */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   446
<a name="l00631"></a>00631   offset = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>-&gt;<a class="code" href="structs__quick__index.html#998dc7bd9cf744bf43510c1273a4a3c2">SDO_SVR</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   447
<a name="l00632"></a>00632   lastIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">lastIndex</a>-&gt;<a class="code" href="structs__quick__index.html#998dc7bd9cf744bf43510c1273a4a3c2">SDO_SVR</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   448
<a name="l00633"></a>00633   j = 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   449
<a name="l00634"></a>00634   <span class="keywordflow">if</span>(offset) <span class="keywordflow">while</span> (offset &lt;= lastIndex) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   450
<a name="l00635"></a>00635      <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= 1) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   451
<a name="l00636"></a>00636           <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A61, <span class="stringliteral">"Subindex 1  not found at index "</span>, 0x1200 + j);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   452
<a name="l00637"></a>00637           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   453
<a name="l00638"></a>00638         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   454
<a name="l00639"></a>00639       pCobId = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[1].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   455
<a name="l00640"></a>00640       <span class="keywordflow">if</span> ( *pCobId == (*m).cob_id.w ) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   456
<a name="l00641"></a>00641         whoami = <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   457
<a name="l00642"></a>00642         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A62, <span class="stringliteral">"proceedSDO. I am server. index : "</span>, 0x1200 + j);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   458
<a name="l00643"></a>00643         <span class="comment">/* In case of server, the node id of the client may be unknown. So we put the index minus offset */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   459
<a name="l00644"></a>00644         <span class="comment">/* 0x1200 where the cobid received is defined. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   460
<a name="l00645"></a>00645         nodeId = j;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   461
<a name="l00646"></a>00646         <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   462
<a name="l00647"></a>00647       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   463
<a name="l00648"></a>00648       j++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   464
<a name="l00649"></a>00649       offset++;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   465
<a name="l00650"></a>00650   } <span class="comment">/* end while */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   466
<a name="l00651"></a>00651   <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#5c0ec02d3f240083717a69a83b71a882">SDO_UNKNOWN</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   467
<a name="l00652"></a>00652     <span class="comment">/* Am-I client ? */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   468
<a name="l00653"></a>00653     offset = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   469
<a name="l00654"></a>00654     lastIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">lastIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   470
<a name="l00655"></a>00655     j = 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   471
<a name="l00656"></a>00656     <span class="keywordflow">if</span>(offset) <span class="keywordflow">while</span> (offset &lt;= lastIndex) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   472
<a name="l00657"></a>00657        <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= 3) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   473
<a name="l00658"></a>00658          <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A63, <span class="stringliteral">"Subindex 3  not found at index "</span>, 0x1280 + j);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   474
<a name="l00659"></a>00659          <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   475
<a name="l00660"></a>00660        }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   476
<a name="l00661"></a>00661        <span class="comment">/* a) Looking for the cobid received. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   477
<a name="l00662"></a>00662        pCobId = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[2].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   478
<a name="l00663"></a>00663        <span class="keywordflow">if</span> (*pCobId == (*m).cob_id.w ) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   479
<a name="l00664"></a>00664          <span class="comment">/* b) cobid found, so reading the node id of the server. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   480
<a name="l00665"></a>00665          pNodeId = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[3].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   481
<a name="l00666"></a>00666          whoami = <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   482
<a name="l00667"></a>00667          nodeId_32 = *pNodeId;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   483
<a name="l00668"></a>00668          nodeId = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)nodeId_32;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   484
<a name="l00669"></a>00669          <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A64, <span class="stringliteral">"proceedSDO. I am server. index : "</span>, 0x1280 + j);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   485
<a name="l00670"></a>00670          <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A65, <span class="stringliteral">"                 Server nodeId : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   486
<a name="l00671"></a>00671          <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   487
<a name="l00672"></a>00672         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   488
<a name="l00673"></a>00673        j++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   489
<a name="l00674"></a>00674        offset++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   490
<a name="l00675"></a>00675     } <span class="comment">/* end while */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   491
<a name="l00676"></a>00676   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   492
<a name="l00677"></a>00677   <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#5c0ec02d3f240083717a69a83b71a882">SDO_UNKNOWN</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   493
<a name="l00678"></a>00678     <span class="keywordflow">return</span> 0xFF;<span class="comment">/* This SDO was not for us ! */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   494
<a name="l00679"></a>00679   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   495
<a name="l00680"></a>00680 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   496
<a name="l00681"></a>00681   <span class="comment">/* Test if the size of the SDO is ok */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   497
<a name="l00682"></a>00682   <span class="keywordflow">if</span> ( (*m).len != 8) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   498
<a name="l00683"></a>00683     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A67, <span class="stringliteral">"Error size SDO. CobId  : "</span>, (*m).cob_id.w);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   499
<a name="l00684"></a>00684     <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   500
<a name="l00685"></a>00685     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   501
<a name="l00686"></a>00686   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   502
<a name="l00687"></a>00687   
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   503
<a name="l00688"></a>00688   <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   504
<a name="l00689"></a>00689     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A68, <span class="stringliteral">"I am CLIENT. Received SDO from nodeId : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   505
<a name="l00690"></a>00690   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   506
<a name="l00691"></a>00691   <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   507
<a name="l00692"></a>00692     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A69, <span class="stringliteral">"I am SERVER. Received SDO cobId : "</span>, (*m).cob_id.w);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   508
<a name="l00693"></a>00693   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   509
<a name="l00694"></a>00694     
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   510
<a name="l00695"></a>00695   <span class="comment">/* Testing the command specifier */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   511
<a name="l00696"></a>00696   <span class="comment">/* Allowed : cs = 0, 1, 2, 3, 4. (=  all except those for block tranfert). */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   512
<a name="l00697"></a>00697   <span class="comment">/* cs = other : Not allowed -&gt; abort. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   513
<a name="l00698"></a>00698   <span class="keywordflow">switch</span> (<a class="code" href="sdo_8c.html#ce5a1634ff4089db3b228cdd5010c321">getSDOcs</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   514
<a name="l00699"></a>00699 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   515
<a name="l00700"></a>00700   <span class="keywordflow">case</span> 0:
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   516
<a name="l00701"></a>00701     <span class="comment">/* I am SERVER */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   517
<a name="l00702"></a>00702     <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   518
<a name="l00703"></a>00703       <span class="comment">/* Receiving a download segment data. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   519
<a name="l00704"></a>00704       <span class="comment">/* A SDO transfert should have been yet initiated. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   520
<a name="l00705"></a>00705       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line ); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   521
<a name="l00706"></a>00706       <span class="keywordflow">if</span> (!err)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   522
<a name="l00707"></a>00707         err = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   523
<a name="l00708"></a>00708       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   524
<a name="l00709"></a>00709         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A70, <span class="stringliteral">"SDO error : Received download segment for unstarted trans. index 0x1200 + "</span>, 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   525
<a name="l00710"></a>00710                 nodeId); 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   526
<a name="l00711"></a>00711         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   527
<a name="l00712"></a>00712         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   528
<a name="l00713"></a>00713       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   529
<a name="l00714"></a>00714       <span class="comment">/* Reset the wathdog */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   530
<a name="l00715"></a>00715       <a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">RestartSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   531
<a name="l00716"></a>00716       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A71, <span class="stringliteral">"Received SDO download segment defined at index 0x1200 + "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   532
<a name="l00717"></a>00717       index = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   533
<a name="l00718"></a>00718       subIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   534
<a name="l00719"></a>00719       <span class="comment">/* Toggle test. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   535
<a name="l00720"></a>00720       <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> != <a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">getSDOt</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   536
<a name="l00721"></a>00721         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A72, <span class="stringliteral">"SDO error : Toggle error : "</span>, <a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">getSDOt</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   537
<a name="l00722"></a>00722         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#d80b624c5c5760190d82246e7b04d239">SDOABT_TOGGLE_NOT_ALTERNED</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   538
<a name="l00723"></a>00723         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   539
<a name="l00724"></a>00724       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   540
<a name="l00725"></a>00725       <span class="comment">/* Nb of data to be downloaded */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   541
<a name="l00726"></a>00726       nbBytes = 7 - <a class="code" href="sdo_8c.html#e5677ca12bfb71b06cbd6e99e9be0955">getSDOn3</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   542
<a name="l00727"></a>00727       <span class="comment">/* Store the data in the transfert structure. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   543
<a name="l00728"></a>00728       err = <a class="code" href="sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694">SDOtoLine</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, (*m).data + 1);
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
   544
<a name="l00729"></a>00729       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   545
<a name="l00730"></a>00730         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   546
<a name="l00731"></a>00731         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   547
<a name="l00732"></a>00732       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   548
<a name="l00733"></a>00733       <span class="comment">/* Sending the SDO response, CS = 1 */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   549
<a name="l00734"></a>00734       sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = *<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#e5c35e97a1061bb9737359cc12192269">bDeviceNodeId</a>; <span class="comment">/* The node id of the server, (here it is the sender). */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   550
<a name="l00735"></a>00735       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (1 &lt;&lt; 5) | (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   551
<a name="l00736"></a>00736       <span class="keywordflow">for</span> (i = 1 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   552
<a name="l00737"></a>00737         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   553
<a name="l00738"></a>00738       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A73, <span class="stringliteral">"SDO. Send response to download request defined at index 0x1200 + "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   554
<a name="l00739"></a>00739       <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   555
<a name="l00740"></a>00740       <span class="comment">/* Inverting the toggle for the next segment. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   556
<a name="l00741"></a>00741       d-&gt;transfers[line].toggle = ! d-&gt;transfers[line].toggle &amp; 1;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   557
<a name="l00742"></a>00742       <span class="comment">/* If it was the last segment, */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   558
<a name="l00743"></a>00743       <span class="keywordflow">if</span> (<a class="code" href="sdo_8c.html#e5a2dafe8497bff1fd88f881ea74414d">getSDOc</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   559
<a name="l00744"></a>00744         <span class="comment">/* Transfering line data to object dictionary. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   560
<a name="l00745"></a>00745         <span class="comment">/* The code does not use the "d" of initiate frame. So it is safe if e=s=0 */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   561
<a name="l00746"></a>00746         errorCode = <a class="code" href="sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58">SDOlineToObjdict</a>(d, line);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   562
<a name="l00747"></a>00747         <span class="keywordflow">if</span> (errorCode) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   563
<a name="l00748"></a>00748           <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A54, <span class="stringliteral">"SDO error : Unable to copy the data in the object dictionary"</span>, 0); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   564
<a name="l00749"></a>00749           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(d, nodeId, whoami, index, subIndex, errorCode);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   565
<a name="l00750"></a>00750           <span class="keywordflow">return</span> 0xFF;    
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   566
<a name="l00751"></a>00751         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   567
<a name="l00752"></a>00752         <span class="comment">/* Release of the line */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   568
<a name="l00753"></a>00753         <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(d, line);
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   569
<a name="l00754"></a>00754         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A74, <span class="stringliteral">"SDO. End of download defined at index 0x1200 + "</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   570
<a name="l00755"></a>00755       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   571
<a name="l00756"></a>00756     } <span class="comment">/* end if SERVER */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   572
<a name="l00757"></a>00757     <span class="keywordflow">else</span> { <span class="comment">/* if CLIENT */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   573
<a name="l00758"></a>00758       <span class="comment">/* I am CLIENT */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   574
<a name="l00759"></a>00759       <span class="comment">/* It is a request for a previous upload segment. We should find a line opened for this.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   575
<a name="l00760"></a>00760       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   576
<a name="l00761"></a>00761       <span class="keywordflow">if</span> (!err)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   577
<a name="l00762"></a>00762         err = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   578
<a name="l00763"></a>00763       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   579
<a name="l00764"></a>00764         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A75, <span class="stringliteral">"SDO error : Received segment response for unknown trans. from nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   580
<a name="l00765"></a>00765         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   581
<a name="l00766"></a>00766         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   582
<a name="l00767"></a>00767       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   583
<a name="l00768"></a>00768       <span class="comment">/* Reset the wathdog */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   584
<a name="l00769"></a>00769       <a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">RestartSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   585
<a name="l00770"></a>00770       index = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   586
<a name="l00771"></a>00771       subIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   587
<a name="l00772"></a>00772       <span class="comment">/* test of the toggle; */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   588
<a name="l00773"></a>00773       <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> != <a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">getSDOt</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   589
<a name="l00774"></a>00774         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A76, <span class="stringliteral">"SDO error : Received segment response Toggle error. from nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   590
<a name="l00775"></a>00775         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#d80b624c5c5760190d82246e7b04d239">SDOABT_TOGGLE_NOT_ALTERNED</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   591
<a name="l00776"></a>00776         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   592
<a name="l00777"></a>00777       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   593
<a name="l00778"></a>00778       <span class="comment">/* nb of data to be uploaded */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   594
<a name="l00779"></a>00779       nbBytes = 7 - <a class="code" href="sdo_8c.html#e5677ca12bfb71b06cbd6e99e9be0955">getSDOn3</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   595
<a name="l00780"></a>00780       <span class="comment">/* Storing the data in the line structure. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   596
<a name="l00781"></a>00781       err = <a class="code" href="sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694">SDOtoLine</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, (*m).data + 1);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   597
<a name="l00782"></a>00782       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   598
<a name="l00783"></a>00783         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   599
<a name="l00784"></a>00784         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   600
<a name="l00785"></a>00785       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   601
<a name="l00786"></a>00786       <span class="comment">/* Inverting the toggle for the next segment. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   602
<a name="l00787"></a>00787       <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> = ! <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &amp; 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   603
<a name="l00788"></a>00788       <span class="comment">/* If it was the last segment,*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   604
<a name="l00789"></a>00789       <span class="keywordflow">if</span> ( <a class="code" href="sdo_8c.html#e5a2dafe8497bff1fd88f881ea74414d">getSDOc</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   605
<a name="l00790"></a>00790         <span class="comment">/* Put in state finished */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   606
<a name="l00791"></a>00791         <span class="comment">/* The code is safe for the case e=s=0 in initiate frame. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   607
<a name="l00792"></a>00792         <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   608
<a name="l00793"></a>00793         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   609
<a name="l00794"></a>00794         <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>) (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   610
<a name="l00795"></a>00795         
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   611
<a name="l00796"></a>00796         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A77, <span class="stringliteral">"SDO. End of upload from node : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   612
<a name="l00797"></a>00797       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   613
<a name="l00798"></a>00798       <span class="keywordflow">else</span> { <span class="comment">/* more segments to receive */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   614
<a name="l00799"></a>00799              <span class="comment">/* Sending the request for the next segment. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   615
<a name="l00800"></a>00800         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   616
<a name="l00801"></a>00801         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (3 &lt;&lt; 5) | (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   617
<a name="l00802"></a>00802         <span class="keywordflow">for</span> (i = 1 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   618
<a name="l00803"></a>00803           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   619
<a name="l00804"></a>00804         <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   620
<a name="l00805"></a>00805         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A78, <span class="stringliteral">"SDO send upload segment request to nodeId"</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   621
<a name="l00806"></a>00806       }            
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   622
<a name="l00807"></a>00807     } <span class="comment">/* End if CLIENT */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   623
<a name="l00808"></a>00808     <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   624
<a name="l00809"></a>00809 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   625
<a name="l00810"></a>00810   <span class="keywordflow">case</span> 1:
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   626
<a name="l00811"></a>00811     <span class="comment">/* I am SERVER */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   627
<a name="l00812"></a>00812     <span class="comment">/* Receive of an initiate download */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   628
<a name="l00813"></a>00813     <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   629
<a name="l00814"></a>00814       index = <a class="code" href="sdo_8c.html#d9b34e26bf67f1251f3bb364756e17f1">getSDOindex</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[1],m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[2]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   630
<a name="l00815"></a>00815       subIndex = <a class="code" href="sdo_8c.html#52a96f6fa6083f6b291133135b7155a8">getSDOsubIndex</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[3]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   631
<a name="l00816"></a>00816       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A79, <span class="stringliteral">"Received SDO Initiate Download (to store data) defined at index 0x1200 + "</span>, 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   632
<a name="l00817"></a>00817               nodeId); 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   633
<a name="l00818"></a>00818       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A80, <span class="stringliteral">"Writing at index : "</span>, index);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   634
<a name="l00819"></a>00819       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A80, <span class="stringliteral">"Writing at subIndex : "</span>, subIndex);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   635
<a name="l00820"></a>00820       
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   636
<a name="l00821"></a>00821       <span class="comment">/* Search if a SDO transfert have been yet initiated */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   637
<a name="l00822"></a>00822       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   638
<a name="l00823"></a>00823       <span class="keywordflow">if</span> (! err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   639
<a name="l00824"></a>00824         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A81, <span class="stringliteral">"SDO error : Transmission yet started."</span>, 0); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   640
<a name="l00825"></a>00825         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   641
<a name="l00826"></a>00826         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   642
<a name="l00827"></a>00827       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   643
<a name="l00828"></a>00828       <span class="comment">/* No line on use. Great ! */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   644
<a name="l00829"></a>00829       <span class="comment">/* Try to open a new line. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   645
<a name="l00830"></a>00830       err = <a class="code" href="sdo_8c.html#58d1f9691977617601beb9e5b4123252">getSDOfreeLine</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   646
<a name="l00831"></a>00831       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   647
<a name="l00832"></a>00832         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A82, <span class="stringliteral">"SDO error : No line free, too many SDO in progress. Aborted."</span>, 0);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   648
<a name="l00833"></a>00833         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   649
<a name="l00834"></a>00834         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   650
<a name="l00835"></a>00835       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   651
<a name="l00836"></a>00836       <a class="code" href="sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d">initSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nodeId, index, subIndex, <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a>);      
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   652
<a name="l00837"></a>00837 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   653
<a name="l00838"></a>00838       <span class="keywordflow">if</span> (<a class="code" href="sdo_8c.html#cf60675f20de8746e279dce3a5c8e3c6">getSDOe</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) { <span class="comment">/* If SDO expedited */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   654
<a name="l00839"></a>00839         <span class="comment">/* nb of data to be downloaded */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   655
<a name="l00840"></a>00840         nbBytes = 4 - <a class="code" href="sdo_8c.html#dfd3877d80f6b903b491a115e587bd14">getSDOn2</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   656
<a name="l00841"></a>00841         <span class="comment">/* Storing the data in the line structure. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   657
<a name="l00842"></a>00842         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> = nbBytes;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   658
<a name="l00843"></a>00843         err = <a class="code" href="sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694">SDOtoLine</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, (*m).data + 4);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   659
<a name="l00844"></a>00844         
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   660
<a name="l00845"></a>00845         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   661
<a name="l00846"></a>00846           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   662
<a name="l00847"></a>00847           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   663
<a name="l00848"></a>00848         }         
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   664
<a name="l00849"></a>00849 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   665
<a name="l00850"></a>00850         <span class="comment">/* SDO expedited -&gt; transfert finished. Data can be stored in the dictionary. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   666
<a name="l00851"></a>00851         <span class="comment">/*The line will be reseted when it is downloading in the dictionary. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   667
<a name="l00852"></a>00852         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A83, <span class="stringliteral">"SDO Initiate Download is an expedited transfert. Finished.: "</span>, nodeId);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   668
<a name="l00853"></a>00853         <span class="comment">/* Transfering line data to object dictionary. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   669
<a name="l00854"></a>00854         errorCode = <a class="code" href="sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58">SDOlineToObjdict</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   670
<a name="l00855"></a>00855         <span class="keywordflow">if</span> (errorCode) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   671
<a name="l00856"></a>00856           <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A84, <span class="stringliteral">"SDO error : Unable to copy the data in the object dictionary"</span>, 0); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   672
<a name="l00857"></a>00857           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, errorCode);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   673
<a name="l00858"></a>00858           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   674
<a name="l00859"></a>00859         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   675
<a name="l00860"></a>00860         <span class="comment">/* Release of the line. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   676
<a name="l00861"></a>00861         <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   677
<a name="l00862"></a>00862       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   678
<a name="l00863"></a>00863       <span class="keywordflow">else</span> {<span class="comment">/* So, if it is not an expedited transfert */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   679
<a name="l00864"></a>00864         <span class="keywordflow">if</span> (<a class="code" href="sdo_8c.html#f7f9e9bc3d59c9772d4c767b199dcf89">getSDOs</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   680
<a name="l00865"></a>00865           <span class="comment">/* TODO : if e and s = 0, not reading m-&gt;data[4] but put nbBytes = 0 */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   681
<a name="l00866"></a>00866           nbBytes = m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[4]; <span class="comment">/* Transfert limited to 255 bytes. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   682
<a name="l00867"></a>00867           err = <a class="code" href="sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810">setSDOlineRestBytes</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   683
<a name="l00868"></a>00868           <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   684
<a name="l00869"></a>00869             <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   685
<a name="l00870"></a>00870             <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   686
<a name="l00871"></a>00871           }     
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   687
<a name="l00872"></a>00872         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   688
<a name="l00873"></a>00873       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   689
<a name="l00874"></a>00874       <span class="comment">/*Sending a SDO, cs=3*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   690
<a name="l00875"></a>00875       sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = *<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#e5c35e97a1061bb9737359cc12192269">bDeviceNodeId</a>; <span class="comment">/* The node id of the server, (here it is the sender).*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   691
<a name="l00876"></a>00876       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = 3 &lt;&lt; 5;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   692
<a name="l00877"></a>00877       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[1] = index &amp; 0xFF;        <span class="comment">/* LSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   693
<a name="l00878"></a>00878       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[2] = (index &gt;&gt; 8) &amp; 0xFF; <span class="comment">/* MSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   694
<a name="l00879"></a>00879       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[3] = subIndex;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   695
<a name="l00880"></a>00880       <span class="keywordflow">for</span> (i = 4 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   696
<a name="l00881"></a>00881                 sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   697
<a name="l00882"></a>00882       <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   698
<a name="l00883"></a>00883     } <span class="comment">/* end if I am SERVER */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   699
<a name="l00884"></a>00884     <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   700
<a name="l00885"></a>00885       <span class="comment">/* I am CLIENT */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   701
<a name="l00886"></a>00886       <span class="comment">/* It is a response for a previous download segment. We should find a line opened for this. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   702
<a name="l00887"></a>00887       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   703
<a name="l00888"></a>00888       <span class="keywordflow">if</span> (!err)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   704
<a name="l00889"></a>00889         err = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   705
<a name="l00890"></a>00890       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   706
<a name="l00891"></a>00891         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A85, <span class="stringliteral">"SDO error : Received segment response for unknown trans. from nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   707
<a name="l00892"></a>00892         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   708
<a name="l00893"></a>00893         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   709
<a name="l00894"></a>00894       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   710
<a name="l00895"></a>00895       <span class="comment">/* Reset the wathdog */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   711
<a name="l00896"></a>00896       <a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">RestartSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   712
<a name="l00897"></a>00897       index = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   713
<a name="l00898"></a>00898       subIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   714
<a name="l00899"></a>00899       <span class="comment">/* test of the toggle; */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   715
<a name="l00900"></a>00900       <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> != <a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">getSDOt</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   716
<a name="l00901"></a>00901         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A86, <span class="stringliteral">"SDO error : Received segment response Toggle error. from nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   717
<a name="l00902"></a>00902         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#d80b624c5c5760190d82246e7b04d239">SDOABT_TOGGLE_NOT_ALTERNED</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   718
<a name="l00903"></a>00903         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   719
<a name="l00904"></a>00904       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   720
<a name="l00905"></a>00905 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   721
<a name="l00906"></a>00906       <span class="comment">/* End transmission or downloading next segment. We need to know if it will be the last one. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   722
<a name="l00907"></a>00907       <a class="code" href="sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f">getSDOlineRestBytes</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, &amp;nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   723
<a name="l00908"></a>00908       <span class="keywordflow">if</span> (nbBytes == 0) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   724
<a name="l00909"></a>00909         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A87, <span class="stringliteral">"SDO End download. segment response received. OK. from nodeId"</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   725
<a name="l00910"></a>00910         <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   726
<a name="l00911"></a>00911         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   727
<a name="l00912"></a>00912         <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>) (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   728
<a name="l00913"></a>00913         <span class="keywordflow">return</span> 0x00;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   729
<a name="l00914"></a>00914       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   730
<a name="l00915"></a>00915       <span class="comment">/* At least one transfer to send. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   731
<a name="l00916"></a>00916       <span class="keywordflow">if</span> (nbBytes &gt; 7) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   732
<a name="l00917"></a>00917         <span class="comment">/* several segments to download.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   733
<a name="l00918"></a>00918         <span class="comment">/* code to send the next segment. (cs = 0; c = 0) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   734
<a name="l00919"></a>00919         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> = ! <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &amp; 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   735
<a name="l00920"></a>00920         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; <span class="comment">/* The server node Id; */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   736
<a name="l00921"></a>00921         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   737
<a name="l00922"></a>00922         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, 7, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 1);  
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   738
<a name="l00923"></a>00923         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   739
<a name="l00924"></a>00924           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   740
<a name="l00925"></a>00925           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   741
<a name="l00926"></a>00926         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   742
<a name="l00927"></a>00927       } 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   743
<a name="l00928"></a>00928       <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   744
<a name="l00929"></a>00929         <span class="comment">/* Last segment. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   745
<a name="l00930"></a>00930         <span class="comment">/* code to send the last segment. (cs = 0; c = 1)*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   746
<a name="l00931"></a>00931         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> = ! <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &amp; 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   747
<a name="l00932"></a>00932         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; <span class="comment">/* The server node Id; */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   748
<a name="l00933"></a>00933         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4) | ((7 - nbBytes) &lt;&lt; 1) | 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   749
<a name="l00934"></a>00934         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 1);    
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   750
<a name="l00935"></a>00935         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   751
<a name="l00936"></a>00936           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   752
<a name="l00937"></a>00937           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   753
<a name="l00938"></a>00938         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   754
<a name="l00939"></a>00939         <span class="keywordflow">for</span> (i = nbBytes + 1 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   755
<a name="l00940"></a>00940           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   756
<a name="l00941"></a>00941       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   757
<a name="l00942"></a>00942       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A88, <span class="stringliteral">"SDO sending download segment to nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   758
<a name="l00943"></a>00943       <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   759
<a name="l00944"></a>00944     } <span class="comment">/* end if I am a CLIENT */</span>                          
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   760
<a name="l00945"></a>00945     <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   761
<a name="l00946"></a>00946 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   762
<a name="l00947"></a>00947   <span class="keywordflow">case</span> 2:
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   763
<a name="l00948"></a>00948     <span class="comment">/* I am SERVER */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   764
<a name="l00949"></a>00949     <span class="comment">/* Receive of an initiate upload.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   765
<a name="l00950"></a>00950     <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   766
<a name="l00951"></a>00951       index = <a class="code" href="sdo_8c.html#d9b34e26bf67f1251f3bb364756e17f1">getSDOindex</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[1],m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[2]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   767
<a name="l00952"></a>00952       subIndex = <a class="code" href="sdo_8c.html#52a96f6fa6083f6b291133135b7155a8">getSDOsubIndex</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[3]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   768
<a name="l00953"></a>00953       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A89, <span class="stringliteral">"Received SDO Initiate upload (to send data) defined at index 0x1200 + "</span>, 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   769
<a name="l00954"></a>00954               nodeId); 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   770
<a name="l00955"></a>00955       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A90, <span class="stringliteral">"Reading at index : "</span>, index);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   771
<a name="l00956"></a>00956       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A91, <span class="stringliteral">"Reading at subIndex : "</span>, subIndex);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   772
<a name="l00957"></a>00957       <span class="comment">/* Search if a SDO transfert have been yet initiated*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   773
<a name="l00958"></a>00958       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   774
<a name="l00959"></a>00959       <span class="keywordflow">if</span> (! err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   775
<a name="l00960"></a>00960             <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A92, <span class="stringliteral">"SDO error : Transmission yet started at line : "</span>, line); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   776
<a name="l00961"></a>00961         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A93, <span class="stringliteral">"nodeId = "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   777
<a name="l00962"></a>00962             <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   778
<a name="l00963"></a>00963             <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   779
<a name="l00964"></a>00964       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   780
<a name="l00965"></a>00965       <span class="comment">/* No line on use. Great !*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   781
<a name="l00966"></a>00966       <span class="comment">/* Try to open a new line.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   782
<a name="l00967"></a>00967       err = <a class="code" href="sdo_8c.html#58d1f9691977617601beb9e5b4123252">getSDOfreeLine</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   783
<a name="l00968"></a>00968       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   784
<a name="l00969"></a>00969         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A71, <span class="stringliteral">"SDO error : No line free, too many SDO in progress. Aborted."</span>, 0);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   785
<a name="l00970"></a>00970         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   786
<a name="l00971"></a>00971         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   787
<a name="l00972"></a>00972       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   788
<a name="l00973"></a>00973       <a class="code" href="sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d">initSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nodeId, index, subIndex, <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   789
<a name="l00974"></a>00974       <span class="comment">/* Transfer data from dictionary to the line structure. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   790
<a name="l00975"></a>00975       errorCode = <a class="code" href="sdo_8c.html#29427a80fd1aeabff30bf0602fbc220f">objdictToSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   791
<a name="l00976"></a>00976      
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   792
<a name="l00977"></a>00977       <span class="keywordflow">if</span> (errorCode) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   793
<a name="l00978"></a>00978         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A94, <span class="stringliteral">"SDO error : Unable to copy the data from object dictionary. Err code : "</span>, 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   794
<a name="l00979"></a>00979                 errorCode); 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   795
<a name="l00980"></a>00980         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, errorCode);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   796
<a name="l00981"></a>00981         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   797
<a name="l00982"></a>00982         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   798
<a name="l00983"></a>00983       <span class="comment">/* Preparing the response.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   799
<a name="l00984"></a>00984       <a class="code" href="sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f">getSDOlineRestBytes</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, &amp;nbBytes);   <span class="comment">/* Nb bytes to transfer ? */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   800
<a name="l00985"></a>00985       sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; <span class="comment">/* The server node Id; */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   801
<a name="l00986"></a>00986       <span class="keywordflow">if</span> (nbBytes &gt; 4) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   802
<a name="l00987"></a>00987         <span class="comment">/* normal transfert. (segmented). */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   803
<a name="l00988"></a>00988         <span class="comment">/* code to send the initiate upload response. (cs = 2) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   804
<a name="l00989"></a>00989         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (2 &lt;&lt; 5) | 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   805
<a name="l00990"></a>00990         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[1] = index &amp; 0xFF;        <span class="comment">/* LSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   806
<a name="l00991"></a>00991         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[2] = (index &gt;&gt; 8) &amp; 0xFF; <span class="comment">/* MSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   807
<a name="l00992"></a>00992         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[3] = subIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   808
<a name="l00993"></a>00993         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[4] = nbBytes; <span class="comment">/* Limitation of canfestival2 : Max tranfert is 256 bytes.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   809
<a name="l00994"></a>00994         <span class="comment">/* It takes too much memory to upgrate to 2^32 because the size of data is also coded */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   810
<a name="l00995"></a>00995         <span class="comment">/* in the object dictionary, at every index and subindex. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   811
<a name="l00996"></a>00996         <span class="keywordflow">for</span> (i = 5 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   812
<a name="l00997"></a>00997           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   813
<a name="l00998"></a>00998         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A95, <span class="stringliteral">"SDO. Sending normal upload initiate response defined at index 0x1200 + "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   814
<a name="l00999"></a>00999         <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   815
<a name="l01000"></a>01000       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   816
<a name="l01001"></a>01001       <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   817
<a name="l01002"></a>01002         <span class="comment">/* Expedited upload. (cs = 2 ; e = 1) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   818
<a name="l01003"></a>01003         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (2 &lt;&lt; 5) | ((4 - nbBytes) &lt;&lt; 2) | 3;  
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   819
<a name="l01004"></a>01004         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[1] = index &amp; 0xFF;        <span class="comment">/* LSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   820
<a name="l01005"></a>01005         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[2] = (index &gt;&gt; 8) &amp; 0xFF; <span class="comment">/* MSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   821
<a name="l01006"></a>01006         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[3] = subIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   822
<a name="l01007"></a>01007         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 4);    
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   823
<a name="l01008"></a>01008         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   824
<a name="l01009"></a>01009           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   825
<a name="l01010"></a>01010           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   826
<a name="l01011"></a>01011         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   827
<a name="l01012"></a>01012         <span class="keywordflow">for</span> (i = 4 + nbBytes ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   828
<a name="l01013"></a>01013           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   829
<a name="l01014"></a>01014         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A96, <span class="stringliteral">"SDO. Sending expedited upload initiate response defined at index 0x1200 + "</span>, 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   830
<a name="l01015"></a>01015                 nodeId); 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   831
<a name="l01016"></a>01016         <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   832
<a name="l01017"></a>01017         <span class="comment">/* Release the line.*/</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   833
<a name="l01018"></a>01018         <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(d, line);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   834
<a name="l01019"></a>01019       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   835
<a name="l01020"></a>01020     } <span class="comment">/* end if I am SERVER*/</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   836
<a name="l01021"></a>01021     <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   837
<a name="l01022"></a>01022       <span class="comment">/* I am CLIENT */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   838
<a name="l01023"></a>01023       <span class="comment">/* It is the response for the previous initiate upload request.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   839
<a name="l01024"></a>01024       <span class="comment">/* We should find a line opened for this. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   840
<a name="l01025"></a>01025       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   841
<a name="l01026"></a>01026       <span class="keywordflow">if</span> (!err)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   842
<a name="l01027"></a>01027         err = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   843
<a name="l01028"></a>01028       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   844
<a name="l01029"></a>01029         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1A97, <span class="stringliteral">"SDO error : Received response for unknown upload request from nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   845
<a name="l01030"></a>01030         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   846
<a name="l01031"></a>01031         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   847
<a name="l01032"></a>01032       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   848
<a name="l01033"></a>01033       <span class="comment">/* Reset the wathdog */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   849
<a name="l01034"></a>01034       <a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">RestartSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   850
<a name="l01035"></a>01035       index = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   851
<a name="l01036"></a>01036       subIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   852
<a name="l01037"></a>01037       
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   853
<a name="l01038"></a>01038       <span class="keywordflow">if</span> (<a class="code" href="sdo_8c.html#cf60675f20de8746e279dce3a5c8e3c6">getSDOe</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) { <span class="comment">/* If SDO expedited */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   854
<a name="l01039"></a>01039         <span class="comment">/* nb of data to be uploaded */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   855
<a name="l01040"></a>01040           nbBytes = 4 - <a class="code" href="sdo_8c.html#dfd3877d80f6b903b491a115e587bd14">getSDOn2</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0]);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   856
<a name="l01041"></a>01041         <span class="comment">/* Storing the data in the line structure. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   857
<a name="l01042"></a>01042         err = <a class="code" href="sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694">SDOtoLine</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, (*m).data + 4);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   858
<a name="l01043"></a>01043         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   859
<a name="l01044"></a>01044           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   860
<a name="l01045"></a>01045           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   861
<a name="l01046"></a>01046         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   862
<a name="l01047"></a>01047         <span class="comment">/* SDO expedited -&gt; transfert finished. data are available via  getReadResultNetworkDict(). */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   863
<a name="l01048"></a>01048         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A98, <span class="stringliteral">"SDO expedited upload finished. Response received from node : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   864
<a name="l01049"></a>01049         <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   865
<a name="l01050"></a>01050         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> = nbBytes;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   866
<a name="l01051"></a>01051         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   867
<a name="l01052"></a>01052         <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>) (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   868
<a name="l01053"></a>01053         <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   869
<a name="l01054"></a>01054       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   870
<a name="l01055"></a>01055       <span class="keywordflow">else</span> { <span class="comment">/* So, if it is not an expedited transfert */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   871
<a name="l01056"></a>01056         <span class="comment">/* Storing the nb of data to receive. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   872
<a name="l01057"></a>01057         <span class="keywordflow">if</span> (<a class="code" href="sdo_8c.html#f7f9e9bc3d59c9772d4c767b199dcf89">getSDOs</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   873
<a name="l01058"></a>01058           nbBytes = m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[4]; <span class="comment">/* Remember the limitation to 255 bytes to transfert */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   874
<a name="l01059"></a>01059           err = <a class="code" href="sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810">setSDOlineRestBytes</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   875
<a name="l01060"></a>01060           <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   876
<a name="l01061"></a>01061             <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   877
<a name="l01062"></a>01062             <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   878
<a name="l01063"></a>01063           }     
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   879
<a name="l01064"></a>01064         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   880
<a name="l01065"></a>01065         <span class="comment">/* Requesting next segment. (cs = 3) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   881
<a name="l01066"></a>01066         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   882
<a name="l01067"></a>01067         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = 3 &lt;&lt; 5;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   883
<a name="l01068"></a>01068         <span class="keywordflow">for</span> (i = 1 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   884
<a name="l01069"></a>01069           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   885
<a name="l01070"></a>01070         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3A99, <span class="stringliteral">"SDO. Sending upload segment request to node : "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   886
<a name="l01071"></a>01071         <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo);  
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   887
<a name="l01072"></a>01072       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   888
<a name="l01073"></a>01073     } <span class="comment">/* End if CLIENT */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   889
<a name="l01074"></a>01074     <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   890
<a name="l01075"></a>01075 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   891
<a name="l01076"></a>01076   <span class="keywordflow">case</span> 3:
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   892
<a name="l01077"></a>01077     <span class="comment">/* I am SERVER */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   893
<a name="l01078"></a>01078     <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   894
<a name="l01079"></a>01079       <span class="comment">/* Receiving a upload segment. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   895
<a name="l01080"></a>01080       <span class="comment">/* A SDO transfert should have been yet initiated. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   896
<a name="l01081"></a>01081       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line ); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   897
<a name="l01082"></a>01082       <span class="keywordflow">if</span> (!err)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   898
<a name="l01083"></a>01083         err = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   899
<a name="l01084"></a>01084       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   900
<a name="l01085"></a>01085         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AA0, <span class="stringliteral">"SDO error : Received upload segment for unstarted trans. index 0x1200 + "</span>, 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   901
<a name="l01086"></a>01086                 nodeId); 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   902
<a name="l01087"></a>01087         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   903
<a name="l01088"></a>01088         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   904
<a name="l01089"></a>01089       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   905
<a name="l01090"></a>01090       <span class="comment">/* Reset the wathdog */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   906
<a name="l01091"></a>01091       <a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">RestartSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   907
<a name="l01092"></a>01092       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA1, <span class="stringliteral">"Received SDO upload segment defined at index 0x1200 + "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   908
<a name="l01093"></a>01093       index = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   909
<a name="l01094"></a>01094       subIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   910
<a name="l01095"></a>01095       <span class="comment">/* Toggle test.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   911
<a name="l01096"></a>01096       <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> != <a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">getSDOt</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   912
<a name="l01097"></a>01097         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AA2, <span class="stringliteral">"SDO error : Toggle error : "</span>, <a class="code" href="sdo_8c.html#464b29fd628d92426de0a841232bdd12">getSDOt</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0])); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   913
<a name="l01098"></a>01098         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#d80b624c5c5760190d82246e7b04d239">SDOABT_TOGGLE_NOT_ALTERNED</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   914
<a name="l01099"></a>01099         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   915
<a name="l01100"></a>01100       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   916
<a name="l01101"></a>01101       <span class="comment">/* Uploading next segment. We need to know if it will be the last one. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   917
<a name="l01102"></a>01102       <a class="code" href="sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f">getSDOlineRestBytes</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, &amp;nbBytes);             
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   918
<a name="l01103"></a>01103       <span class="keywordflow">if</span> (nbBytes &gt; 7) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   919
<a name="l01104"></a>01104         <span class="comment">/* The segment to transfer is not the last one.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   920
<a name="l01105"></a>01105         <span class="comment">/* code to send the next segment. (cs = 0; c = 0) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   921
<a name="l01106"></a>01106         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; <span class="comment">/* The server node Id; */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   922
<a name="l01107"></a>01107         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   923
<a name="l01108"></a>01108         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, 7, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 1);  
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   924
<a name="l01109"></a>01109         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   925
<a name="l01110"></a>01110           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   926
<a name="l01111"></a>01111           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   927
<a name="l01112"></a>01112         }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   928
<a name="l01113"></a>01113         <span class="comment">/* Inverting the toggle for the next tranfert. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   929
<a name="l01114"></a>01114         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> = ! <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &amp; 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   930
<a name="l01115"></a>01115         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA3, <span class="stringliteral">"SDO. Sending upload segment defined at index 0x1200 + "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   931
<a name="l01116"></a>01116         <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   932
<a name="l01117"></a>01117       } 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   933
<a name="l01118"></a>01118       <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   934
<a name="l01119"></a>01119         <span class="comment">/* Last segment. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   935
<a name="l01120"></a>01120         <span class="comment">/* code to send the last segment. (cs = 0; c = 1) */</span>        
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   936
<a name="l01121"></a>01121         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   937
<a name="l01122"></a>01122         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4) | ((7 - nbBytes) &lt;&lt; 1) | 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   938
<a name="l01123"></a>01123         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 1);    
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   939
<a name="l01124"></a>01124         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   940
<a name="l01125"></a>01125           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   941
<a name="l01126"></a>01126           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   942
<a name="l01127"></a>01127         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   943
<a name="l01128"></a>01128         <span class="keywordflow">for</span> (i = nbBytes + 1 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   944
<a name="l01129"></a>01129           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   945
<a name="l01130"></a>01130         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA4, <span class="stringliteral">"SDO. Sending last upload segment defined at index 0x1200 + "</span>, nodeId);      
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   946
<a name="l01131"></a>01131         <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   947
<a name="l01132"></a>01132         <span class="comment">/* Release the line */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   948
<a name="l01133"></a>01133         <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(d, line);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   949
<a name="l01134"></a>01134       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   950
<a name="l01135"></a>01135     } <span class="comment">/* end if SERVER*/</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   951
<a name="l01136"></a>01136     <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   952
<a name="l01137"></a>01137       <span class="comment">/* I am CLIENT */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   953
<a name="l01138"></a>01138       <span class="comment">/* It is the response for the previous initiate download request. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   954
<a name="l01139"></a>01139       <span class="comment">/* We should find a line opened for this. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   955
<a name="l01140"></a>01140       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   956
<a name="l01141"></a>01141       <span class="keywordflow">if</span> (!err)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   957
<a name="l01142"></a>01142         err = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   958
<a name="l01143"></a>01143       <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   959
<a name="l01144"></a>01144         <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AA5, <span class="stringliteral">"SDO error : Received response for unknown download request from nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   960
<a name="l01145"></a>01145         <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, 0, 0, <a class="code" href="def_8h.html#192178577e5164ef0985d49522338c80">SDOABT_LOCAL_CTRL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   961
<a name="l01146"></a>01146         <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   962
<a name="l01147"></a>01147       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   963
<a name="l01148"></a>01148       <span class="comment">/* Reset the watchdog */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   964
<a name="l01149"></a>01149       <a class="code" href="sdo_8c.html#b3938a9884014e96cafc42aeee743c0f">RestartSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   965
<a name="l01150"></a>01150       index = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#36eca18553634876a27fc4b89578e3bc">index</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   966
<a name="l01151"></a>01151       subIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#fca5916593f97eb6d006fe11c7b28983">subIndex</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   967
<a name="l01152"></a>01152       <span class="comment">/* End transmission or requesting  next segment. */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   968
<a name="l01153"></a>01153       <a class="code" href="sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f">getSDOlineRestBytes</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, &amp;nbBytes);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   969
<a name="l01154"></a>01154       <span class="keywordflow">if</span> (nbBytes == 0) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   970
<a name="l01155"></a>01155         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA6, <span class="stringliteral">"SDO End download expedited. Response received. from nodeId"</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   971
<a name="l01156"></a>01156         <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   972
<a name="l01157"></a>01157         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   973
<a name="l01158"></a>01158         <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>) (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   974
<a name="l01159"></a>01159         <span class="keywordflow">return</span> 0x00;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   975
<a name="l01160"></a>01160       }   
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   976
<a name="l01161"></a>01161       <span class="keywordflow">if</span> (nbBytes &gt; 7) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   977
<a name="l01162"></a>01162         <span class="comment">/* more than one request to send */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   978
<a name="l01163"></a>01163         <span class="comment">/* code to send the next segment. (cs = 0; c = 0)       */</span>    
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   979
<a name="l01164"></a>01164         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   980
<a name="l01165"></a>01165         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   981
<a name="l01166"></a>01166         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, 7, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 1);  
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   982
<a name="l01167"></a>01167         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   983
<a name="l01168"></a>01168           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   984
<a name="l01169"></a>01169           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   985
<a name="l01170"></a>01170         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   986
<a name="l01171"></a>01171       } 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   987
<a name="l01172"></a>01172       <span class="keywordflow">else</span> {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   988
<a name="l01173"></a>01173         <span class="comment">/* Last segment.*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   989
<a name="l01174"></a>01174         <span class="comment">/* code to send the last segment. (cs = 0; c = 1)       */</span>   
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   990
<a name="l01175"></a>01175         sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId; <span class="comment">/* The server node Id; */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   991
<a name="l01176"></a>01176         sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#8b43e3d56cae7eb574d239f85b6aebb2">toggle</a> &lt;&lt; 4) | ((7 - nbBytes) &lt;&lt; 1) | 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   992
<a name="l01177"></a>01177         err = <a class="code" href="sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065">lineToSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nbBytes, sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a> + 1);    
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   993
<a name="l01178"></a>01178         <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   994
<a name="l01179"></a>01179           <a class="code" href="sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9">failedSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, index, subIndex, <a class="code" href="def_8h.html#467b188db8d383136b771267dcc22e68">SDOABT_GENERAL_ERROR</a>);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   995
<a name="l01180"></a>01180           <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   996
<a name="l01181"></a>01181         }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   997
<a name="l01182"></a>01182         <span class="keywordflow">for</span> (i = nbBytes + 1 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
   998
<a name="l01183"></a>01183           sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
   999
<a name="l01184"></a>01184       }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1000
<a name="l01185"></a>01185       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA7, <span class="stringliteral">"SDO sending download segment to nodeId"</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1001
<a name="l01186"></a>01186       <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, whoami, sdo); 
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
  1002
<a name="l01187"></a>01187 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1003
<a name="l01188"></a>01188     } <span class="comment">/* end if I am a CLIENT           */</span>        
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1004
<a name="l01189"></a>01189     <span class="keywordflow">break</span>;  
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1005
<a name="l01190"></a>01190 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1006
<a name="l01191"></a>01191    <span class="keywordflow">case</span> 4:
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1007
<a name="l01192"></a>01192      abortCode = (*m).data[3] |
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1008
<a name="l01193"></a>01193       ((<a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>)m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[5] &lt;&lt; 8) |
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1009
<a name="l01194"></a>01194       ((<a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>)m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[6] &lt;&lt; 16) |
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1010
<a name="l01195"></a>01195       ((<a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>)m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[7] &lt;&lt; 24);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1011
<a name="l01196"></a>01196     <span class="comment">/* Received SDO abort. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1012
<a name="l01197"></a>01197     <span class="comment">/* Looking for the line concerned. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1013
<a name="l01198"></a>01198     <span class="keywordflow">if</span> (whoami == <a class="code" href="def_8h.html#ee9faae3a3109b64e4987acb6eaa38b1">SDO_SERVER</a>) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1014
<a name="l01199"></a>01199       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1015
<a name="l01200"></a>01200       <span class="keywordflow">if</span> (!err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1016
<a name="l01201"></a>01201         <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line );
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1017
<a name="l01202"></a>01202         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA8, <span class="stringliteral">"SD0. Received SDO abort. Line released. Code : "</span>, abortCode);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1018
<a name="l01203"></a>01203       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1019
<a name="l01204"></a>01204       <span class="keywordflow">else</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1020
<a name="l01205"></a>01205         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AA9, <span class="stringliteral">"SD0. Received SDO abort. No line found. Code : "</span>, abortCode);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1021
<a name="l01206"></a>01206       <span class="comment">/* Tips : The end user has no way to know that the server node has received an abort SDO. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1022
<a name="l01207"></a>01207       <span class="comment">/* Its is ok, I think.*/</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1023
<a name="l01208"></a>01208     }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1024
<a name="l01209"></a>01209     <span class="keywordflow">else</span> { <span class="comment">/* If I am CLIENT */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1025
<a name="l01210"></a>01210       err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, whoami, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1026
<a name="l01211"></a>01211       <span class="keywordflow">if</span> (!err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1027
<a name="l01212"></a>01212         <span class="comment">/* The line *must* be released by the core program. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1028
<a name="l01213"></a>01213         <a class="code" href="sdo_8c.html#b90f05aac908e8eee39a34b3e21e0ea9">StopSDO_TIMER</a>(line)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1029
<a name="l01214"></a>01214         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> = <a class="code" href="def_8h.html#fbea04ded6a0ca1dfd63637bce9e0200">SDO_ABORTED_RCV</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1030
<a name="l01215"></a>01215         <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#214694408d5f6e87695807efd2cfbc47">abortCode</a> = abortCode;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1031
<a name="l01216"></a>01216         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AB0, <span class="stringliteral">"SD0. Received SDO abort. Line state ABORTED. Code : "</span>, abortCode);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1032
<a name="l01217"></a>01217         <span class="keywordflow">if</span>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>) (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a>)(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1033
<a name="l01218"></a>01218       }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1034
<a name="l01219"></a>01219       <span class="keywordflow">else</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1035
<a name="l01220"></a>01220         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AB1, <span class="stringliteral">"SD0. Received SDO abort. No line found. Code : "</span>, abortCode);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1036
<a name="l01221"></a>01221     } 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1037
<a name="l01222"></a>01222     <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1038
<a name="l01223"></a>01223   <span class="keywordflow">default</span>:
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1039
<a name="l01224"></a>01224     <span class="comment">/* Error : Unknown cs */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1040
<a name="l01225"></a>01225     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AB2, <span class="stringliteral">"SDO. Received unknown command specifier : "</span>, <a class="code" href="sdo_8c.html#ce5a1634ff4089db3b228cdd5010c321">getSDOcs</a>(m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[0]));
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1041
<a name="l01226"></a>01226     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1042
<a name="l01227"></a>01227 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1043
<a name="l01228"></a>01228   } <span class="comment">/* End switch */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1044
<a name="l01229"></a>01229   <span class="keywordflow">return</span> 0;     
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1045
<a name="l01230"></a>01230 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1046
<a name="l01231"></a>01231 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1047
<a name="l01247"></a><a class="code" href="dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a">01247</a> <a class="code" href="sdo_8c.html#2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a">_writeNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1048
<a name="l01248"></a>01248                        <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> count, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <span class="keywordtype">void</span> *data, <a class="code" href="sdo_8h.html#606eccfef67e572723e1efba3f0d87ba">SDOCallback_t</a> Callback, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> endianize)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1049
<a name="l01249"></a>01249 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1050
<a name="l01250"></a>01250   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1051
<a name="l01251"></a>01251   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> SDOfound = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1052
<a name="l01252"></a>01252   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1053
<a name="l01253"></a>01253   <a class="code" href="structstruct__s__SDO.html">s_SDO</a> sdo;    <span class="comment">/* SDO to transmit */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1054
<a name="l01254"></a>01254   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i, j;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1055
<a name="l01255"></a>01255   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a>     lastIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1056
<a name="l01256"></a>01256   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a>     offset;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1057
<a name="l01257"></a>01257   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>      *pNodeIdServer;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1058
<a name="l01258"></a>01258   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>      nodeIdServer;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1059
<a name="l01259"></a>01259 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1060
<a name="l01260"></a>01260   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AC0, <span class="stringliteral">"Send SDO to write in the dictionary of node : "</span>, nodeId);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1061
<a name="l01261"></a>01261   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AC1, <span class="stringliteral">"                                   At index : "</span>, index);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1062
<a name="l01262"></a>01262   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AC2, <span class="stringliteral">"                                   subIndex : "</span>, subIndex);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1063
<a name="l01263"></a>01263   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AC3, <span class="stringliteral">"                                   nb bytes : "</span>, count);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1064
<a name="l01264"></a>01264 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1065
<a name="l01265"></a>01265   <span class="comment">/* Verify that there is no SDO communication yet. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1066
<a name="l01266"></a>01266   err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1067
<a name="l01267"></a>01267   <span class="keywordflow">if</span> (!err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1068
<a name="l01268"></a>01268     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AC4, <span class="stringliteral">"SDO error : Communication yet established. with node : "</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1069
<a name="l01269"></a>01269     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1070
<a name="l01270"></a>01270   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1071
<a name="l01271"></a>01271   <span class="comment">/* Taking the line ... */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1072
<a name="l01272"></a>01272   err = <a class="code" href="sdo_8c.html#58d1f9691977617601beb9e5b4123252">getSDOfreeLine</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1073
<a name="l01273"></a>01273   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1074
<a name="l01274"></a>01274     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AC5, <span class="stringliteral">"SDO error : No line free, too many SDO in progress. Aborted for node : "</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1075
<a name="l01275"></a>01275     <span class="keywordflow">return</span> (0xFF);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1076
<a name="l01276"></a>01276   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1077
<a name="l01277"></a>01277   <span class="comment">/* Check which SDO to use to communicate with the node */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1078
<a name="l01278"></a>01278   offset = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1079
<a name="l01279"></a>01279   lastIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">lastIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1080
<a name="l01280"></a>01280   <span class="keywordflow">if</span> (offset == 0) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1081
<a name="l01281"></a>01281     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AC6, <span class="stringliteral">"writeNetworkDict : No SDO client index found"</span>, 0); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1082
<a name="l01282"></a>01282     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1083
<a name="l01283"></a>01283   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1084
<a name="l01284"></a>01284   i = 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1085
<a name="l01285"></a>01285    <span class="keywordflow">while</span> (offset &lt;= lastIndex) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1086
<a name="l01286"></a>01286      <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= 3) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1087
<a name="l01287"></a>01287          <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AC8, <span class="stringliteral">"Subindex 3  not found at index "</span>, 0x1280 + i);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1088
<a name="l01288"></a>01288          <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1089
<a name="l01289"></a>01289      }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1090
<a name="l01290"></a>01290      <span class="comment">/* looking for the nodeId server */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1091
<a name="l01291"></a>01291      pNodeIdServer = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[3].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1092
<a name="l01292"></a>01292      nodeIdServer = *pNodeIdServer;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1093
<a name="l01293"></a>01293      <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x1AD2, <span class="stringliteral">"index : "</span>, 0x1280 + i);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1094
<a name="l01294"></a>01294      <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x1AD3, <span class="stringliteral">"nodeIdServer : "</span>, nodeIdServer);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1095
<a name="l01295"></a>01295    
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1096
<a name="l01296"></a>01296     <span class="keywordflow">if</span>(nodeIdServer == (<a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>)nodeId) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1097
<a name="l01297"></a>01297       SDOfound = 1;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1098
<a name="l01298"></a>01298       <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1099
<a name="l01299"></a>01299     }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1100
<a name="l01300"></a>01300     offset++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1101
<a name="l01301"></a>01301     i++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1102
<a name="l01302"></a>01302   } <span class="comment">/* end while */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1103
<a name="l01303"></a>01303   <span class="keywordflow">if</span> (!SDOfound) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1104
<a name="l01304"></a>01304     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AC9, <span class="stringliteral">"SDO. Error. No client found to communicate with node : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1105
<a name="l01305"></a>01305     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1106
<a name="l01306"></a>01306   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1107
<a name="l01307"></a>01307   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AD0,<span class="stringliteral">"        SDO client defined at index  : "</span>, 0x1280 + i);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1108
<a name="l01308"></a>01308   <a class="code" href="sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d">initSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nodeId, index, subIndex, <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1109
<a name="l01309"></a>01309   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a> = count;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1110
<a name="l01310"></a>01310   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#bac6b366cfcddb5e7d64f6bf2eb97d74">dataType</a> = dataType;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1111
<a name="l01311"></a>01311   
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1112
<a name="l01312"></a>01312   <span class="comment">/* Copy data to transfers structure. */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1113
<a name="l01313"></a>01313   <span class="keywordflow">for</span> (j = 0 ; j &lt; count ; j++) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1114
<a name="l01314"></a>01314 # ifdef <a class="code" href="hcs12_2applicfg_8h.html#751707f06cc1e5a62a109e6ad780b631">CANOPEN_BIG_ENDIAN</a>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1115
<a name="l01315"></a>01315     <span class="keywordflow">if</span> (dataType == 0 &amp;&amp; endianize)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1116
<a name="l01316"></a>01316       <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[count - 1 - j] = ((<span class="keywordtype">char</span> *)data)[j];
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1117
<a name="l01317"></a>01317     <span class="keywordflow">else</span> <span class="comment">/* String of bytes. */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1118
<a name="l01318"></a>01318       <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[j] = ((<span class="keywordtype">char</span> *)data)[j];
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1119
<a name="l01319"></a>01319 #  <span class="keywordflow">else</span> 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1120
<a name="l01320"></a>01320     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[j] = ((<span class="keywordtype">char</span> *)data)[j];
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1121
<a name="l01321"></a>01321 #  endif
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1122
<a name="l01322"></a>01322   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1123
<a name="l01323"></a>01323   <span class="comment">/* Send the SDO to the server. Initiate download, cs=1. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1124
<a name="l01324"></a>01324   sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1125
<a name="l01325"></a>01325   <span class="keywordflow">if</span> (count &lt;= 4) { <span class="comment">/* Expedited transfert */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1126
<a name="l01326"></a>01326     sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (1 &lt;&lt; 5) | ((4 - count) &lt;&lt; 2) | 3;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1127
<a name="l01327"></a>01327     for (i = 4 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1128
<a name="l01328"></a>01328       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[i - 4];
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1129
<a name="l01329"></a>01329     <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#f29303b809a05773a5333fb079c59ff7">offset</a> = count;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1130
<a name="l01330"></a>01330   }     
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1131
<a name="l01331"></a>01331   <span class="keywordflow">else</span> { 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1132
<a name="l01332"></a>01332     sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (1 &lt;&lt; 5) | 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1133
<a name="l01333"></a>01333     sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[4] = count; <span class="comment">/* nb of byte to transmit. Max = 255. (canfestival2 limitation). */</span>
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1134
<a name="l01334"></a>01334     <span class="keywordflow">for</span> (i = 5 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1135
<a name="l01335"></a>01335       sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1136
<a name="l01336"></a>01336   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1137
<a name="l01337"></a>01337   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[1] = index &amp; 0xFF;        <span class="comment">/* LSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1138
<a name="l01338"></a>01338   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[2] = (index &gt;&gt; 8) &amp; 0xFF; <span class="comment">/* MSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1139
<a name="l01339"></a>01339   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[3] = subIndex;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1140
<a name="l01340"></a>01340 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1141
<a name="l01341"></a>01341   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a> = Callback;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1142
<a name="l01342"></a>01342     
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1143
<a name="l01343"></a>01343   err = <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, sdo);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1144
<a name="l01344"></a>01344   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1145
<a name="l01345"></a>01345     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AD1, <span class="stringliteral">"SDO. Error while sending SDO to node : "</span>, nodeId);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1146
<a name="l01346"></a>01346     <span class="comment">/* release the line */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1147
<a name="l01347"></a>01347     <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1148
<a name="l01348"></a>01348     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1149
<a name="l01349"></a>01349   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1150
<a name="l01350"></a>01350 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1151
<a name="l01351"></a>01351   
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1152
<a name="l01352"></a>01352   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1153
<a name="l01353"></a>01353 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1154
<a name="l01354"></a>01354 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1155
<a name="l01368"></a><a class="code" href="sdo_8h.html#bc20ed246e00053dcf71faa8f45ee39c">01368</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#bc20ed246e00053dcf71faa8f45ee39c">writeNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1156
<a name="l01369"></a>01369                        <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> count, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <span class="keywordtype">void</span> *data)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1157
<a name="l01370"></a>01370 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1158
<a name="l01371"></a>01371         <span class="keywordflow">return</span> <a class="code" href="dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a">_writeNetworkDict</a> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, index, subIndex, count, dataType, data, NULL, 1);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1159
<a name="l01372"></a>01372 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1160
<a name="l01373"></a>01373 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1161
<a name="l01388"></a><a class="code" href="sdo_8h.html#f4ec05293fb8971a1b282994498ed4f5">01388</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#f4ec05293fb8971a1b282994498ed4f5">writeNetworkDictCallBack</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1162
<a name="l01389"></a>01389                        <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> count, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <span class="keywordtype">void</span> *data, <a class="code" href="sdo_8h.html#606eccfef67e572723e1efba3f0d87ba">SDOCallback_t</a> Callback)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1163
<a name="l01390"></a>01390 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1164
<a name="l01391"></a>01391         <span class="keywordflow">return</span> <a class="code" href="dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a">_writeNetworkDict</a> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, index, subIndex, count, dataType, data, Callback, 1);      
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1165
<a name="l01392"></a>01392 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1166
<a name="l01393"></a>01393 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1167
<a name="l01406"></a><a class="code" href="sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270">01406</a> <a class="code" href="sdo_8c.html#2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270">_readNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <a class="code" href="sdo_8h.html#606eccfef67e572723e1efba3f0d87ba">SDOCallback_t</a> Callback)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1168
<a name="l01407"></a>01407 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1169
<a name="l01408"></a>01408   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1170
<a name="l01409"></a>01409   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> SDOfound = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1171
<a name="l01410"></a>01410   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1172
<a name="l01411"></a>01411   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1173
<a name="l01412"></a>01412   <a class="code" href="structstruct__s__SDO.html">s_SDO</a> sdo;    <span class="comment">/* SDO to transmit */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1174
<a name="l01413"></a>01413   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>      *pNodeIdServer;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1175
<a name="l01414"></a>01414   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>      nodeIdServer;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1176
<a name="l01415"></a>01415   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a>     offset;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1177
<a name="l01416"></a>01416   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a>     lastIndex;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1178
<a name="l01417"></a>01417   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AD5, <span class="stringliteral">"Send SDO to read in the dictionary of node : "</span>, nodeId);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1179
<a name="l01418"></a>01418   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AD6, <span class="stringliteral">"                                  At index : "</span>, index);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1180
<a name="l01419"></a>01419   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AD7, <span class="stringliteral">"                                  subIndex : "</span>, subIndex);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1181
<a name="l01420"></a>01420 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1182
<a name="l01421"></a>01421 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1183
<a name="l01422"></a>01422   <span class="comment">/* Verify that there is no SDO communication yet. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1184
<a name="l01423"></a>01423   err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1185
<a name="l01424"></a>01424   <span class="keywordflow">if</span> (!err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1186
<a name="l01425"></a>01425     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AD8, <span class="stringliteral">"SDO error : Communication yet established. with node : "</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1187
<a name="l01426"></a>01426     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1188
<a name="l01427"></a>01427   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1189
<a name="l01428"></a>01428   <span class="comment">/* Taking the line ... */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1190
<a name="l01429"></a>01429   err = <a class="code" href="sdo_8c.html#58d1f9691977617601beb9e5b4123252">getSDOfreeLine</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line );
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1191
<a name="l01430"></a>01430   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1192
<a name="l01431"></a>01431     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AD9, <span class="stringliteral">"SDO error : No line free, too many SDO in progress. Aborted for node : "</span>, nodeId); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1193
<a name="l01432"></a>01432     <span class="keywordflow">return</span> (0xFF);
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1194
<a name="l01433"></a>01433   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1195
<a name="l01434"></a>01434   <span class="keywordflow">else</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1196
<a name="l01435"></a>01435     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AE0, <span class="stringliteral">"Transmission on line : "</span>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1197
<a name="l01436"></a>01436 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1198
<a name="l01437"></a>01437   <span class="comment">/* Check which SDO to use to communicate with the node */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1199
<a name="l01438"></a>01438   offset = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#f26b0fce2ed684c5983aa658efd6c52e">firstIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1200
<a name="l01439"></a>01439   lastIndex = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#96d334a4fc8c304826b053681ccbf0d1">lastIndex</a>-&gt;<a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1201
<a name="l01440"></a>01440   <span class="keywordflow">if</span> (offset == 0) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1202
<a name="l01441"></a>01441     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AE1, <span class="stringliteral">"writeNetworkDict : No SDO client index found"</span>, 0); 
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1203
<a name="l01442"></a>01442     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1204
<a name="l01443"></a>01443   }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1205
<a name="l01444"></a>01444   i = 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1206
<a name="l01445"></a>01445   <span class="keywordflow">while</span> (offset &lt;= lastIndex) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1207
<a name="l01446"></a>01446      <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= 3) {
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1208
<a name="l01447"></a>01447          <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AE2, <span class="stringliteral">"Subindex 3  not found at index "</span>, 0x1280 + i);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1209
<a name="l01448"></a>01448          <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1210
<a name="l01449"></a>01449      }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1211
<a name="l01450"></a>01450      <span class="comment">/* looking for the nodeId server */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1212
<a name="l01451"></a>01451      pNodeIdServer = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a766a4db603786bffdd609817048ef04">objdict</a>[offset].<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[3].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1213
<a name="l01452"></a>01452      nodeIdServer = *pNodeIdServer;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1214
<a name="l01453"></a>01453    
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1215
<a name="l01454"></a>01454     <span class="keywordflow">if</span>(nodeIdServer == (<a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>)nodeId) {
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1216
<a name="l01455"></a>01455       SDOfound = 1;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1217
<a name="l01456"></a>01456       <span class="keywordflow">break</span>;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1218
<a name="l01457"></a>01457     }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1219
<a name="l01458"></a>01458     offset++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1220
<a name="l01459"></a>01459     i++;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1221
<a name="l01460"></a>01460   } <span class="comment">/* end while */</span>
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1222
<a name="l01461"></a>01461   <span class="keywordflow">if</span> (!SDOfound) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1223
<a name="l01462"></a>01462     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AE3, <span class="stringliteral">"SDO. Error. No client found to communicate with node : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1224
<a name="l01463"></a>01463     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1225
<a name="l01464"></a>01464   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1226
<a name="l01465"></a>01465   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x3AE4,<span class="stringliteral">"        SDO client defined at index  : "</span>, 0x1280 + i);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1227
<a name="l01466"></a>01466   <a class="code" href="sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d">initSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line, nodeId, index, subIndex, <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1228
<a name="l01467"></a>01467   <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line);
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1229
<a name="l01468"></a>01468   sdo.<a class="code" href="structstruct__s__SDO.html#bc72f84dbb51c6eb92ff44ac68e18ed5">nodeId</a> = nodeId;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1230
<a name="l01469"></a>01469   <span class="comment">/* Send the SDO to the server. Initiate upload, cs=2. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1231
<a name="l01470"></a>01470   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#bac6b366cfcddb5e7d64f6bf2eb97d74">dataType</a> = dataType;                               
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1232
<a name="l01471"></a>01471   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[0] = (2 &lt;&lt; 5);  
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1233
<a name="l01472"></a>01472   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[1] = index &amp; 0xFF;        <span class="comment">/* LSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1234
<a name="l01473"></a>01473   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[2] = (index &gt;&gt; 8) &amp; 0xFF; <span class="comment">/* MSB */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1235
<a name="l01474"></a>01474   sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[3] = subIndex;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1236
<a name="l01475"></a>01475   <span class="keywordflow">for</span> (i = 4 ; i &lt; 8 ; i++)
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1237
<a name="l01476"></a>01476     sdo.<a class="code" href="structstruct__s__SDO.html#d24ba4940b125535e1d4e618fa6aa853">body</a>.<a class="code" href="structBODY.html#e1c3d89411eb0266a1db691b5de561d9">data</a>[i] = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1238
<a name="l01477"></a>01477   <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#e32787d562569a71aa8f9633e3d34ca0">Callback</a> = Callback;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1239
<a name="l01478"></a>01478   err = <a class="code" href="sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d">sendSDO</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, sdo);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1240
<a name="l01479"></a>01479   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1241
<a name="l01480"></a>01480     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AE5, <span class="stringliteral">"SDO. Error while sending SDO to node : "</span>, nodeId);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1242
<a name="l01481"></a>01481     <span class="comment">/* release the line */</span>
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1243
<a name="l01482"></a>01482     <a class="code" href="sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481">resetSDOline</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1244
<a name="l01483"></a>01483     <span class="keywordflow">return</span> 0xFF;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1245
<a name="l01484"></a>01484   }             
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1246
<a name="l01485"></a>01485   <span class="keywordflow">return</span> 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1247
<a name="l01486"></a>01486 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1248
<a name="l01487"></a>01487 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1249
<a name="l01499"></a><a class="code" href="sdo_8h.html#0e102a0835e4115920cd406e80a8d135">01499</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#0e102a0835e4115920cd406e80a8d135">readNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1250
<a name="l01500"></a>01500 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1251
<a name="l01501"></a>01501         <span class="keywordflow">return</span> <a class="code" href="sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270">_readNetworkDict</a> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, index, subIndex, dataType, NULL);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1252
<a name="l01502"></a>01502 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1253
<a name="l01503"></a>01503 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1254
<a name="l01516"></a><a class="code" href="sdo_8h.html#542a5cdd20c00aa130a39fe68295e769">01516</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#542a5cdd20c00aa130a39fe68295e769">readNetworkDictCallback</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType, <a class="code" href="sdo_8h.html#606eccfef67e572723e1efba3f0d87ba">SDOCallback_t</a> Callback)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1255
<a name="l01517"></a>01517 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1256
<a name="l01518"></a>01518         <span class="keywordflow">return</span> <a class="code" href="sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270">_readNetworkDict</a> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, index, subIndex, dataType, Callback);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1257
<a name="l01519"></a>01519 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1258
<a name="l01520"></a>01520 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1259
<a name="l01532"></a><a class="code" href="sdo_8h.html#05b0c8eee1faee3c7a2f6e2ba3a16533">01532</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#05b0c8eee1faee3c7a2f6e2ba3a16533">getReadResultNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <span class="keywordtype">void</span>* data, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *size, 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1260
<a name="l01533"></a>01533                                <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> * abortCode)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1261
<a name="l01534"></a>01534 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1262
<a name="l01535"></a>01535   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1263
<a name="l01536"></a>01536   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1264
<a name="l01537"></a>01537   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1265
<a name="l01538"></a>01538   * size = 0;
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1266
<a name="l01539"></a>01539 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1267
<a name="l01540"></a>01540   <span class="comment">/* Looking for the line tranfert. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1268
<a name="l01541"></a>01541   err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1269
<a name="l01542"></a>01542   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1270
<a name="l01543"></a>01543     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AF0, <span class="stringliteral">"SDO error : No line found for communication with node : "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1271
<a name="l01544"></a>01544     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#2acbeebb18a23287a9fe30f1f9e3f964">SDO_ABORTED_INTERNAL</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1272
<a name="l01545"></a>01545   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1273
<a name="l01546"></a>01546   <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a> != <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>)
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1274
<a name="l01547"></a>01547     <span class="keywordflow">return</span> <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1275
<a name="l01548"></a>01548 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1276
<a name="l01549"></a>01549   <span class="comment">/* Transfert is finished. Put the value in the data. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1277
<a name="l01550"></a>01550   * size = (<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>)<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#42a6d8e63916bf2b2d1649995f8f0e11">count</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1278
<a name="l01551"></a>01551   for  ( i = 0 ; i &lt; *size ; i++) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1279
<a name="l01552"></a>01552 # ifdef <a class="code" href="hcs12_2applicfg_8h.html#751707f06cc1e5a62a109e6ad780b631">CANOPEN_BIG_ENDIAN</a>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1280
<a name="l01553"></a>01553     <span class="keywordflow">if</span> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#bac6b366cfcddb5e7d64f6bf2eb97d74">dataType</a> != <a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">visible_string</a>)
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1281
<a name="l01554"></a>01554       ( (<span class="keywordtype">char</span> *) data)[*size - 1 - i] = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[i];
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1282
<a name="l01555"></a>01555     <span class="keywordflow">else</span> <span class="comment">/* String of bytes. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1283
<a name="l01556"></a>01556       ( (<span class="keywordtype">char</span> *) data)[i] = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[i];
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1284
<a name="l01557"></a>01557 # else 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1285
<a name="l01558"></a>01558     ( (<span class="keywordtype">char</span> *) data)[i] = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#b907a54e35126b8e267f546699e1df25">data</a>[i];
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1286
<a name="l01559"></a>01559 # endif
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1287
<a name="l01560"></a>01560   } 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1288
<a name="l01561"></a>01561   <span class="keywordflow">return</span> <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1289
<a name="l01562"></a>01562 }
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1290
<a name="l01563"></a>01563 
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1291
<a name="l01573"></a><a class="code" href="sdo_8h.html#8671e306873f19362c60bb50ab930d1d">01573</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="sdo_8c.html#8671e306873f19362c60bb50ab930d1d">getWriteResultNetworkDict</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId, <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> * abortCode)
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1292
<a name="l01574"></a>01574 {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1293
<a name="l01575"></a>01575   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> line = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1294
<a name="l01576"></a>01576   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> err;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1295
<a name="l01577"></a>01577 
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1296
<a name="l01578"></a>01578   * abortCode = 0;
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1297
<a name="l01579"></a>01579   <span class="comment">/* Looking for the line tranfert. */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1298
<a name="l01580"></a>01580   err = <a class="code" href="sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f">getSDOlineOnUse</a>(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, nodeId, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>, &amp;line);
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1299
<a name="l01581"></a>01581   <span class="keywordflow">if</span> (err) {
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1300
<a name="l01582"></a>01582     <a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">MSG_ERR</a>(0x1AF1, <span class="stringliteral">"SDO error : No line found for communication with node : "</span>, nodeId); 
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1301
<a name="l01583"></a>01583     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#2acbeebb18a23287a9fe30f1f9e3f964">SDO_ABORTED_INTERNAL</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1302
<a name="l01584"></a>01584   }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1303
<a name="l01585"></a>01585   * abortCode = <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#214694408d5f6e87695807efd2cfbc47">abortCode</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1304
<a name="l01586"></a>01586   <span class="keywordflow">return</span> <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a7fda2c6f5815323c3d79efb4641c465">transfers</a>[line].<a class="code" href="structstruct__s__transfer.html#41d265854e5ebb062db224276888ab21">state</a>;
210
6b5a4c21e061 Manual and Documentation finish
nico
parents: 207
diff changeset
  1305
<a name="l01587"></a>01587 }
215
f49e5a6b7804 Manual and Documentation finish
nico
parents: 210
diff changeset
  1306
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:39 2007 for CanFestival by&nbsp;
207
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
  1307
<a href="http://www.doxygen.org/index.html">
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
  1308
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
  1309
</body>
b6572d0336c3 First doxygen implementation
nico
parents:
diff changeset
  1310
</html>