doc/doxygen/html/Master_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.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>CanFestival: examples/TestMasterSlave/Master.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_fc8d77725c328f9de5a130dceab5a508.html">examples</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_cb9d6d827bc8780b4808994475b6fec1.html">TestMasterSlave</a></div>
<h1>Master.c</h1><a href="Master_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>
<a name="l00002"></a>00002 <span class="comment">This file is part of CanFestival, a library implementing CanOpen Stack. </span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">See COPYING file for copyrights details.</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">This library is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment">modify it under the terms of the GNU Lesser General Public</span>
<a name="l00010"></a>00010 <span class="comment">License as published by the Free Software Foundation; either</span>
<a name="l00011"></a>00011 <span class="comment">version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">This library is distributed in the hope that it will be useful,</span>
<a name="l00014"></a>00014 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00015"></a>00015 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00016"></a>00016 <span class="comment">Lesser General Public License for more details.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">You should have received a copy of the GNU Lesser General Public</span>
<a name="l00019"></a>00019 <span class="comment">License along with this library; if not, write to the Free Software</span>
<a name="l00020"></a>00020 <span class="comment">Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="l00021"></a>00021 <span class="comment">*/</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="Master_8h.html">Master.h</a>"</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="Slave_8h.html">Slave.h</a>"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="TestMasterSlave_8h.html">TestMasterSlave.h</a>"</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="comment">/*****************************************************************************/</span>
<a name="l00028"></a><a class="code" href="Master_8h.html#68bcbab35a7a058c874ac3af06cbf240">00028</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#47eb45e75b4db150fb465fcf171ef4b4">TestMaster_heartbeatError</a>(<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> heartbeatID)
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_heartbeatError %d\n"</span>, heartbeatID);
<a name="l00031"></a>00031 }
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="comment">/********************************************************</span>
<a name="l00034"></a>00034 <span class="comment"> * ConfigureSlaveNode is responsible to</span>
<a name="l00035"></a>00035 <span class="comment"> *  - setup master RPDO 1 to receive TPDO 1 from id 2</span>
<a name="l00036"></a>00036 <span class="comment"> *  - setup master RPDO 2 to receive TPDO 2 from id 2</span>
<a name="l00037"></a>00037 <span class="comment"> ********************************************************/</span>
<a name="l00038"></a><a class="code" href="Master_8h.html#0c39246491ef97103fad9f8087c7994b">00038</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#e08dfb379eebaa62524fac5bba2196d5">TestMaster_initialisation</a>()
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> PDO1_COBID = 0x0182; 
<a name="l00041"></a>00041         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> PDO2_COBID = 0x0282;
<a name="l00042"></a>00042         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> size = <span class="keyword">sizeof</span>(<a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a>); 
<a name="l00043"></a>00043         
<a name="l00044"></a>00044         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_initialisation\n"</span>);
<a name="l00045"></a>00045 
<a name="l00046"></a>00046         <span class="comment">/*****************************************</span>
<a name="l00047"></a>00047 <span class="comment">         * Define RPDOs to match slave ID=2 TPDOs*</span>
<a name="l00048"></a>00048 <span class="comment">         *****************************************/</span>
<a name="l00049"></a>00049         <a class="code" href="objacces_8c.html#7cc58d6e7711bd0d9fd75e8ff721ce36">writeLocalDict</a>( &amp;<a class="code" href="TestMasterSlave_2TestMaster_8c.html#ed10e5c829f0ea258ebc67896842cabe">TestMaster_Data</a>, <span class="comment">/*CO_Data* d*/</span>
<a name="l00050"></a>00050                         0x1400, <span class="comment">/*UNS16 index*/</span>
<a name="l00051"></a>00051                         0x01, <span class="comment">/*UNS8 subind*/</span> 
<a name="l00052"></a>00052                         &amp;PDO1_COBID, <span class="comment">/*void * pSourceData,*/</span> 
<a name="l00053"></a>00053                         &amp;size, <span class="comment">/* UNS8 * pExpectedSize*/</span>
<a name="l00054"></a>00054                         <a class="code" href="objdictdef_8h.html#fc4ded33ac0ca43defcce639e965748a">RW</a>);  <span class="comment">/* UNS8 checkAccess */</span>
<a name="l00055"></a>00055                         
<a name="l00056"></a>00056         <a class="code" href="objacces_8c.html#7cc58d6e7711bd0d9fd75e8ff721ce36">writeLocalDict</a>( &amp;<a class="code" href="TestMasterSlave_2TestMaster_8c.html#ed10e5c829f0ea258ebc67896842cabe">TestMaster_Data</a>, <span class="comment">/*CO_Data* d*/</span>
<a name="l00057"></a>00057                         0x1401, <span class="comment">/*UNS16 index*/</span>
<a name="l00058"></a>00058                         0x01, <span class="comment">/*UNS8 subind*/</span> 
<a name="l00059"></a>00059                         &amp;PDO2_COBID, <span class="comment">/*void * pSourceData,*/</span> 
<a name="l00060"></a>00060                         &amp;size, <span class="comment">/* UNS8 * pExpectedSize*/</span>
<a name="l00061"></a>00061                         <a class="code" href="objdictdef_8h.html#fc4ded33ac0ca43defcce639e965748a">RW</a>);  <span class="comment">/* UNS8 checkAccess */</span>
<a name="l00062"></a>00062 }
<a name="l00063"></a>00063 
<a name="l00064"></a>00064 <span class="comment">// Step counts number of times ConfigureSlaveNode is called</span>
<a name="l00065"></a>00065 <span class="keyword">static</span> init_step = 0;
<a name="l00066"></a>00066 
<a name="l00067"></a>00067 <span class="comment">/*Froward declaration*/</span>
<a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keywordtype">void</span> ConfigureSlaveNode(<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* d, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId);
<a name="l00069"></a>00069 
<a name="l00070"></a>00070 
<a name="l00071"></a>00071 <span class="keyword">static</span> <span class="keywordtype">void</span> CheckSDOAndContinue(<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* d, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId)
<a name="l00072"></a>00072 {
<a name="l00073"></a>00073         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> abortCode;        
<a name="l00074"></a>00074         <span class="keywordflow">if</span>(<a class="code" href="sdo_8c.html#8671e306873f19362c60bb50ab930d1d">getWriteResultNetworkDict</a> (d, nodeId, &amp;abortCode) != <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>)
<a name="l00075"></a>00075                 <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"Master : Failed in initializing slave %2.2x, step %d, AbortCode :%4.4x \n"</span>, nodeId, init_step, abortCode);
<a name="l00076"></a>00076 
<a name="l00077"></a>00077         <span class="comment">/* Finalise last SDO transfer with this node */</span>
<a name="l00078"></a>00078         <a class="code" href="sdo_8c.html#555a772d3a88a29c495f33513f8b2d58">closeSDOtransfer</a>(&amp;<a class="code" href="TestMasterSlave_2TestMaster_8c.html#ed10e5c829f0ea258ebc67896842cabe">TestMaster_Data</a>, nodeId, <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>);
<a name="l00079"></a>00079 
<a name="l00080"></a>00080         ConfigureSlaveNode(d, nodeId);
<a name="l00081"></a>00081 }
<a name="l00082"></a>00082 
<a name="l00083"></a>00083 <span class="comment">/********************************************************</span>
<a name="l00084"></a>00084 <span class="comment"> * ConfigureSlaveNode is responsible to</span>
<a name="l00085"></a>00085 <span class="comment"> *  - setup slave TPDO 1 transmit time</span>
<a name="l00086"></a>00086 <span class="comment"> *  - setup slave TPDO 2 transmit time</span>
<a name="l00087"></a>00087 <span class="comment"> *  - switch to operational mode</span>
<a name="l00088"></a>00088 <span class="comment"> *  - send NMT to slave</span>
<a name="l00089"></a>00089 <span class="comment"> ********************************************************</span>
<a name="l00090"></a>00090 <span class="comment"> * This an example of :</span>
<a name="l00091"></a>00091 <span class="comment"> * Network Dictionary Access (SDO) with Callback </span>
<a name="l00092"></a>00092 <span class="comment"> * Slave node state change request (NMT) </span>
<a name="l00093"></a>00093 <span class="comment"> ********************************************************</span>
<a name="l00094"></a>00094 <span class="comment"> * This is called first by TestMaster_preOperational</span>
<a name="l00095"></a>00095 <span class="comment"> * then it called again each time a SDO exchange is</span>
<a name="l00096"></a>00096 <span class="comment"> * finished.</span>
<a name="l00097"></a>00097 <span class="comment"> ********************************************************/</span>
<a name="l00098"></a>00098  
<a name="l00099"></a>00099 <span class="keyword">static</span> <span class="keywordtype">void</span> ConfigureSlaveNode(<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* d, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> nodeId)
<a name="l00100"></a>00100 {
<a name="l00101"></a>00101         <span class="comment">/* Master configure heartbeat producer time at 1000 ms </span>
<a name="l00102"></a>00102 <span class="comment">         * for slave node-id 0x02 by DCF concise */</span>
<a name="l00103"></a>00103          
<a name="l00104"></a>00104         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> Transmission_Type = 0x01;
<a name="l00105"></a>00105         <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> abortCode;
<a name="l00106"></a>00106         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> res;
<a name="l00107"></a>00107         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"Master : ConfigureSlaveNode %2.2x\n"</span>, nodeId);
<a name="l00108"></a>00108 
<a name="l00109"></a>00109         <span class="keywordflow">switch</span>(++init_step){
<a name="l00110"></a>00110                 <span class="keywordflow">case</span> 1: <span class="comment">/*First step : setup Slave's TPDO 1 to be transmitted on SYNC*/</span>
<a name="l00111"></a>00111                         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"Master : set slave %2.2x TPDO 1 transmit type\n"</span>, nodeId);
<a name="l00112"></a>00112                         res = <a class="code" href="sdo_8c.html#f4ec05293fb8971a1b282994498ed4f5">writeNetworkDictCallBack</a> (d, <span class="comment">/*CO_Data* d*/</span>
<a name="l00113"></a>00113                                         nodeId, <span class="comment">/*UNS8 nodeId*/</span>
<a name="l00114"></a>00114                                         0x1800, <span class="comment">/*UNS16 index*/</span>
<a name="l00115"></a>00115                                         0x02, <span class="comment">/*UNS8 subindex*/</span>
<a name="l00116"></a>00116                                         1, <span class="comment">/*UNS8 count*/</span>
<a name="l00117"></a>00117                                         0, <span class="comment">/*UNS8 dataType*/</span>
<a name="l00118"></a>00118                                         &amp;Transmission_Type,<span class="comment">/*void *data*/</span>
<a name="l00119"></a>00119                                         CheckSDOAndContinue); <span class="comment">/*SDOCallback_t Callback*/</span>
<a name="l00120"></a>00120                                         <span class="keywordflow">break</span>;
<a name="l00121"></a>00121                 
<a name="l00122"></a>00122                 <span class="keywordflow">case</span> 2: <span class="comment">/*Second step*/</span>
<a name="l00123"></a>00123                         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"Master : set slave %2.2x TPDO 2 transmit type\n"</span>, nodeId);
<a name="l00124"></a>00124                         <a class="code" href="sdo_8c.html#f4ec05293fb8971a1b282994498ed4f5">writeNetworkDictCallBack</a> (d, <span class="comment">/*CO_Data* d*/</span>
<a name="l00125"></a>00125                                         nodeId, <span class="comment">/*UNS8 nodeId*/</span>
<a name="l00126"></a>00126                                         0x1801, <span class="comment">/*UNS16 index*/</span>
<a name="l00127"></a>00127                                         0x02, <span class="comment">/*UNS16 index*/</span>
<a name="l00128"></a>00128                                         1, <span class="comment">/*UNS8 count*/</span>
<a name="l00129"></a>00129                                         0, <span class="comment">/*UNS8 dataType*/</span>
<a name="l00130"></a>00130                                         &amp;Transmission_Type,<span class="comment">/*void *data*/</span>
<a name="l00131"></a>00131                                         CheckSDOAndContinue); <span class="comment">/*SDOCallback_t Callback*/</span>
<a name="l00132"></a>00132                                         <span class="keywordflow">break</span>;
<a name="l00133"></a>00133                 <span class="keywordflow">case</span> 3: 
<a name="l00134"></a>00134                 
<a name="l00135"></a>00135                 <span class="comment">/****************************** START *******************************/</span>
<a name="l00136"></a>00136                 
<a name="l00137"></a>00137                         <span class="comment">/* Put the master in operational mode */</span>
<a name="l00138"></a>00138                         <a class="code" href="states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5">setState</a>(d, <a class="code" href="states_8h.html#3136d2815abe9d284f985e0a7ec68646a80594b1522cb686b981f56bbec45124">Operational</a>);
<a name="l00139"></a>00139                  
<a name="l00140"></a>00140                         <span class="comment">/* Ask slave node to go in operational mode */</span>
<a name="l00141"></a>00141                         <a class="code" href="nmtMaster_8c.html#6170d95d9900ef756921a934c5fb37d2">masterSendNMTstateChange</a> (d, nodeId, <a class="code" href="def_8h.html#9654207fdc32413aa792c8a2dc9d414f">NMT_Start_Node</a>);
<a name="l00142"></a>00142                         
<a name="l00143"></a>00143         }
<a name="l00144"></a>00144 }
<a name="l00145"></a>00145 
<a name="l00146"></a><a class="code" href="Master_8h.html#f8fc4f9c510c05a678c123cfde42c2b9">00146</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#8fe2bae5bb407a3a71ee5fa5ea5d617f">TestMaster_preOperational</a>()
<a name="l00147"></a>00147 {
<a name="l00148"></a>00148 
<a name="l00149"></a>00149         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_preOperational\n"</span>);
<a name="l00150"></a>00150         ConfigureSlaveNode(&amp;<a class="code" href="TestMasterSlave_2TestMaster_8c.html#ed10e5c829f0ea258ebc67896842cabe">TestMaster_Data</a>, 0x02);
<a name="l00151"></a>00151         
<a name="l00152"></a>00152 }
<a name="l00153"></a>00153 
<a name="l00154"></a><a class="code" href="Master_8h.html#3e91c546626b971be52999974e9a09d7">00154</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#81c297f2b4b9676e906286bf46541fc1">TestMaster_operational</a>()
<a name="l00155"></a>00155 {
<a name="l00156"></a>00156         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_operational\n"</span>);
<a name="l00157"></a>00157 }
<a name="l00158"></a>00158 
<a name="l00159"></a><a class="code" href="Master_8h.html#54990cb4513be0eb2f3690131204d375">00159</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#897d573cafc13ac80abbc207c0ee41b0">TestMaster_stopped</a>()
<a name="l00160"></a>00160 {
<a name="l00161"></a>00161         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_stopped\n"</span>);
<a name="l00162"></a>00162 }
<a name="l00163"></a>00163 
<a name="l00164"></a><a class="code" href="Master_8h.html#600981dd777d30387dc8eb3ec85d8ea3">00164</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#9a8f72cab7f649481ca84ab2222dd179">TestMaster_post_sync</a>()
<a name="l00165"></a>00165 {
<a name="l00166"></a>00166         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_post_sync\n"</span>);
<a name="l00167"></a>00167         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"Master: %d %d %d %d %d %d %d %d %d %x %x\n"</span>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#32c087b93caccbf9ac0ea5b102c8ade9">MasterMap1</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#09011bbcfc806441b93e55a7fe9a83fd">MasterMap2</a> ,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#b02953cfe4e6a7e062a8df3a9172f22f">MasterMap3</a>, <a class="code" href="TestMasterSlave_2TestMaster_8c.html#f80c09b8b3b29ecad8a29b2c59d6b162">MasterMap4</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#eceba88eac6acbd80cef98a80f1c410c">MasterMap5</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#96f1954ed1b765243bb81c57e477ffa2">MasterMap6</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#67e30e278b7b612cd39d9e79e63fe4ee">MasterMap7</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#866ced0f5e068d57225314a62494f765">MasterMap8</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#cad1f2ea598ebf92e76d34037051d357">MasterMap9</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#43631b768357ffe1d4aca9a9c2ff7176">MasterMap10</a>,<a class="code" href="TestMasterSlave_2TestMaster_8c.html#d96648d9fcdf655bd0eb459fbdea3e2e">MasterMap11</a>);
<a name="l00168"></a>00168 }
<a name="l00169"></a>00169 
<a name="l00170"></a><a class="code" href="Master_8c.html#14755b0ad32c861583eb69c946f3d9aa">00170</a> <span class="keywordtype">char</span> <a class="code" href="Master_8c.html#14755b0ad32c861583eb69c946f3d9aa">query_result</a> = 0;
<a name="l00171"></a><a class="code" href="Master_8c.html#5ac78804c899f5179534e6f75346f23c">00171</a> <span class="keywordtype">char</span> <a class="code" href="Master_8c.html#5ac78804c899f5179534e6f75346f23c">waiting_answer</a> = 0;
<a name="l00172"></a>00172 
<a name="l00173"></a><a class="code" href="Master_8h.html#b85edc6945cb2404d6eef4a11cd66c82">00173</a> <span class="keywordtype">void</span> <a class="code" href="Master_8c.html#5e466aa03eae00c269cf20359a7ee074">TestMaster_post_TPDO</a>()
<a name="l00174"></a>00174 {
<a name="l00175"></a>00175         <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"TestMaster_post_TPDO\n"</span>);
<a name="l00176"></a>00176 <span class="comment">//</span>
<a name="l00177"></a>00177 <span class="comment">//      {</span>
<a name="l00178"></a>00178 <span class="comment">//              char zero = 0;</span>
<a name="l00179"></a>00179 <span class="comment">//              if(MasterMap4 &gt; 0x80){</span>
<a name="l00180"></a>00180 <span class="comment">//                      writeNetworkDict (</span>
<a name="l00181"></a>00181 <span class="comment">//                              &amp;TestMaster_Data,</span>
<a name="l00182"></a>00182 <span class="comment">//                              TestSlave_Data-&gt;bDeviceNodeId,</span>
<a name="l00183"></a>00183 <span class="comment">//                              0x2002,</span>
<a name="l00184"></a>00184 <span class="comment">//                              0x00,</span>
<a name="l00185"></a>00185 <span class="comment">//                              1,</span>
<a name="l00186"></a>00186 <span class="comment">//                              0,</span>
<a name="l00187"></a>00187 <span class="comment">//                              &amp;zero); </span>
<a name="l00188"></a>00188 <span class="comment">//              }</span>
<a name="l00189"></a>00189 <span class="comment">//      }</span>
<a name="l00190"></a>00190 
<a name="l00191"></a>00191         <span class="keywordflow">if</span>(waiting_answer){
<a name="l00192"></a>00192                 <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> abortCode;                        
<a name="l00193"></a>00193                 <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> size;                      
<a name="l00194"></a>00194                 <span class="keywordflow">switch</span>(<a class="code" href="sdo_8c.html#05b0c8eee1faee3c7a2f6e2ba3a16533">getReadResultNetworkDict</a> (
<a name="l00195"></a>00195                         &amp;<a class="code" href="TestMasterSlave_2TestMaster_8c.html#ed10e5c829f0ea258ebc67896842cabe">TestMaster_Data</a>, 
<a name="l00196"></a>00196                         0x02,
<a name="l00197"></a>00197                         &amp;query_result,
<a name="l00198"></a>00198                         &amp;size,
<a name="l00199"></a>00199                         &amp;abortCode))
<a name="l00200"></a>00200                 {
<a name="l00201"></a>00201                         <span class="keywordflow">case</span> <a class="code" href="def_8h.html#7d9dad1485ed532424092d21b1e22ad2">SDO_FINISHED</a>:
<a name="l00202"></a>00202                                 <span class="comment">/* Do something with result here !!*/</span>
<a name="l00203"></a>00203                                 <a class="code" href="TestMasterSlave_8h.html#82f06ace20f96f70bc165247e69fac57">eprintf</a>(<span class="stringliteral">"Got SDO answer (0x2002, 0x00), %d %d\n"</span>,query_result,size);
<a name="l00204"></a>00204                         <span class="keywordflow">case</span> <a class="code" href="def_8h.html#fbea04ded6a0ca1dfd63637bce9e0200">SDO_ABORTED_RCV</a>:
<a name="l00205"></a>00205                         <span class="keywordflow">case</span> <a class="code" href="def_8h.html#2acbeebb18a23287a9fe30f1f9e3f964">SDO_ABORTED_INTERNAL</a>:
<a name="l00206"></a>00206                         <span class="keywordflow">case</span> <a class="code" href="def_8h.html#b97393c9473837a2886583a1d5f69cf9">SDO_RESET</a>:
<a name="l00207"></a>00207                                 waiting_answer = 0;
<a name="l00208"></a>00208                                 <a class="code" href="sdo_8c.html#555a772d3a88a29c495f33513f8b2d58">closeSDOtransfer</a>(
<a name="l00209"></a>00209                                         &amp;TestMaster_Data,
<a name="l00210"></a>00210                                         0x02,
<a name="l00211"></a>00211                                         <a class="code" href="def_8h.html#b1dccfddc653c2a7c4eaf3e1cc8d8e57">SDO_CLIENT</a>);
<a name="l00212"></a>00212                         <span class="keywordflow">break</span>;
<a name="l00213"></a>00213                         <span class="keywordflow">case</span> <a class="code" href="def_8h.html#749536d7d8c9a60beb8d3c8d1210b6d2">SDO_DOWNLOAD_IN_PROGRESS</a>:
<a name="l00214"></a>00214                         <span class="keywordflow">case</span> <a class="code" href="def_8h.html#f05e95a564b579b94d14a218264d13e1">SDO_UPLOAD_IN_PROGRESS</a>:
<a name="l00215"></a>00215                         <span class="keywordflow">break</span>;
<a name="l00216"></a>00216                 }
<a name="l00217"></a>00217         }<span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="TestMasterSlave_2TestMaster_8c.html#32c087b93caccbf9ac0ea5b102c8ade9">MasterMap1</a> % 10 == 0){
<a name="l00218"></a>00218                 <a class="code" href="sdo_8c.html#0e102a0835e4115920cd406e80a8d135">readNetworkDict</a> (
<a name="l00219"></a>00219                         &amp;<a class="code" href="TestMasterSlave_2TestMaster_8c.html#ed10e5c829f0ea258ebc67896842cabe">TestMaster_Data</a>,
<a name="l00220"></a>00220                         0x02,
<a name="l00221"></a>00221                         0x2002,
<a name="l00222"></a>00222                         0x00,
<a name="l00223"></a>00223                         0);
<a name="l00224"></a>00224                 waiting_answer = 1;
<a name="l00225"></a>00225         }
<a name="l00226"></a>00226 }
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:39 2007 for CanFestival by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>