# HG changeset patch # User nico # Date 1181287436 -7200 # Node ID f49e5a6b7804a9ad5316bea70d33345b76fb0dcd # Parent 003cc3c6385571459daa7c4f9988bfa06b9e27aa Manual and Documentation finish diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,252 @@ + + +CanFestival: examples/TestMasterSlave/Master.c Source File + + + + +
+
+
+
+ +

Master.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #include "Master.h"
+00024 #include "Slave.h"
+00025 #include "TestMasterSlave.h"
+00026 
+00027 /*****************************************************************************/
+00028 void TestMaster_heartbeatError(UNS8 heartbeatID)
+00029 {
+00030         eprintf("TestMaster_heartbeatError %d\n", heartbeatID);
+00031 }
+00032 
+00033 /********************************************************
+00034  * ConfigureSlaveNode is responsible to
+00035  *  - setup master RPDO 1 to receive TPDO 1 from id 2
+00036  *  - setup master RPDO 2 to receive TPDO 2 from id 2
+00037  ********************************************************/
+00038 void TestMaster_initialisation()
+00039 {
+00040         UNS32 PDO1_COBID = 0x0182; 
+00041         UNS32 PDO2_COBID = 0x0282;
+00042         UNS8 size = sizeof(UNS32); 
+00043         
+00044         eprintf("TestMaster_initialisation\n");
+00045 
+00046         /*****************************************
+00047          * Define RPDOs to match slave ID=2 TPDOs*
+00048          *****************************************/
+00049         writeLocalDict( &TestMaster_Data, /*CO_Data* d*/
+00050                         0x1400, /*UNS16 index*/
+00051                         0x01, /*UNS8 subind*/ 
+00052                         &PDO1_COBID, /*void * pSourceData,*/ 
+00053                         &size, /* UNS8 * pExpectedSize*/
+00054                         RW);  /* UNS8 checkAccess */
+00055                         
+00056         writeLocalDict( &TestMaster_Data, /*CO_Data* d*/
+00057                         0x1401, /*UNS16 index*/
+00058                         0x01, /*UNS8 subind*/ 
+00059                         &PDO2_COBID, /*void * pSourceData,*/ 
+00060                         &size, /* UNS8 * pExpectedSize*/
+00061                         RW);  /* UNS8 checkAccess */
+00062 }
+00063 
+00064 // Step counts number of times ConfigureSlaveNode is called
+00065 static init_step = 0;
+00066 
+00067 /*Froward declaration*/
+00068 static void ConfigureSlaveNode(CO_Data* d, UNS8 nodeId);
+00069 
+00070 
+00071 static void CheckSDOAndContinue(CO_Data* d, UNS8 nodeId)
+00072 {
+00073         UNS32 abortCode;        
+00074         if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
+00075                 eprintf("Master : Failed in initializing slave %2.2x, step %d, AbortCode :%4.4x \n", nodeId, init_step, abortCode);
+00076 
+00077         /* Finalise last SDO transfer with this node */
+00078         closeSDOtransfer(&TestMaster_Data, nodeId, SDO_CLIENT);
+00079 
+00080         ConfigureSlaveNode(d, nodeId);
+00081 }
+00082 
+00083 /********************************************************
+00084  * ConfigureSlaveNode is responsible to
+00085  *  - setup slave TPDO 1 transmit time
+00086  *  - setup slave TPDO 2 transmit time
+00087  *  - switch to operational mode
+00088  *  - send NMT to slave
+00089  ********************************************************
+00090  * This an example of :
+00091  * Network Dictionary Access (SDO) with Callback 
+00092  * Slave node state change request (NMT) 
+00093  ********************************************************
+00094  * This is called first by TestMaster_preOperational
+00095  * then it called again each time a SDO exchange is
+00096  * finished.
+00097  ********************************************************/
+00098  
+00099 static void ConfigureSlaveNode(CO_Data* d, UNS8 nodeId)
+00100 {
+00101         /* Master configure heartbeat producer time at 1000 ms 
+00102          * for slave node-id 0x02 by DCF concise */
+00103          
+00104         UNS8 Transmission_Type = 0x01;
+00105         UNS32 abortCode;
+00106         UNS8 res;
+00107         eprintf("Master : ConfigureSlaveNode %2.2x\n", nodeId);
+00108 
+00109         switch(++init_step){
+00110                 case 1: /*First step : setup Slave's TPDO 1 to be transmitted on SYNC*/
+00111                         eprintf("Master : set slave %2.2x TPDO 1 transmit type\n", nodeId);
+00112                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00113                                         nodeId, /*UNS8 nodeId*/
+00114                                         0x1800, /*UNS16 index*/
+00115                                         0x02, /*UNS8 subindex*/
+00116                                         1, /*UNS8 count*/
+00117                                         0, /*UNS8 dataType*/
+00118                                         &Transmission_Type,/*void *data*/
+00119                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00120                                         break;
+00121                 
+00122                 case 2: /*Second step*/
+00123                         eprintf("Master : set slave %2.2x TPDO 2 transmit type\n", nodeId);
+00124                         writeNetworkDictCallBack (d, /*CO_Data* d*/
+00125                                         nodeId, /*UNS8 nodeId*/
+00126                                         0x1801, /*UNS16 index*/
+00127                                         0x02, /*UNS16 index*/
+00128                                         1, /*UNS8 count*/
+00129                                         0, /*UNS8 dataType*/
+00130                                         &Transmission_Type,/*void *data*/
+00131                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00132                                         break;
+00133                 case 3: 
+00134                 
+00135                 /****************************** START *******************************/
+00136                 
+00137                         /* Put the master in operational mode */
+00138                         setState(d, Operational);
+00139                  
+00140                         /* Ask slave node to go in operational mode */
+00141                         masterSendNMTstateChange (d, nodeId, NMT_Start_Node);
+00142                         
+00143         }
+00144 }
+00145 
+00146 void TestMaster_preOperational()
+00147 {
+00148 
+00149         eprintf("TestMaster_preOperational\n");
+00150         ConfigureSlaveNode(&TestMaster_Data, 0x02);
+00151         
+00152 }
+00153 
+00154 void TestMaster_operational()
+00155 {
+00156         eprintf("TestMaster_operational\n");
+00157 }
+00158 
+00159 void TestMaster_stopped()
+00160 {
+00161         eprintf("TestMaster_stopped\n");
+00162 }
+00163 
+00164 void TestMaster_post_sync()
+00165 {
+00166         eprintf("TestMaster_post_sync\n");
+00167         eprintf("Master: %d %d %d %d %d %d %d %d %d %x %x\n",MasterMap1,MasterMap2 ,MasterMap3, MasterMap4,MasterMap5,MasterMap6,MasterMap7,MasterMap8,MasterMap9,MasterMap10,MasterMap11);
+00168 }
+00169 
+00170 char query_result = 0;
+00171 char waiting_answer = 0;
+00172 
+00173 void TestMaster_post_TPDO()
+00174 {
+00175         eprintf("TestMaster_post_TPDO\n");
+00176 //
+00177 //      {
+00178 //              char zero = 0;
+00179 //              if(MasterMap4 > 0x80){
+00180 //                      writeNetworkDict (
+00181 //                              &TestMaster_Data,
+00182 //                              TestSlave_Data->bDeviceNodeId,
+00183 //                              0x2002,
+00184 //                              0x00,
+00185 //                              1,
+00186 //                              0,
+00187 //                              &zero); 
+00188 //              }
+00189 //      }
+00190 
+00191         if(waiting_answer){
+00192                 UNS32 abortCode;                        
+00193                 UNS8 size;                      
+00194                 switch(getReadResultNetworkDict (
+00195                         &TestMaster_Data, 
+00196                         0x02,
+00197                         &query_result,
+00198                         &size,
+00199                         &abortCode))
+00200                 {
+00201                         case SDO_FINISHED:
+00202                                 /* Do something with result here !!*/
+00203                                 eprintf("Got SDO answer (0x2002, 0x00), %d %d\n",query_result,size);
+00204                         case SDO_ABORTED_RCV:
+00205                         case SDO_ABORTED_INTERNAL:
+00206                         case SDO_RESET:
+00207                                 waiting_answer = 0;
+00208                                 closeSDOtransfer(
+00209                                         &TestMaster_Data,
+00210                                         0x02,
+00211                                         SDO_CLIENT);
+00212                         break;
+00213                         case SDO_DOWNLOAD_IN_PROGRESS:
+00214                         case SDO_UPLOAD_IN_PROGRESS:
+00215                         break;
+00216                 }
+00217         }else if(MasterMap1 % 10 == 0){
+00218                 readNetworkDict (
+00219                         &TestMaster_Data,
+00220                         0x02,
+00221                         0x2002,
+00222                         0x00,
+00223                         0);
+00224                 waiting_answer = 1;
+00225         }
+00226 }
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,272 @@ + + +CanFestival: examples/TestMasterSlave/Master.c File Reference + + + + +
+
+
+
+ +

Master.c File Reference

#include "Master.h"
+#include "Slave.h"
+#include "TestMasterSlave.h"
+ +

+Include dependency graph for Master.c:

+ + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + +

Functions

void TestMaster_heartbeatError (UNS8 heartbeatID)
void TestMaster_initialisation ()
void TestMaster_preOperational ()
void TestMaster_operational ()
void TestMaster_stopped ()
void TestMaster_post_sync ()
void TestMaster_post_TPDO ()

Variables

char query_result = 0
char waiting_answer = 0
+


Function Documentation

+ +
+
+ + + + + + + + + +
void TestMaster_heartbeatError (UNS8  heartbeatID  ) 
+
+
+ +

+ +

+Definition at line 28 of file Master.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestMaster_initialisation (void   ) 
+
+
+ +

+ +

+Definition at line 38 of file Master.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestMaster_operational (void   ) 
+
+
+ +

+ +

+Definition at line 154 of file Master.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestMaster_post_sync (void   ) 
+
+
+ +

+ +

+Definition at line 164 of file Master.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestMaster_post_TPDO (void   ) 
+
+
+ +

+ +

+Definition at line 173 of file Master.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestMaster_preOperational (void   ) 
+
+
+ +

+ +

+Definition at line 146 of file Master.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestMaster_stopped (void   ) 
+
+
+ +

+ +

+Definition at line 159 of file Master.c. +

+Referenced by main(). +

+

+


Variable Documentation

+ +
+
+ + + + +
char query_result = 0
+
+
+ +

+ +

+Definition at line 170 of file Master.c. +

+

+ +

+
+ + + + +
char waiting_answer = 0
+
+
+ +

+ +

+Definition at line 171 of file Master.c. +

+

+


Generated on Fri Jun 8 08:51:49 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $Master_8h.html 348,5 428,29 +rect $Slave_8h.html 352,53 424,77 +rect $TestMasterSlave_8h.html 316,101 460,125 +rect $TestMasterSlave_2TestMaster_8h.html 511,5 617,29 +rect $data_8h.html 687,29 751,53 +rect $TestSlave_8h.html 515,53 613,77 +rect $win32_2canfestival_8h.html 511,101 617,125 +rect $win32_2timerscfg_8h.html 669,77 768,101 +rect $can__driver_8h.html 667,176 771,200 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b28b84cba1fbee190bbb55f3b93ddacc \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8c__incl.png Binary file doc/doxygen/html/Master_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,39 @@ + + +CanFestival: examples/TestMasterSlave/Master.h Source File + + + + +
+
+
+
+ +

Master.h

Go to the documentation of this file.
00001 #include "TestMaster.h"
+00002 
+00003 void TestMaster_heartbeatError(UNS8);
+00004 
+00005 UNS8 TestMaster_canSend(Message *);
+00006 
+00007 void TestMaster_initialisation(void);
+00008 void TestMaster_preOperational(void);
+00009 void TestMaster_operational(void);
+00010 void TestMaster_stopped(void);
+00011 
+00012 void TestMaster_post_sync(void);
+00013 void TestMaster_post_TPDO(void);
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,287 @@ + + +CanFestival: examples/TestMasterSlave/Master.h File Reference + + + + +
+
+
+
+ +

Master.h File Reference

#include "TestMaster.h"
+ +

+Include dependency graph for Master.h:

+ + + + + + + + + + + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + +

Functions

void TestMaster_heartbeatError (UNS8)
UNS8 TestMaster_canSend (Message *)
void TestMaster_initialisation (void)
void TestMaster_preOperational (void)
void TestMaster_operational (void)
void TestMaster_stopped (void)
void TestMaster_post_sync (void)
void TestMaster_post_TPDO (void)
+


Function Documentation

+ +
+
+ + + + + + + + + +
UNS8 TestMaster_canSend (Message  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
void TestMaster_heartbeatError (UNS8   ) 
+
+
+ +

+ +

+Definition at line 28 of file Master.c. +

+References eprintf. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_initialisation (void   ) 
+
+
+ +

+ +

+Definition at line 38 of file Master.c. +

+References eprintf, RW, slavenodeid, TestMaster_Data, UNS32, UNS8, and writeLocalDict(). +

+Here is the call graph for this function:

+ + + + + + +
+

+ +

+
+ + + + + + + + + +
void TestMaster_operational (void   ) 
+
+
+ +

+ +

+Definition at line 154 of file Master.c. +

+References eprintf. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_post_sync (void   ) 
+
+
+ +

+ +

+Definition at line 164 of file Master.c. +

+References DI1, DI2, DI3, DI4, DI5, DI6, DI7, DI8, DO, eprintf, MasterMap1, MasterMap10, MasterMap11, MasterMap2, MasterMap3, MasterMap4, MasterMap5, MasterMap6, MasterMap7, MasterMap8, and MasterMap9. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_post_TPDO (void   ) 
+
+
+ +

+ +

+Definition at line 173 of file Master.c. +

+References closeSDOtransfer(), eprintf, getReadResultNetworkDict(), MasterMap1, readNetworkDict(), SDO_ABORTED_INTERNAL, SDO_ABORTED_RCV, SDO_CLIENT, SDO_DOWNLOAD_IN_PROGRESS, SDO_FINISHED, SDO_RESET, SDO_UPLOAD_IN_PROGRESS, TestMaster_Data, UNS32, and UNS8. +

+Here is the call graph for this function:

+ + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void TestMaster_preOperational (void   ) 
+
+
+ +

+ +

+Definition at line 146 of file Master.c. +

+References eprintf, slavenodeid, and TestMaster_Data. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_stopped (void   ) 
+
+
+ +

+ +

+Definition at line 159 of file Master.c. +

+References eprintf. +

+

+


Generated on Fri Jun 8 08:51:49 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h_0c39246491ef97103fad9f8087c7994b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h_0c39246491ef97103fad9f8087c7994b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $objacces_8c.html#7cc58d6e7711bd0d9fd75e8ff721ce36 240,6 357,30 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 405,6 512,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 561,6 729,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h_0c39246491ef97103fad9f8087c7994b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h_0c39246491ef97103fad9f8087c7994b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +367c52542a1fd1d4da7c85f50e065ddf \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h_0c39246491ef97103fad9f8087c7994b_cgraph.png Binary file doc/doxygen/html/Master_8h_0c39246491ef97103fad9f8087c7994b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $Master_8c.html 351,6 612,30 +rect $Slave_8c.html 355,54 608,78 +rect $TestMasterSlave_8c.html 319,102 644,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +96128c6f67011f3729cf5ab016fd67b2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h__dep__incl.png Binary file doc/doxygen/html/Master_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $TestMasterSlave_2TestMaster_8h.html 319,299 425,323 +rect $data_8h.html 476,299 540,323 +rect $win32_2applicfg_8h.html 745,251 833,275 +rect $def_8h.html 761,32 817,56 +rect $can_8h.html 613,203 672,227 +rect $objdictdef_8h.html 592,155 693,179 +rect $objacces_8h.html 596,299 689,323 +rect $sdo_8h.html 613,251 672,275 +rect $pdo_8h.html 613,56 672,80 +rect $states_8h.html 605,395 680,419 +rect $lifegrd_8h.html 604,347 681,371 +rect $sync_8h.html 609,443 676,467 +rect $nmtMaster_8h.html 589,491 696,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +89fb815412143fea357383d23b1932db \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h__incl.png Binary file doc/doxygen/html/Master_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h_b85edc6945cb2404d6eef4a11cd66c82_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h_b85edc6945cb2404d6eef4a11cd66c82_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $sdo_8c.html#555a772d3a88a29c495f33513f8b2d58 483,56 621,80 +rect $sdo_8c.html#05b0c8eee1faee3c7a2f6e2ba3a16533 229,7 432,31 +rect $sdo_8c.html#0e102a0835e4115920cd406e80a8d135 264,105 397,129 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 673,8 815,32 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 689,56 799,80 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 865,81 961,105 +rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 481,105 623,129 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 680,155 808,179 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 703,203 785,227 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 873,203 953,227 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h_b85edc6945cb2404d6eef4a11cd66c82_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Master_8h_b85edc6945cb2404d6eef4a11cd66c82_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0c4d64042de383ac05bfc4d682ade253 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Master_8h_b85edc6945cb2404d6eef4a11cd66c82_cgraph.png Binary file doc/doxygen/html/Master_8h_b85edc6945cb2404d6eef4a11cd66c82_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,114 @@ + + +CanFestival: examples/TestMasterSlave/Slave.c Source File + + + + +
+
+
+
+ +

Slave.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #include "Slave.h"
+00024 #include "Master.h"
+00025 #include "TestMasterSlave.h"
+00026 
+00027 /*****************************************************************************/
+00028 void TestSlave_heartbeatError(UNS8 heartbeatID)
+00029 {
+00030         eprintf("TestSlave_heartbeatError %d\n", heartbeatID);
+00031 }
+00032 
+00033 void TestSlave_initialisation()
+00034 {
+00035         eprintf("TestSlave_initialisation\n");
+00036 }
+00037 
+00038 void TestSlave_preOperational()
+00039 {
+00040         eprintf("TestSlave_preOperational\n");
+00041 }
+00042 
+00043 void TestSlave_operational()
+00044 {
+00045         eprintf("TestSlave_operational\n");
+00046 }
+00047 
+00048 void TestSlave_stopped()
+00049 {
+00050         eprintf("TestSlave_stopped\n");
+00051 }
+00052 
+00053 void TestSlave_post_sync()
+00054 {
+00055       eprintf("TestSlave_post_sync\n");
+00056       
+00057       SlaveMap1=1;
+00058       SlaveMap2=1;
+00059       SlaveMap3=0;
+00060       SlaveMap4=0;
+00061       SlaveMap5=1;
+00062       SlaveMap6=0;
+00063       SlaveMap7=1;
+00064       SlaveMap8=0;
+00065       SlaveMap9=16;
+00066       SlaveMap10 = 0xff00ff00;
+00067       SlaveMap11 = 0xabcd;
+00068       eprintf("Slave: %d %d %d %d %d %d %d %d %d %x %x\n",SlaveMap1, SlaveMap2, SlaveMap3, SlaveMap4, SlaveMap5, SlaveMap6, SlaveMap7, SlaveMap8, SlaveMap9, SlaveMap10,SlaveMap11);
+00069 }
+00070 
+00071 void TestSlave_post_TPDO()
+00072 {
+00073         eprintf("TestSlave_post_TPDO\n");
+00074 }
+00075 
+00076 void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex)
+00077 {
+00078         /*TODO : 
+00079          * - call getODEntry for index and subindex, 
+00080          * - save content to file, database, flash, nvram, ...
+00081          * 
+00082          * To ease flash organisation, index of variable to store
+00083          * can be established by scanning d->objdict[d->ObjdictSize]
+00084          * for variables to store.
+00085          * 
+00086          * */
+00087         eprintf("TestSlave_storeODSubIndex : %4.4x %2.2x\n", wIndex,  bSubindex);
+00088 }
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,283 @@ + + +CanFestival: examples/TestMasterSlave/Slave.c File Reference + + + + +
+
+
+
+ +

Slave.c File Reference

#include "Slave.h"
+#include "Master.h"
+#include "TestMasterSlave.h"
+ +

+Include dependency graph for Slave.c:

+ + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + +

Functions

void TestSlave_heartbeatError (UNS8 heartbeatID)
void TestSlave_initialisation ()
void TestSlave_preOperational ()
void TestSlave_operational ()
void TestSlave_stopped ()
void TestSlave_post_sync ()
void TestSlave_post_TPDO ()
void TestSlave_storeODSubIndex (UNS16 wIndex, UNS8 bSubindex)
+


Function Documentation

+ +
+
+ + + + + + + + + +
void TestSlave_heartbeatError (UNS8  heartbeatID  ) 
+
+
+ +

+ +

+Definition at line 28 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_initialisation (void   ) 
+
+
+ +

+ +

+Definition at line 33 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_operational (void   ) 
+
+
+ +

+ +

+Definition at line 43 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_post_sync (void   ) 
+
+
+ +

+ +

+Definition at line 53 of file Slave.c. +

+References eprintf, SlaveMap1, SlaveMap10, SlaveMap11, SlaveMap2, SlaveMap3, SlaveMap4, SlaveMap5, SlaveMap6, SlaveMap7, SlaveMap8, and SlaveMap9. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_post_TPDO (void   ) 
+
+
+ +

+ +

+Definition at line 71 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_preOperational (void   ) 
+
+
+ +

+ +

+Definition at line 38 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_stopped (void   ) 
+
+
+ +

+ +

+Definition at line 48 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void TestSlave_storeODSubIndex (UNS16  wIndex,
UNS8  bSubindex 
)
+
+
+ +

+ +

+Definition at line 76 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+


Generated on Fri Jun 8 08:51:50 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $Slave_8h.html 347,5 419,29 +rect $Master_8h.html 343,53 423,77 +rect $TestMasterSlave_8h.html 311,101 455,125 +rect $TestSlave_8h.html 509,5 608,29 +rect $data_8h.html 681,29 745,53 +rect $TestMasterSlave_2TestMaster_8h.html 505,53 612,77 +rect $win32_2canfestival_8h.html 505,101 612,125 +rect $win32_2timerscfg_8h.html 664,77 763,101 +rect $can__driver_8h.html 661,176 765,200 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +381982f14048255a29793b065c543fde \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8c__incl.png Binary file doc/doxygen/html/Slave_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,40 @@ + + +CanFestival: examples/TestMasterSlave/Slave.h Source File + + + + +
+
+
+
+ +

Slave.h

Go to the documentation of this file.
00001 #include "TestSlave.h"
+00002 
+00003 void TestSlave_heartbeatError(UNS8);
+00004 
+00005 UNS8 TestSlave_canSend(Message *);
+00006 
+00007 void TestSlave_initialisation(void);
+00008 void TestSlave_preOperational(void);
+00009 void TestSlave_operational(void);
+00010 void TestSlave_stopped(void);
+00011 
+00012 void TestSlave_post_sync(void);
+00013 void TestSlave_post_TPDO(void);
+00014 void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex);
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,315 @@ + + +CanFestival: examples/TestMasterSlave/Slave.h File Reference + + + + +
+
+
+
+ +

Slave.h File Reference

#include "TestSlave.h"
+ +

+Include dependency graph for Slave.h:

+ + + + + + + + + + + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + +

Functions

void TestSlave_heartbeatError (UNS8)
UNS8 TestSlave_canSend (Message *)
void TestSlave_initialisation (void)
void TestSlave_preOperational (void)
void TestSlave_operational (void)
void TestSlave_stopped (void)
void TestSlave_post_sync (void)
void TestSlave_post_TPDO (void)
void TestSlave_storeODSubIndex (UNS16 wIndex, UNS8 bSubindex)
+


Function Documentation

+ +
+
+ + + + + + + + + +
UNS8 TestSlave_canSend (Message  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
void TestSlave_heartbeatError (UNS8   ) 
+
+
+ +

+ +

+Definition at line 28 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_initialisation (void   ) 
+
+
+ +

+ +

+Definition at line 33 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_operational (void   ) 
+
+
+ +

+ +

+Definition at line 43 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_post_sync (void   ) 
+
+
+ +

+ +

+Definition at line 53 of file Slave.c. +

+References eprintf, SlaveMap1, SlaveMap10, SlaveMap11, SlaveMap2, SlaveMap3, SlaveMap4, SlaveMap5, SlaveMap6, SlaveMap7, SlaveMap8, and SlaveMap9. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_post_TPDO (void   ) 
+
+
+ +

+ +

+Definition at line 71 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_preOperational (void   ) 
+
+
+ +

+ +

+Definition at line 38 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void TestSlave_stopped (void   ) 
+
+
+ +

+ +

+Definition at line 48 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void TestSlave_storeODSubIndex (UNS16  wIndex,
UNS8  bSubindex 
)
+
+
+ +

+ +

+Definition at line 76 of file Slave.c. +

+References eprintf. +

+Referenced by main(). +

+

+


Generated on Fri Jun 8 08:51:50 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $Master_8c.html 343,6 604,30 +rect $Slave_8c.html 347,54 600,78 +rect $TestMasterSlave_8c.html 311,102 636,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +82ccf1fcc91f7184b681c2f4427c102e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h__dep__incl.png Binary file doc/doxygen/html/Slave_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $TestSlave_8h.html 311,299 409,323 +rect $data_8h.html 460,299 524,323 +rect $win32_2applicfg_8h.html 729,251 817,275 +rect $def_8h.html 745,32 801,56 +rect $can_8h.html 597,203 656,227 +rect $objdictdef_8h.html 576,155 677,179 +rect $objacces_8h.html 580,299 673,323 +rect $sdo_8h.html 597,251 656,275 +rect $pdo_8h.html 597,56 656,80 +rect $states_8h.html 589,395 664,419 +rect $lifegrd_8h.html 588,347 665,371 +rect $sync_8h.html 593,443 660,467 +rect $nmtMaster_8h.html 573,491 680,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/Slave_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +3d9c7de123e504f731dfd483274749e6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/Slave_8h__incl.png Binary file doc/doxygen/html/Slave_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,366 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMaster.c Source File + + + + +
+
+
+
+ +

TestMaster.c

Go to the documentation of this file.
00001 
+00002 /* File generated by gen_cfile.py. Should not be modified. */
+00003 
+00004 #include "TestMaster.h"
+00005 
+00006 /**************************************************************************/
+00007 /* Declaration of the mapped variables                                    */
+00008 /**************************************************************************/
+00009 UNS8 DO = 0x0;          /* Mapped at index 0x2000, subindex 0x00 */
+00010 UNS8 DI1 = 0x0;         /* Mapped at index 0x200F, subindex 0x00 */
+00011 UNS8 DI2 = 0x0;         /* Mapped at index 0x2010, subindex 0x00 */
+00012 UNS8 DI3 = 0x0;         /* Mapped at index 0x2011, subindex 0x00 */
+00013 UNS8 DI4 = 0x0;         /* Mapped at index 0x2012, subindex 0x00 */
+00014 UNS8 DI5 = 0x0;         /* Mapped at index 0x2013, subindex 0x00 */
+00015 UNS8 DI6 = 0x0;         /* Mapped at index 0x2014, subindex 0x00 */
+00016 UNS8 DI7 = 0x0;         /* Mapped at index 0x2015, subindex 0x00 */
+00017 UNS8 DI8 = 0x0;         /* Mapped at index 0x2016, subindex 0x00 */
+00018 
+00019 /**************************************************************************/
+00020 /* Declaration of the value range types                                   */
+00021 /**************************************************************************/
+00022 
+00023 UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void * value)
+00024 {
+00025   switch (typeValue) {
+00026   }
+00027   return 0;
+00028 }
+00029 
+00030 /**************************************************************************/
+00031 /* The node id                                                            */
+00032 /**************************************************************************/
+00033 /* node_id default value.*/
+00034 UNS8 TestMaster_bDeviceNodeId = 0x01;
+00035 
+00036 /**************************************************************************/
+00037 /* Array of message processing information */
+00038 
+00039 const UNS8 TestMaster_iam_a_slave = 0;
+00040 
+00041 TIMER_HANDLE TestMaster_heartBeatTimers[1] = {TIMER_NONE,};
+00042 
+00043 /*
+00044 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00045 
+00046                                OBJECT DICTIONARY
+00047 
+00048 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00049 */
+00050 
+00051 /* index 0x1000 :   Device Type. */
+00052                     UNS32 TestMaster_obj1000 = 0x191;   /* 401 */
+00053                     subindex TestMaster_Index1000[] = 
+00054                      {
+00055                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1000 }
+00056                      };
+00057 
+00058 /* index 0x1001 :   Error Register. */
+00059                     UNS8 TestMaster_obj1001 = 0x0;      /* 0 */
+00060                     subindex TestMaster_Index1001[] = 
+00061                      {
+00062                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
+00063                      };
+00064 
+00065 /* index 0x1005 :   SYNC COB ID. */
+00066                     UNS32 TestMaster_obj1005 = 0x40000080;      /* 1073741952 */
+00067                     ODCallback_t TestMaster_Index1005_callbacks[] = 
+00068                      {
+00069                        NULL,
+00070                      };
+00071                     subindex TestMaster_Index1005[] = 
+00072                      {
+00073                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1005 }
+00074                      };
+00075 
+00076 /* index 0x1006 :   Communication / Cycle Period. */
+00077                     UNS32 TestMaster_obj1006 = 0xC350;  /* 50000 */
+00078                     ODCallback_t TestMaster_Index1006_callbacks[] = 
+00079                      {
+00080                        NULL,
+00081                      };
+00082                     subindex TestMaster_Index1006[] = 
+00083                      {
+00084                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 }
+00085                      };
+00086 
+00087 /* index 0x1016 :   Consumer Heartbeat Time. */
+00088                     UNS8 TestMaster_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/
+00089                     UNS32 TestMaster_obj1016[] = 
+00090                     {
+00091                       0x4005DC  /* 4195804 */
+00092                     };
+00093                     subindex TestMaster_Index1016[] = 
+00094                      {
+00095                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1016 },
+00096                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1016[0] }
+00097                      };
+00098 
+00099 /* index 0x1017 :   Producer Heartbeat Time */ 
+00100                     UNS16 TestMaster_obj1017 = 0x0;   /* 0 */
+00101 
+00102 /* index 0x1018 :   Identity. */
+00103                     UNS8 TestMaster_highestSubIndex_obj1018 = 4; /* number of subindex - 1*/
+00104                     UNS32 TestMaster_obj1018_Vendor_ID = 0x0;   /* 0 */
+00105                     UNS32 TestMaster_obj1018_Product_Code = 0x0;        /* 0 */
+00106                     UNS32 TestMaster_obj1018_Revision_Number = 0x0;     /* 0 */
+00107                     UNS32 TestMaster_obj1018_Serial_Number = 0x0;       /* 0 */
+00108                     subindex TestMaster_Index1018[] = 
+00109                      {
+00110                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1018 },
+00111                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Vendor_ID },
+00112                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Product_Code },
+00113                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Revision_Number },
+00114                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Serial_Number }
+00115                      };
+00116 
+00117 /* index 0x1280 :   Client SDO 1 Parameter. */
+00118                     UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
+00119                     UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640;      /* 1600 */
+00120                     UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0;       /* 1472 */
+00121                     INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40;      /* 64 */
+00122                     subindex TestMaster_Index1280[] = 
+00123                      {
+00124                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
+00125                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
+00126                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
+00127                        { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
+00128                      };
+00129 
+00130 /* index 0x1400 :   Receive PDO 1 Parameter. */
+00131                     UNS8 TestMaster_highestSubIndex_obj1400 = 5; /* number of subindex - 1*/
+00132                     UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x220;        /* 544 */
+00133                     UNS8 TestMaster_obj1400_Transmission_Type = 0x1;    /* 1 */
+00134                     UNS16 TestMaster_obj1400_Inhibit_Time = 0x0;        /* 0 */
+00135                     UNS8 TestMaster_obj1400_Compatibility_Entry = 0x0;  /* 0 */
+00136                     UNS16 TestMaster_obj1400_Event_Timer = 0x0; /* 0 */
+00137                     subindex TestMaster_Index1400[] = 
+00138                      {
+00139                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1400 },
+00140                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1400_COB_ID_used_by_PDO },
+00141                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Transmission_Type },
+00142                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Inhibit_Time },
+00143                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Compatibility_Entry },
+00144                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Event_Timer }
+00145                      };
+00146 
+00147 /* index 0x1600 :   Receive PDO 1 Mapping. */
+00148                     UNS8 TestMaster_highestSubIndex_obj1600 = 8; /* number of subindex - 1*/
+00149                     UNS32 TestMaster_obj1600[] = 
+00150                     {
+00151                       0x200F0001,       /* 537853953 */
+00152                       0x20100001,       /* 537919489 */
+00153                       0x20110001,       /* 537985025 */
+00154                       0x20120001,       /* 538050561 */
+00155                       0x20130001,       /* 538116097 */
+00156                       0x20140001,       /* 538181633 */
+00157                       0x20150001,       /* 538247169 */
+00158                       0x20160001        /* 538312705 */
+00159                     };
+00160                     subindex TestMaster_Index1600[] = 
+00161                      {
+00162                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1600 },
+00163                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[0] },
+00164                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[1] },
+00165                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[2] },
+00166                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[3] },
+00167                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[4] },
+00168                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[5] },
+00169                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[6] },
+00170                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[7] }
+00171                      };
+00172 
+00173 /* index 0x1800 :   Transmit PDO 1 Parameter. */
+00174                     UNS8 TestMaster_highestSubIndex_obj1800 = 5; /* number of subindex - 1*/
+00175                     UNS32 TestMaster_obj1800_COB_ID_used_by_PDO = 0x240;        /* 576 */
+00176                     UNS8 TestMaster_obj1800_Transmission_Type = 0x1;    /* 1 */
+00177                     UNS16 TestMaster_obj1800_Inhibit_Time = 0x0;        /* 0 */
+00178                     UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0;  /* 0 */
+00179                     UNS16 TestMaster_obj1800_Event_Timer = 0x0; /* 0 */
+00180                     subindex TestMaster_Index1800[] = 
+00181                      {
+00182                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1800 },
+00183                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1800_COB_ID_used_by_PDO },
+00184                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1800_Transmission_Type },
+00185                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1800_Inhibit_Time },
+00186                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1800_Compatibility_Entry },
+00187                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1800_Event_Timer }
+00188                      };
+00189 
+00190 /* index 0x1A00 :   Transmit PDO 1 Mapping. */
+00191                     UNS8 TestMaster_highestSubIndex_obj1A00 = 1; /* number of subindex - 1*/
+00192                     UNS32 TestMaster_obj1A00[] = 
+00193                     {
+00194                       0x20000008        /* 536870920 */
+00195                     };
+00196                     subindex TestMaster_Index1A00[] = 
+00197                      {
+00198                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1A00 },
+00199                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1A00[0] }
+00200                      };
+00201 
+00202 /* index 0x2000 :   Mapped variable DO */
+00203                     subindex TestMaster_Index2000[] = 
+00204                      {
+00205                        { RW, uint8, sizeof (UNS8), (void*)&DO }
+00206                      };
+00207 
+00208 /* index 0x200F :   Mapped variable DI1 */
+00209                     subindex TestMaster_Index200F[] = 
+00210                      {
+00211                        { RW, boolean, sizeof (UNS8), (void*)&DI1 }
+00212                      };
+00213 
+00214 /* index 0x2010 :   Mapped variable DI2 */
+00215                     subindex TestMaster_Index2010[] = 
+00216                      {
+00217                        { RW, boolean, sizeof (UNS8), (void*)&DI2 }
+00218                      };
+00219 
+00220 /* index 0x2011 :   Mapped variable DI3 */
+00221                     subindex TestMaster_Index2011[] = 
+00222                      {
+00223                        { RW, boolean, sizeof (UNS8), (void*)&DI3 }
+00224                      };
+00225 
+00226 /* index 0x2012 :   Mapped variable DI4 */
+00227                     subindex TestMaster_Index2012[] = 
+00228                      {
+00229                        { RW, boolean, sizeof (UNS8), (void*)&DI4 }
+00230                      };
+00231 
+00232 /* index 0x2013 :   Mapped variable DI5 */
+00233                     subindex TestMaster_Index2013[] = 
+00234                      {
+00235                        { RW, boolean, sizeof (UNS8), (void*)&DI5 }
+00236                      };
+00237 
+00238 /* index 0x2014 :   Mapped variable DI6 */
+00239                     subindex TestMaster_Index2014[] = 
+00240                      {
+00241                        { RW, boolean, sizeof (UNS8), (void*)&DI6 }
+00242                      };
+00243 
+00244 /* index 0x2015 :   Mapped variable DI7 */
+00245                     subindex TestMaster_Index2015[] = 
+00246                      {
+00247                        { RW, boolean, sizeof (UNS8), (void*)&DI7 }
+00248                      };
+00249 
+00250 /* index 0x2016 :   Mapped variable DI8 */
+00251                     subindex TestMaster_Index2016[] = 
+00252                      {
+00253                        { RW, boolean, sizeof (UNS8), (void*)&DI8 }
+00254                      };
+00255 
+00256 const indextable TestMaster_objdict[] = 
+00257 {
+00258   { (subindex*)TestMaster_Index1000,sizeof(TestMaster_Index1000)/sizeof(TestMaster_Index1000[0]), 0x1000},
+00259   { (subindex*)TestMaster_Index1001,sizeof(TestMaster_Index1001)/sizeof(TestMaster_Index1001[0]), 0x1001},
+00260   { (subindex*)TestMaster_Index1005,sizeof(TestMaster_Index1005)/sizeof(TestMaster_Index1005[0]), 0x1005},
+00261   { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006},
+00262   { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016},
+00263   { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018},
+00264   { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280},
+00265   { (subindex*)TestMaster_Index1400,sizeof(TestMaster_Index1400)/sizeof(TestMaster_Index1400[0]), 0x1400},
+00266   { (subindex*)TestMaster_Index1600,sizeof(TestMaster_Index1600)/sizeof(TestMaster_Index1600[0]), 0x1600},
+00267   { (subindex*)TestMaster_Index1800,sizeof(TestMaster_Index1800)/sizeof(TestMaster_Index1800[0]), 0x1800},
+00268   { (subindex*)TestMaster_Index1A00,sizeof(TestMaster_Index1A00)/sizeof(TestMaster_Index1A00[0]), 0x1A00},
+00269   { (subindex*)TestMaster_Index2000,sizeof(TestMaster_Index2000)/sizeof(TestMaster_Index2000[0]), 0x2000},
+00270   { (subindex*)TestMaster_Index200F,sizeof(TestMaster_Index200F)/sizeof(TestMaster_Index200F[0]), 0x200F},
+00271   { (subindex*)TestMaster_Index2010,sizeof(TestMaster_Index2010)/sizeof(TestMaster_Index2010[0]), 0x2010},
+00272   { (subindex*)TestMaster_Index2011,sizeof(TestMaster_Index2011)/sizeof(TestMaster_Index2011[0]), 0x2011},
+00273   { (subindex*)TestMaster_Index2012,sizeof(TestMaster_Index2012)/sizeof(TestMaster_Index2012[0]), 0x2012},
+00274   { (subindex*)TestMaster_Index2013,sizeof(TestMaster_Index2013)/sizeof(TestMaster_Index2013[0]), 0x2013},
+00275   { (subindex*)TestMaster_Index2014,sizeof(TestMaster_Index2014)/sizeof(TestMaster_Index2014[0]), 0x2014},
+00276   { (subindex*)TestMaster_Index2015,sizeof(TestMaster_Index2015)/sizeof(TestMaster_Index2015[0]), 0x2015},
+00277   { (subindex*)TestMaster_Index2016,sizeof(TestMaster_Index2016)/sizeof(TestMaster_Index2016[0]), 0x2016},
+00278 };
+00279 
+00280 const indextable * TestMaster_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
+00281 {
+00282         int i;
+00283         *callbacks = NULL;
+00284         switch(wIndex){
+00285                 case 0x1000: i = 0;break;
+00286                 case 0x1001: i = 1;break;
+00287                 case 0x1005: i = 2;*callbacks = TestMaster_Index1005_callbacks; break;
+00288                 case 0x1006: i = 3;*callbacks = TestMaster_Index1006_callbacks; break;
+00289                 case 0x1016: i = 4;break;
+00290                 case 0x1018: i = 5;break;
+00291                 case 0x1280: i = 6;break;
+00292                 case 0x1400: i = 7;break;
+00293                 case 0x1600: i = 8;break;
+00294                 case 0x1800: i = 9;break;
+00295                 case 0x1A00: i = 10;break;
+00296                 case 0x2000: i = 11;break;
+00297                 case 0x200F: i = 12;break;
+00298                 case 0x2010: i = 13;break;
+00299                 case 0x2011: i = 14;break;
+00300                 case 0x2012: i = 15;break;
+00301                 case 0x2013: i = 16;break;
+00302                 case 0x2014: i = 17;break;
+00303                 case 0x2015: i = 18;break;
+00304                 case 0x2016: i = 19;break;
+00305                 default:
+00306                         *errorCode = OD_NO_SUCH_OBJECT;
+00307                         return NULL;
+00308         }
+00309         *errorCode = OD_SUCCESSFUL;
+00310         return &TestMaster_objdict[i];
+00311 }
+00312 
+00313 /* To count at which received SYNC a PDO must be sent.
+00314  * Even if no pdoTransmit are defined, at least one entry is computed
+00315  * for compilations issues.
+00316  */
+00317 UNS8 TestMaster_count_sync[1] = {0,};
+00318 
+00319 quick_index TestMaster_firstIndex = {
+00320   0, /* SDO_SVR */
+00321   6, /* SDO_CLT */
+00322   7, /* PDO_RCV */
+00323   8, /* PDO_RCV_MAP */
+00324   9, /* PDO_TRS */
+00325   10 /* PDO_TRS_MAP */
+00326 };
+00327 
+00328 quick_index TestMaster_lastIndex = {
+00329   0, /* SDO_SVR */
+00330   6, /* SDO_CLT */
+00331   7, /* PDO_RCV */
+00332   8, /* PDO_RCV_MAP */
+00333   9, /* PDO_TRS */
+00334   10 /* PDO_TRS_MAP */
+00335 };
+00336 
+00337 UNS16 TestMaster_ObjdictSize = sizeof(TestMaster_objdict)/sizeof(TestMaster_objdict[0]); 
+00338 
+00339 CO_Data TestMaster_Data = CANOPEN_NODE_DATA_INITIALIZER(TestMaster);
+00340 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1687 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMaster.c File Reference + + + + +
+
+
+
+ +

TestMaster.c File Reference

#include "TestMaster.h"
+ +

+Include dependency graph for TestMaster.c:

+ + + + + + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void *value)
const indextableTestMaster_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

Variables

UNS8 DO = 0x0
UNS8 DI1 = 0x0
UNS8 DI2 = 0x0
UNS8 DI3 = 0x0
UNS8 DI4 = 0x0
UNS8 DI5 = 0x0
UNS8 DI6 = 0x0
UNS8 DI7 = 0x0
UNS8 DI8 = 0x0
UNS8 TestMaster_bDeviceNodeId = 0x01
const UNS8 TestMaster_iam_a_slave = 0
TIMER_HANDLE TestMaster_heartBeatTimers [1] = {TIMER_NONE,}
UNS32 TestMaster_obj1000 = 0x191
subindex TestMaster_Index1000 []
UNS8 TestMaster_obj1001 = 0x0
subindex TestMaster_Index1001 []
UNS32 TestMaster_obj1005 = 0x40000080
ODCallback_t TestMaster_Index1005_callbacks []
subindex TestMaster_Index1005 []
UNS32 TestMaster_obj1006 = 0xC350
ODCallback_t TestMaster_Index1006_callbacks []
subindex TestMaster_Index1006 []
UNS8 TestMaster_highestSubIndex_obj1016 = 1
UNS32 TestMaster_obj1016 []
subindex TestMaster_Index1016 []
UNS16 TestMaster_obj1017 = 0x0
UNS8 TestMaster_highestSubIndex_obj1018 = 4
UNS32 TestMaster_obj1018_Vendor_ID = 0x0
UNS32 TestMaster_obj1018_Product_Code = 0x0
UNS32 TestMaster_obj1018_Revision_Number = 0x0
UNS32 TestMaster_obj1018_Serial_Number = 0x0
subindex TestMaster_Index1018 []
UNS8 TestMaster_highestSubIndex_obj1280 = 3
UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640
UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0
INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40
subindex TestMaster_Index1280 []
UNS8 TestMaster_highestSubIndex_obj1400 = 5
UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x220
UNS8 TestMaster_obj1400_Transmission_Type = 0x1
UNS16 TestMaster_obj1400_Inhibit_Time = 0x0
UNS8 TestMaster_obj1400_Compatibility_Entry = 0x0
UNS16 TestMaster_obj1400_Event_Timer = 0x0
subindex TestMaster_Index1400 []
UNS8 TestMaster_highestSubIndex_obj1600 = 8
UNS32 TestMaster_obj1600 []
subindex TestMaster_Index1600 []
UNS8 TestMaster_highestSubIndex_obj1800 = 5
UNS32 TestMaster_obj1800_COB_ID_used_by_PDO = 0x240
UNS8 TestMaster_obj1800_Transmission_Type = 0x1
UNS16 TestMaster_obj1800_Inhibit_Time = 0x0
UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0
UNS16 TestMaster_obj1800_Event_Timer = 0x0
subindex TestMaster_Index1800 []
UNS8 TestMaster_highestSubIndex_obj1A00 = 1
UNS32 TestMaster_obj1A00 []
subindex TestMaster_Index1A00 []
subindex TestMaster_Index2000 []
subindex TestMaster_Index200F []
subindex TestMaster_Index2010 []
subindex TestMaster_Index2011 []
subindex TestMaster_Index2012 []
subindex TestMaster_Index2013 []
subindex TestMaster_Index2014 []
subindex TestMaster_Index2015 []
subindex TestMaster_Index2016 []
const indextable TestMaster_objdict []
UNS8 TestMaster_count_sync [1] = {0,}
quick_index TestMaster_firstIndex
quick_index TestMaster_lastIndex
UNS16 TestMaster_ObjdictSize = sizeof(TestMaster_objdict)/sizeof(TestMaster_objdict[0])
CO_Data TestMaster_Data = CANOPEN_NODE_DATA_INITIALIZER(TestMaster)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const indextable* TestMaster_scanIndexOD (UNS16  wIndex,
UNS32 *  errorCode,
ODCallback_t **  callbacks 
)
+
+
+ +

+ +

+Definition at line 280 of file TestMaster.c. +

+References OD_NO_SUCH_OBJECT, OD_SUCCESSFUL, TestMaster_Index1005_callbacks, TestMaster_Index1006_callbacks, and TestMaster_objdict. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS32 TestMaster_valueRangeTest (UNS8  typeValue,
void *  value 
)
+
+
+ +

+ +

+Definition at line 23 of file TestMaster.c. +

+

+


Variable Documentation

+ +
+
+ + + + +
UNS8 DI1 = 0x0
+
+
+ +

+ +

+Definition at line 10 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI2 = 0x0
+
+
+ +

+ +

+Definition at line 11 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI3 = 0x0
+
+
+ +

+ +

+Definition at line 12 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI4 = 0x0
+
+
+ +

+ +

+Definition at line 13 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI5 = 0x0
+
+
+ +

+ +

+Definition at line 14 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI6 = 0x0
+
+
+ +

+ +

+Definition at line 15 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI7 = 0x0
+
+
+ +

+ +

+Definition at line 16 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI8 = 0x0
+
+
+ +

+ +

+Definition at line 17 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DO = 0x0
+
+
+ +

+ +

+Definition at line 9 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 TestMaster_bDeviceNodeId = 0x01
+
+
+ +

+ +

+Definition at line 34 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_count_sync[1] = {0,}
+
+
+ +

+ +

+Definition at line 317 of file TestMaster.c. +

+

+ +

+
+ + + + +
CO_Data TestMaster_Data = CANOPEN_NODE_DATA_INITIALIZER(TestMaster)
+
+
+ +

+ +

+Definition at line 339 of file TestMaster.c. +

+

+ +

+
+ + + + +
quick_index TestMaster_firstIndex
+
+
+ +

+Initial value:

 {
+  0, 
+  6, 
+  7, 
+  8, 
+  9, 
+  10 
+}
+
+

+Definition at line 319 of file TestMaster.c. +

+

+ +

+
+ + + + +
TIMER_HANDLE TestMaster_heartBeatTimers[1] = {TIMER_NONE,}
+
+
+ +

+ +

+Definition at line 41 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1016 = 1
+
+
+ +

+ +

+Definition at line 88 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1018 = 4
+
+
+ +

+ +

+Definition at line 103 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1280 = 3
+
+
+ +

+ +

+Definition at line 118 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1400 = 5
+
+
+ +

+ +

+Definition at line 131 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1600 = 8
+
+
+ +

+ +

+Definition at line 148 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1800 = 5
+
+
+ +

+ +

+Definition at line 174 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1A00 = 1
+
+
+ +

+ +

+Definition at line 191 of file TestMaster.c. +

+

+ +

+
+ + + + +
const UNS8 TestMaster_iam_a_slave = 0
+
+
+ +

+ +

+Definition at line 39 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1000[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1000 }
+                     }
+
+

+Definition at line 53 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1001[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
+                     }
+
+

+Definition at line 60 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1005[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1005 }
+                     }
+
+

+Definition at line 71 of file TestMaster.c. +

+

+ +

+
+ + + + +
ODCallback_t TestMaster_Index1005_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 67 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1006[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 }
+                     }
+
+

+Definition at line 82 of file TestMaster.c. +

+

+ +

+
+ + + + +
ODCallback_t TestMaster_Index1006_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 78 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1016[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1016 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1016[0] }
+                     }
+
+

+Definition at line 93 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1018[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1018 },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Vendor_ID },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Product_Code },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Revision_Number },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Serial_Number }
+                     }
+
+

+Definition at line 108 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1280[]
+
+
+ +

+Initial value:

+

+Definition at line 122 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1400[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1400 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1400_COB_ID_used_by_PDO },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Transmission_Type },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Inhibit_Time },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Compatibility_Entry },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Event_Timer }
+                     }
+
+

+Definition at line 137 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1600[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1600 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[0] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[1] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[2] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[3] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[4] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[5] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[6] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[7] }
+                     }
+
+

+Definition at line 160 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1800[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1800 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1800_COB_ID_used_by_PDO },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1800_Transmission_Type },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1800_Inhibit_Time },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1800_Compatibility_Entry },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1800_Event_Timer }
+                     }
+
+

+Definition at line 180 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1A00[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1A00 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1A00[0] }
+                     }
+
+

+Definition at line 196 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2000[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&DO }
+                     }
+
+

+Definition at line 203 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index200F[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI1 }
+                     }
+
+

+Definition at line 209 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2010[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI2 }
+                     }
+
+

+Definition at line 215 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2011[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI3 }
+                     }
+
+

+Definition at line 221 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2012[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI4 }
+                     }
+
+

+Definition at line 227 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2013[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI5 }
+                     }
+
+

+Definition at line 233 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2014[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI6 }
+                     }
+
+

+Definition at line 239 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2015[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI7 }
+                     }
+
+

+Definition at line 245 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2016[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&DI8 }
+                     }
+
+

+Definition at line 251 of file TestMaster.c. +

+

+ +

+
+ + + + +
quick_index TestMaster_lastIndex
+
+
+ +

+Initial value:

 {
+  0, 
+  6, 
+  7, 
+  8, 
+  9, 
+  10 
+}
+
+

+Definition at line 328 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1000 = 0x191
+
+
+ +

+ +

+Definition at line 52 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1001 = 0x0
+
+
+ +

+ +

+Definition at line 59 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1005 = 0x40000080
+
+
+ +

+ +

+Definition at line 66 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1006 = 0xC350
+
+
+ +

+ +

+Definition at line 77 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1016[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x4005DC  
+                    }
+
+

+Definition at line 89 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1017 = 0x0
+
+
+ +

+ +

+Definition at line 100 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Product_Code = 0x0
+
+
+ +

+ +

+Definition at line 105 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Revision_Number = 0x0
+
+
+ +

+ +

+Definition at line 106 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Serial_Number = 0x0
+
+
+ +

+ +

+Definition at line 107 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Vendor_ID = 0x0
+
+
+ +

+ +

+Definition at line 104 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640
+
+
+ +

+ +

+Definition at line 119 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0
+
+
+ +

+ +

+Definition at line 120 of file TestMaster.c. +

+

+ +

+
+ + + + +
INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40
+
+
+ +

+ +

+Definition at line 121 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x220
+
+
+ +

+ +

+Definition at line 132 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1400_Compatibility_Entry = 0x0
+
+
+ +

+ +

+Definition at line 135 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1400_Event_Timer = 0x0
+
+
+ +

+ +

+Definition at line 136 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1400_Inhibit_Time = 0x0
+
+
+ +

+ +

+Definition at line 134 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1400_Transmission_Type = 0x1
+
+
+ +

+ +

+Definition at line 133 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1600[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x200F0001,       
+                      0x20100001,       
+                      0x20110001,       
+                      0x20120001,       
+                      0x20130001,       
+                      0x20140001,       
+                      0x20150001,       
+                      0x20160001        
+                    }
+
+

+Definition at line 149 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1800_COB_ID_used_by_PDO = 0x240
+
+
+ +

+ +

+Definition at line 175 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0
+
+
+ +

+ +

+Definition at line 178 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1800_Event_Timer = 0x0
+
+
+ +

+ +

+Definition at line 179 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1800_Inhibit_Time = 0x0
+
+
+ +

+ +

+Definition at line 177 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1800_Transmission_Type = 0x1
+
+
+ +

+ +

+Definition at line 176 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1A00[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x20000008        
+                    }
+
+

+Definition at line 192 of file TestMaster.c. +

+

+ +

+
+ + + + +
const indextable TestMaster_objdict[]
+
+
+ +

+Initial value:

 
+{
+  { (subindex*)TestMaster_Index1000,sizeof(TestMaster_Index1000)/sizeof(TestMaster_Index1000[0]), 0x1000},
+  { (subindex*)TestMaster_Index1001,sizeof(TestMaster_Index1001)/sizeof(TestMaster_Index1001[0]), 0x1001},
+  { (subindex*)TestMaster_Index1005,sizeof(TestMaster_Index1005)/sizeof(TestMaster_Index1005[0]), 0x1005},
+  { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006},
+  { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016},
+  { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018},
+  { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280},
+  { (subindex*)TestMaster_Index1400,sizeof(TestMaster_Index1400)/sizeof(TestMaster_Index1400[0]), 0x1400},
+  { (subindex*)TestMaster_Index1600,sizeof(TestMaster_Index1600)/sizeof(TestMaster_Index1600[0]), 0x1600},
+  { (subindex*)TestMaster_Index1800,sizeof(TestMaster_Index1800)/sizeof(TestMaster_Index1800[0]), 0x1800},
+  { (subindex*)TestMaster_Index1A00,sizeof(TestMaster_Index1A00)/sizeof(TestMaster_Index1A00[0]), 0x1A00},
+  { (subindex*)TestMaster_Index2000,sizeof(TestMaster_Index2000)/sizeof(TestMaster_Index2000[0]), 0x2000},
+  { (subindex*)TestMaster_Index200F,sizeof(TestMaster_Index200F)/sizeof(TestMaster_Index200F[0]), 0x200F},
+  { (subindex*)TestMaster_Index2010,sizeof(TestMaster_Index2010)/sizeof(TestMaster_Index2010[0]), 0x2010},
+  { (subindex*)TestMaster_Index2011,sizeof(TestMaster_Index2011)/sizeof(TestMaster_Index2011[0]), 0x2011},
+  { (subindex*)TestMaster_Index2012,sizeof(TestMaster_Index2012)/sizeof(TestMaster_Index2012[0]), 0x2012},
+  { (subindex*)TestMaster_Index2013,sizeof(TestMaster_Index2013)/sizeof(TestMaster_Index2013[0]), 0x2013},
+  { (subindex*)TestMaster_Index2014,sizeof(TestMaster_Index2014)/sizeof(TestMaster_Index2014[0]), 0x2014},
+  { (subindex*)TestMaster_Index2015,sizeof(TestMaster_Index2015)/sizeof(TestMaster_Index2015[0]), 0x2015},
+  { (subindex*)TestMaster_Index2016,sizeof(TestMaster_Index2016)/sizeof(TestMaster_Index2016[0]), 0x2016},
+}
+
+

+Definition at line 256 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_ObjdictSize = sizeof(TestMaster_objdict)/sizeof(TestMaster_objdict[0])
+
+
+ +

+ +

+Definition at line 337 of file TestMaster.c. +

+

+


Generated on Fri Jun 8 08:51:50 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $TestMasterMicroMod_2TestMaster_8h.html 372,299 479,323 +rect $data_8h.html 529,299 593,323 +rect $win32_2applicfg_8h.html 799,251 887,275 +rect $def_8h.html 815,32 871,56 +rect $can_8h.html 667,203 725,227 +rect $objdictdef_8h.html 645,155 747,179 +rect $objacces_8h.html 649,299 743,323 +rect $sdo_8h.html 667,251 725,275 +rect $pdo_8h.html 667,56 725,80 +rect $states_8h.html 659,395 733,419 +rect $lifegrd_8h.html 657,347 735,371 +rect $sync_8h.html 663,443 729,467 +rect $nmtMaster_8h.html 643,491 749,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e7e5b83e4b1b77b82559b2e9419f4110 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_2TestMaster_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,47 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMaster.h Source File + + + + +
+
+
+
+ +

TestMaster.h

Go to the documentation of this file.
00001 
+00002 /* File generated by gen_cfile.py. Should not be modified. */
+00003 
+00004 #include "data.h"
+00005 
+00006 /* Prototypes of function provided by object dictionnary */
+00007 UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void * value);
+00008 const indextable * TestMaster_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks);
+00009 
+00010 /* Master node data struct */
+00011 extern CO_Data TestMaster_Data;
+00012 
+00013 extern UNS8 DO;         /* Mapped at index 0x2000, subindex 0x00*/
+00014 extern UNS8 DI1;                /* Mapped at index 0x200F, subindex 0x00*/
+00015 extern UNS8 DI2;                /* Mapped at index 0x2010, subindex 0x00*/
+00016 extern UNS8 DI3;                /* Mapped at index 0x2011, subindex 0x00*/
+00017 extern UNS8 DI4;                /* Mapped at index 0x2012, subindex 0x00*/
+00018 extern UNS8 DI5;                /* Mapped at index 0x2013, subindex 0x00*/
+00019 extern UNS8 DI6;                /* Mapped at index 0x2014, subindex 0x00*/
+00020 extern UNS8 DI7;                /* Mapped at index 0x2015, subindex 0x00*/
+00021 extern UNS8 DI8;                /* Mapped at index 0x2016, subindex 0x00*/
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,345 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMaster.h File Reference + + + + +
+
+
+
+ +

TestMaster.h File Reference

#include "data.h"
+ +

+Include dependency graph for TestMaster.h:

+ + + + + + + + + + + + + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void *value)
const indextableTestMaster_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

Variables

CO_Data TestMaster_Data
UNS8 DO
UNS8 DI1
UNS8 DI2
UNS8 DI3
UNS8 DI4
UNS8 DI5
UNS8 DI6
UNS8 DI7
UNS8 DI8
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const indextable* TestMaster_scanIndexOD (UNS16  wIndex,
UNS32 *  errorCode,
ODCallback_t **  callbacks 
)
+
+
+ +

+ +

+Definition at line 347 of file TestMaster.c. +

+References OD_NO_SUCH_OBJECT, OD_SUCCESSFUL, TestMaster_Index1005_callbacks, TestMaster_Index1006_callbacks, and TestMaster_objdict. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS32 TestMaster_valueRangeTest (UNS8  typeValue,
void *  value 
)
+
+
+ +

+ +

+Definition at line 25 of file TestMaster.c. +

+

+


Variable Documentation

+ +
+
+ + + + +
UNS8 DI1
+
+
+ +

+ +

+Definition at line 10 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI2
+
+
+ +

+ +

+Definition at line 11 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI3
+
+
+ +

+ +

+Definition at line 12 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI4
+
+
+ +

+ +

+Definition at line 13 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI5
+
+
+ +

+ +

+Definition at line 14 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI6
+
+
+ +

+ +

+Definition at line 15 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI7
+
+
+ +

+ +

+Definition at line 16 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DI8
+
+
+ +

+ +

+Definition at line 17 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 DO
+
+
+ +

+ +

+Definition at line 9 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
CO_Data TestMaster_Data
+
+
+ +

+ +

+Definition at line 411 of file TestMaster.c. +

+

+


Generated on Fri Jun 8 08:51:51 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $TestMasterMicroMod_2TestMaster_8c.html 404,6 719,30 +rect $TestMasterMicroMod_8c.html 371,54 752,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8469e48c40732de82e399ec82dd135f9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__dep__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $data_8h.html 372,301 436,325 +rect $win32_2applicfg_8h.html 763,276 851,300 +rect $def_8h.html 647,13 703,37 +rect $can_8h.html 646,251 704,275 +rect $objdictdef_8h.html 488,152 590,176 +rect $objacces_8h.html 492,349 586,373 +rect $sdo_8h.html 510,397 568,421 +rect $pdo_8h.html 510,56 568,80 +rect $states_8h.html 502,104 576,128 +rect $lifegrd_8h.html 500,301 578,325 +rect $sync_8h.html 506,445 572,469 +rect $nmtMaster_8h.html 486,493 592,517 +rect $config_8h.html 770,13 844,37 +rect $timer_8h.html 640,400 710,424 +rect $win32_2timerscfg_8h.html 758,368 856,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f28ab021e7ac0715d56f06a291c5cb7c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_2TestMaster_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1286 @@ + + +CanFestival: examples/TestMasterMicroMod/getopt.c Source File + + + + +
+
+
+
+ +

getopt.c

Go to the documentation of this file.
00001 /* from http://www.pwilson.net/getopt.html */
+00002 
+00003 /* Getopt for GNU.
+00004    NOTE: getopt is now part of the C library, so if you don't know what
+00005    "Keep this file name-space clean" means, talk to drepper@gnu.org
+00006    before changing it!
+00007    Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001
+00008         Free Software Foundation, Inc.
+00009    This file is part of the GNU C Library.
+00010 
+00011    The GNU C Library is free software; you can redistribute it and/or
+00012    modify it under the terms of the GNU Lesser General Public
+00013    License as published by the Free Software Foundation; either
+00014    version 2.1 of the License, or (at your option) any later version.
+00015 
+00016    The GNU C Library is distributed in the hope that it will be useful,
+00017    but WITHOUT ANY WARRANTY; without even the implied warranty of
+00018    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00019    Lesser General Public License for more details.
+00020 
+00021    You should have received a copy of the GNU Lesser General Public
+00022    License along with the GNU C Library; if not, write to the Free
+00023    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+00024    02111-1307 USA.  */
+00025 
+00026 /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
+00027    Ditto for AIX 3.2 and <stdlib.h>.  */
+00028 #ifndef _NO_PROTO
+00029 # define _NO_PROTO
+00030 #endif
+00031 
+00032 #ifdef HAVE_CONFIG_H
+00033 # include <config.h>
+00034 #endif
+00035 
+00036 #if !defined __STDC__ || !__STDC__
+00037 /* This is a separate conditional since some stdc systems
+00038    reject `defined (const)'.  */
+00039 # ifndef const
+00040 #  define const
+00041 # endif
+00042 #endif
+00043 
+00044 #include <stdio.h>
+00045 
+00046 /* Comment out all this code if we are using the GNU C Library, and are not
+00047    actually compiling the library itself.  This code is part of the GNU C
+00048    Library, but also included in many other GNU distributions.  Compiling
+00049    and linking in this code is a waste when using the GNU C library
+00050    (especially if it is a shared library).  Rather than having every GNU
+00051    program understand `configure --with-gnu-libc' and omit the object files,
+00052    it is simpler to just do this in the source for each such file.  */
+00053 
+00054 #define GETOPT_INTERFACE_VERSION 2
+00055 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
+00056 # include <gnu-versions.h>
+00057 # if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
+00058 #  define ELIDE_CODE
+00059 # endif
+00060 #endif
+00061 
+00062 #ifndef ELIDE_CODE
+00063 
+00064 
+00065 /* This needs to come after some library #include
+00066    to get __GNU_LIBRARY__ defined.  */
+00067 #ifdef  __GNU_LIBRARY__
+00068 /* Don't include stdlib.h for non-GNU C libraries because some of them
+00069    contain conflicting prototypes for getopt.  */
+00070 # include <stdlib.h>
+00071 # include <unistd.h>
+00072 #endif  /* GNU C library.  */
+00073 
+00074 #ifdef VMS
+00075 # include <unixlib.h>
+00076 # if HAVE_STRING_H - 0
+00077 #  include <string.h>
+00078 # endif
+00079 #endif
+00080 
+00081 #ifndef _
+00082 /* This is for other GNU distributions with internationalized messages.  */
+00083 # if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+00084 #  include <libintl.h>
+00085 #  ifndef _
+00086 #   define _(msgid)     gettext (msgid)
+00087 #  endif
+00088 # else
+00089 #  define _(msgid)      (msgid)
+00090 # endif
+00091 # if defined _LIBC && defined USE_IN_LIBIO
+00092 #  include <wchar.h>
+00093 # endif
+00094 #endif
+00095 
+00096 /* This version of `getopt' appears to the caller like standard Unix `getopt'
+00097    but it behaves differently for the user, since it allows the user
+00098    to intersperse the options with the other arguments.
+00099 
+00100    As `getopt' works, it permutes the elements of ARGV so that,
+00101    when it is done, all the options precede everything else.  Thus
+00102    all application programs are extended to handle flexible argument order.
+00103 
+00104    Setting the environment variable POSIXLY_CORRECT disables permutation.
+00105    Then the behavior is completely standard.
+00106 
+00107    GNU application programs can use a third alternative mode in which
+00108    they can distinguish the relative order of options and other arguments.  */
+00109 
+00110 #include "getopt.h"
+00111 
+00112 /* For communication from `getopt' to the caller.
+00113    When `getopt' finds an option that takes an argument,
+00114    the argument value is returned here.
+00115    Also, when `ordering' is RETURN_IN_ORDER,
+00116    each non-option ARGV-element is returned here.  */
+00117 
+00118 char *optarg;
+00119 
+00120 /* Index in ARGV of the next element to be scanned.
+00121    This is used for communication to and from the caller
+00122    and for communication between successive calls to `getopt'.
+00123 
+00124    On entry to `getopt', zero means this is the first call; initialize.
+00125 
+00126    When `getopt' returns -1, this is the index of the first of the
+00127    non-option elements that the caller should itself scan.
+00128 
+00129    Otherwise, `optind' communicates from one call to the next
+00130    how much of ARGV has been scanned so far.  */
+00131 
+00132 /* 1003.2 says this must be 1 before any call.  */
+00133 int optind = 1;
+00134 
+00135 /* Formerly, initialization of getopt depended on optind==0, which
+00136    causes problems with re-calling getopt as programs generally don't
+00137    know that. */
+00138 
+00139 int __getopt_initialized;
+00140 
+00141 /* The next char to be scanned in the option-element
+00142    in which the last option character we returned was found.
+00143    This allows us to pick up the scan where we left off.
+00144 
+00145    If this is zero, or a null string, it means resume the scan
+00146    by advancing to the next ARGV-element.  */
+00147 
+00148 static char *nextchar;
+00149 
+00150 /* Callers store zero here to inhibit the error message
+00151    for unrecognized options.  */
+00152 
+00153 int opterr = 1;
+00154 
+00155 /* Set to an option character which was unrecognized.
+00156    This must be initialized on some systems to avoid linking in the
+00157    system's own getopt implementation.  */
+00158 
+00159 int optopt = '?';
+00160 
+00161 /* Describe how to deal with options that follow non-option ARGV-elements.
+00162 
+00163    If the caller did not specify anything,
+00164    the default is REQUIRE_ORDER if the environment variable
+00165    POSIXLY_CORRECT is defined, PERMUTE otherwise.
+00166 
+00167    REQUIRE_ORDER means don't recognize them as options;
+00168    stop option processing when the first non-option is seen.
+00169    This is what Unix does.
+00170    This mode of operation is selected by either setting the environment
+00171    variable POSIXLY_CORRECT, or using `+' as the first character
+00172    of the list of option characters.
+00173 
+00174    PERMUTE is the default.  We permute the contents of ARGV as we scan,
+00175    so that eventually all the non-options are at the end.  This allows options
+00176    to be given in any order, even with programs that were not written to
+00177    expect this.
+00178 
+00179    RETURN_IN_ORDER is an option available to programs that were written
+00180    to expect options and other ARGV-elements in any order and that care about
+00181    the ordering of the two.  We describe each non-option ARGV-element
+00182    as if it were the argument of an option with character code 1.
+00183    Using `-' as the first character of the list of option characters
+00184    selects this mode of operation.
+00185 
+00186    The special argument `--' forces an end of option-scanning regardless
+00187    of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
+00188    `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
+00189 
+00190 static enum
+00191 {
+00192   REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+00193 } ordering;
+00194 
+00195 /* Value of POSIXLY_CORRECT environment variable.  */
+00196 static char *posixly_correct;
+00197 
+00198 #ifdef  __GNU_LIBRARY__
+00199 /* We want to avoid inclusion of string.h with non-GNU libraries
+00200    because there are many ways it can cause trouble.
+00201    On some systems, it contains special magic macros that don't work
+00202    in GCC.  */
+00203 # include <string.h>
+00204 # define my_index       strchr
+00205 #else
+00206 
+00207 # if HAVE_STRING_H || WIN32 /* Pete Wilson mod 7/28/02 */
+00208 #  include <string.h>
+00209 # else
+00210 #  include <strings.h>
+00211 # endif
+00212 
+00213 /* Avoid depending on library functions or files
+00214    whose names are inconsistent.  */
+00215 
+00216 #ifndef getenv
+00217 extern char *getenv ();
+00218 #endif
+00219 
+00220 static char *
+00221 my_index (str, chr)
+00222      const char *str;
+00223      int chr;
+00224 {
+00225   while (*str)
+00226     {
+00227       if (*str == chr)
+00228         return (char *) str;
+00229       str++;
+00230     }
+00231   return 0;
+00232 }
+00233 
+00234 /* If using GCC, we can safely declare strlen this way.
+00235    If not using GCC, it is ok not to declare it.  */
+00236 #ifdef __GNUC__
+00237 /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
+00238    That was relevant to code that was here before.  */
+00239 # if (!defined __STDC__ || !__STDC__) && !defined strlen
+00240 /* gcc with -traditional declares the built-in strlen to return int,
+00241    and has done so at least since version 2.4.5. -- rms.  */
+00242 extern int strlen (const char *);
+00243 # endif /* not __STDC__ */
+00244 #endif /* __GNUC__ */
+00245 
+00246 #endif /* not __GNU_LIBRARY__ */
+00247 
+00248 /* Handle permutation of arguments.  */
+00249 
+00250 /* Describe the part of ARGV that contains non-options that have
+00251    been skipped.  `first_nonopt' is the index in ARGV of the first of them;
+00252    `last_nonopt' is the index after the last of them.  */
+00253 
+00254 static int first_nonopt;
+00255 static int last_nonopt;
+00256 
+00257 #ifdef _LIBC
+00258 /* Stored original parameters.
+00259    XXX This is no good solution.  We should rather copy the args so
+00260    that we can compare them later.  But we must not use malloc(3).  */
+00261 extern int __libc_argc;
+00262 extern char **__libc_argv;
+00263 
+00264 /* Bash 2.0 gives us an environment variable containing flags
+00265    indicating ARGV elements that should not be considered arguments.  */
+00266 
+00267 # ifdef USE_NONOPTION_FLAGS
+00268 /* Defined in getopt_init.c  */
+00269 extern char *__getopt_nonoption_flags;
+00270 
+00271 static int nonoption_flags_max_len;
+00272 static int nonoption_flags_len;
+00273 # endif
+00274 
+00275 # ifdef USE_NONOPTION_FLAGS
+00276 #  define SWAP_FLAGS(ch1, ch2) \
+00277   if (nonoption_flags_len > 0)                                                \
+00278     {                                                                         \
+00279       char __tmp = __getopt_nonoption_flags[ch1];                             \
+00280       __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];          \
+00281       __getopt_nonoption_flags[ch2] = __tmp;                                  \
+00282     }
+00283 # else
+00284 #  define SWAP_FLAGS(ch1, ch2)
+00285 # endif
+00286 #else   /* !_LIBC */
+00287 # define SWAP_FLAGS(ch1, ch2)
+00288 #endif  /* _LIBC */
+00289 
+00290 /* Exchange two adjacent subsequences of ARGV.
+00291    One subsequence is elements [first_nonopt,last_nonopt)
+00292    which contains all the non-options that have been skipped so far.
+00293    The other is elements [last_nonopt,optind), which contains all
+00294    the options processed since those non-options were skipped.
+00295 
+00296    `first_nonopt' and `last_nonopt' are relocated so that they describe
+00297    the new indices of the non-options in ARGV after they are moved.  */
+00298 
+00299 #if defined __STDC__ && __STDC__
+00300 static void exchange (char **);
+00301 #endif
+00302 
+00303 static void
+00304 exchange (argv)
+00305      char **argv;
+00306 {
+00307   int bottom = first_nonopt;
+00308   int middle = last_nonopt;
+00309   int top = optind;
+00310   char *tem;
+00311 
+00312   /* Exchange the shorter segment with the far end of the longer segment.
+00313      That puts the shorter segment into the right place.
+00314      It leaves the longer segment in the right place overall,
+00315      but it consists of two parts that need to be swapped next.  */
+00316 
+00317 #if defined _LIBC && defined USE_NONOPTION_FLAGS
+00318   /* First make sure the handling of the `__getopt_nonoption_flags'
+00319      string can work normally.  Our top argument must be in the range
+00320      of the string.  */
+00321   if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
+00322     {
+00323       /* We must extend the array.  The user plays games with us and
+00324          presents new arguments.  */
+00325       char *new_str = malloc (top + 1);
+00326       if (new_str == NULL)
+00327         nonoption_flags_len = nonoption_flags_max_len = 0;
+00328       else
+00329         {
+00330           memset (__mempcpy (new_str, __getopt_nonoption_flags,
+00331                              nonoption_flags_max_len),
+00332                   '\0', top + 1 - nonoption_flags_max_len);
+00333           nonoption_flags_max_len = top + 1;
+00334           __getopt_nonoption_flags = new_str;
+00335         }
+00336     }
+00337 #endif
+00338 
+00339   while (top > middle && middle > bottom)
+00340     {
+00341       if (top - middle > middle - bottom)
+00342         {
+00343           /* Bottom segment is the short one.  */
+00344           int len = middle - bottom;
+00345           register int i;
+00346 
+00347           /* Swap it with the top part of the top segment.  */
+00348           for (i = 0; i < len; i++)
+00349             {
+00350               tem = argv[bottom + i];
+00351               argv[bottom + i] = argv[top - (middle - bottom) + i];
+00352               argv[top - (middle - bottom) + i] = tem;
+00353               SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
+00354             }
+00355           /* Exclude the moved bottom segment from further swapping.  */
+00356           top -= len;
+00357         }
+00358       else
+00359         {
+00360           /* Top segment is the short one.  */
+00361           int len = top - middle;
+00362           register int i;
+00363 
+00364           /* Swap it with the bottom part of the bottom segment.  */
+00365           for (i = 0; i < len; i++)
+00366             {
+00367               tem = argv[bottom + i];
+00368               argv[bottom + i] = argv[middle + i];
+00369               argv[middle + i] = tem;
+00370               SWAP_FLAGS (bottom + i, middle + i);
+00371             }
+00372           /* Exclude the moved top segment from further swapping.  */
+00373           bottom += len;
+00374         }
+00375     }
+00376 
+00377   /* Update records for the slots the non-options now occupy.  */
+00378 
+00379   first_nonopt += (optind - last_nonopt);
+00380   last_nonopt = optind;
+00381 }
+00382 
+00383 /* Initialize the internal data when the first call is made.  */
+00384 
+00385 #if defined __STDC__ && __STDC__
+00386 static const char *_getopt_initialize (int, char *const *, const char *);
+00387 #endif
+00388 static const char *
+00389 _getopt_initialize (argc, argv, optstring)
+00390      int argc;
+00391      char *const *argv;
+00392      const char *optstring;
+00393 {
+00394   /* Start processing options with ARGV-element 1 (since ARGV-element 0
+00395      is the program name); the sequence of previously skipped
+00396      non-option ARGV-elements is empty.  */
+00397 
+00398   first_nonopt = last_nonopt = optind;
+00399 
+00400   nextchar = NULL;
+00401 
+00402   posixly_correct = getenv ("POSIXLY_CORRECT");
+00403 
+00404   /* Determine how to handle the ordering of options and nonoptions.  */
+00405 
+00406   if (optstring[0] == '-')
+00407     {
+00408       ordering = RETURN_IN_ORDER;
+00409       ++optstring;
+00410     }
+00411   else if (optstring[0] == '+')
+00412     {
+00413       ordering = REQUIRE_ORDER;
+00414       ++optstring;
+00415     }
+00416   else if (posixly_correct != NULL)
+00417     ordering = REQUIRE_ORDER;
+00418   else
+00419     ordering = PERMUTE;
+00420 
+00421 #if defined _LIBC && defined USE_NONOPTION_FLAGS
+00422   if (posixly_correct == NULL
+00423       && argc == __libc_argc && argv == __libc_argv)
+00424     {
+00425       if (nonoption_flags_max_len == 0)
+00426         {
+00427           if (__getopt_nonoption_flags == NULL
+00428               || __getopt_nonoption_flags[0] == '\0')
+00429             nonoption_flags_max_len = -1;
+00430           else
+00431             {
+00432               const char *orig_str = __getopt_nonoption_flags;
+00433               int len = nonoption_flags_max_len = strlen (orig_str);
+00434               if (nonoption_flags_max_len < argc)
+00435                 nonoption_flags_max_len = argc;
+00436               __getopt_nonoption_flags =
+00437                 (char *) malloc (nonoption_flags_max_len);
+00438               if (__getopt_nonoption_flags == NULL)
+00439                 nonoption_flags_max_len = -1;
+00440               else
+00441                 memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+00442                         '\0', nonoption_flags_max_len - len);
+00443             }
+00444         }
+00445       nonoption_flags_len = nonoption_flags_max_len;
+00446     }
+00447   else
+00448     nonoption_flags_len = 0;
+00449 #endif
+00450 
+00451   return optstring;
+00452 }
+00453 
+00454 /* Scan elements of ARGV (whose length is ARGC) for option characters
+00455    given in OPTSTRING.
+00456 
+00457    If an element of ARGV starts with '-', and is not exactly "-" or "--",
+00458    then it is an option element.  The characters of this element
+00459    (aside from the initial '-') are option characters.  If `getopt'
+00460    is called repeatedly, it returns successively each of the option characters
+00461    from each of the option elements.
+00462 
+00463    If `getopt' finds another option character, it returns that character,
+00464    updating `optind' and `nextchar' so that the next call to `getopt' can
+00465    resume the scan with the following option character or ARGV-element.
+00466 
+00467    If there are no more option characters, `getopt' returns -1.
+00468    Then `optind' is the index in ARGV of the first ARGV-element
+00469    that is not an option.  (The ARGV-elements have been permuted
+00470    so that those that are not options now come last.)
+00471 
+00472    OPTSTRING is a string containing the legitimate option characters.
+00473    If an option character is seen that is not listed in OPTSTRING,
+00474    return '?' after printing an error message.  If you set `opterr' to
+00475    zero, the error message is suppressed but we still return '?'.
+00476 
+00477    If a char in OPTSTRING is followed by a colon, that means it wants an arg,
+00478    so the following text in the same ARGV-element, or the text of the following
+00479    ARGV-element, is returned in `optarg'.  Two colons mean an option that
+00480    wants an optional arg; if there is text in the current ARGV-element,
+00481    it is returned in `optarg', otherwise `optarg' is set to zero.
+00482 
+00483    If OPTSTRING starts with `-' or `+', it requests different methods of
+00484    handling the non-option ARGV-elements.
+00485    See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
+00486 
+00487    Long-named options begin with `--' instead of `-'.
+00488    Their names may be abbreviated as long as the abbreviation is unique
+00489    or is an exact match for some defined option.  If they have an
+00490    argument, it follows the option name in the same ARGV-element, separated
+00491    from the option name by a `=', or else the in next ARGV-element.
+00492    When `getopt' finds a long-named option, it returns 0 if that option's
+00493    `flag' field is nonzero, the value of the option's `val' field
+00494    if the `flag' field is zero.
+00495 
+00496    The elements of ARGV aren't really const, because we permute them.
+00497    But we pretend they're const in the prototype to be compatible
+00498    with other systems.
+00499 
+00500    LONGOPTS is a vector of `struct option' terminated by an
+00501    element containing a name which is zero.
+00502 
+00503    LONGIND returns the index in LONGOPT of the long-named option found.
+00504    It is only valid when a long-named option has been found by the most
+00505    recent call.
+00506 
+00507    If LONG_ONLY is nonzero, '-' as well as '--' can introduce
+00508    long-named options.  */
+00509 
+00510 int
+00511 _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
+00512      int argc;
+00513      char *const *argv;
+00514      const char *optstring;
+00515      const struct option *longopts;
+00516      int *longind;
+00517      int long_only;
+00518 {
+00519   int print_errors = opterr;
+00520   if (optstring[0] == ':')
+00521     print_errors = 0;
+00522 
+00523   if (argc < 1)
+00524     return -1;
+00525 
+00526   optarg = NULL;
+00527 
+00528   if (optind == 0 || !__getopt_initialized)
+00529     {
+00530       if (optind == 0)
+00531         optind = 1;     /* Don't scan ARGV[0], the program name.  */
+00532       optstring = _getopt_initialize (argc, argv, optstring);
+00533       __getopt_initialized = 1;
+00534     }
+00535 
+00536   /* Test whether ARGV[optind] points to a non-option argument.
+00537      Either it does not have option syntax, or there is an environment flag
+00538      from the shell indicating it is not an option.  The later information
+00539      is only used when the used in the GNU libc.  */
+00540 #if defined _LIBC && defined USE_NONOPTION_FLAGS
+00541 # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'       \
+00542                       || (optind < nonoption_flags_len                        \
+00543                           && __getopt_nonoption_flags[optind] == '1'))
+00544 #else
+00545 # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
+00546 #endif
+00547 
+00548   if (nextchar == NULL || *nextchar == '\0')
+00549     {
+00550       /* Advance to the next ARGV-element.  */
+00551 
+00552       /* Give FIRST_NONOPT and LAST_NONOPT rational values if OPTIND has been
+00553          moved back by the user (who may also have changed the arguments).  */
+00554       if (last_nonopt > optind)
+00555         last_nonopt = optind;
+00556       if (first_nonopt > optind)
+00557         first_nonopt = optind;
+00558 
+00559       if (ordering == PERMUTE)
+00560         {
+00561           /* If we have just processed some options following some non-options,
+00562              exchange them so that the options come first.  */
+00563 
+00564           if (first_nonopt != last_nonopt && last_nonopt != optind)
+00565             exchange ((char **) argv);
+00566           else if (last_nonopt != optind)
+00567             first_nonopt = optind;
+00568 
+00569           /* Skip any additional non-options
+00570              and extend the range of non-options previously skipped.  */
+00571 
+00572           while (optind < argc && NONOPTION_P)
+00573             optind++;
+00574           last_nonopt = optind;
+00575         }
+00576 
+00577       /* The special ARGV-element `--' means premature end of options.
+00578          Skip it like a null option,
+00579          then exchange with previous non-options as if it were an option,
+00580          then skip everything else like a non-option.  */
+00581 
+00582       if (optind != argc && !strcmp (argv[optind], "--"))
+00583         {
+00584           optind++;
+00585 
+00586           if (first_nonopt != last_nonopt && last_nonopt != optind)
+00587             exchange ((char **) argv);
+00588           else if (first_nonopt == last_nonopt)
+00589             first_nonopt = optind;
+00590           last_nonopt = argc;
+00591 
+00592           optind = argc;
+00593         }
+00594 
+00595       /* If we have done all the ARGV-elements, stop the scan
+00596          and back over any non-options that we skipped and permuted.  */
+00597 
+00598       if (optind == argc)
+00599         {
+00600           /* Set the next-arg-index to point at the non-options
+00601              that we previously skipped, so the caller will digest them.  */
+00602           if (first_nonopt != last_nonopt)
+00603             optind = first_nonopt;
+00604           return -1;
+00605         }
+00606 
+00607       /* If we have come to a non-option and did not permute it,
+00608          either stop the scan or describe it to the caller and pass it by.  */
+00609 
+00610       if (NONOPTION_P)
+00611         {
+00612           if (ordering == REQUIRE_ORDER)
+00613             return -1;
+00614           optarg = argv[optind++];
+00615           return 1;
+00616         }
+00617 
+00618       /* We have found another option-ARGV-element.
+00619          Skip the initial punctuation.  */
+00620 
+00621       nextchar = (argv[optind] + 1
+00622                   + (longopts != NULL && argv[optind][1] == '-'));
+00623     }
+00624 
+00625   /* Decode the current option-ARGV-element.  */
+00626 
+00627   /* Check whether the ARGV-element is a long option.
+00628 
+00629      If long_only and the ARGV-element has the form "-f", where f is
+00630      a valid short option, don't consider it an abbreviated form of
+00631      a long option that starts with f.  Otherwise there would be no
+00632      way to give the -f short option.
+00633 
+00634      On the other hand, if there's a long option "fubar" and
+00635      the ARGV-element is "-fu", do consider that an abbreviation of
+00636      the long option, just like "--fu", and not "-f" with arg "u".
+00637 
+00638      This distinction seems to be the most useful approach.  */
+00639 
+00640   if (longopts != NULL
+00641       && (argv[optind][1] == '-'
+00642           || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
+00643     {
+00644       char *nameend;
+00645       const struct option *p;
+00646       const struct option *pfound = NULL;
+00647       int exact = 0;
+00648       int ambig = 0;
+00649       int indfound = -1;
+00650       int option_index;
+00651 
+00652       for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
+00653         /* Do nothing.  */ ;
+00654 
+00655       /* Test all long options for either exact match
+00656          or abbreviated matches.  */
+00657       for (p = longopts, option_index = 0; p->name; p++, option_index++)
+00658         if (!strncmp (p->name, nextchar, nameend - nextchar))
+00659           {
+00660             if ((unsigned int) (nameend - nextchar)
+00661                 == (unsigned int) strlen (p->name))
+00662               {
+00663                 /* Exact match found.  */
+00664                 pfound = p;
+00665                 indfound = option_index;
+00666                 exact = 1;
+00667                 break;
+00668               }
+00669             else if (pfound == NULL)
+00670               {
+00671                 /* First nonexact match found.  */
+00672                 pfound = p;
+00673                 indfound = option_index;
+00674               }
+00675             else if (long_only
+00676                      || pfound->has_arg != p->has_arg
+00677                      || pfound->flag != p->flag
+00678                      || pfound->val != p->val)
+00679               /* Second or later nonexact match found.  */
+00680               ambig = 1;
+00681           }
+00682 
+00683       if (ambig && !exact)
+00684         {
+00685           if (print_errors)
+00686             {
+00687 #if defined _LIBC && defined USE_IN_LIBIO
+00688               char *buf;
+00689 
+00690               __asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
+00691                           argv[0], argv[optind]);
+00692 
+00693               if (_IO_fwide (stderr, 0) > 0)
+00694                 __fwprintf (stderr, L"%s", buf);
+00695               else
+00696                 fputs (buf, stderr);
+00697 
+00698               free (buf);
+00699 #else
+00700               fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+00701                        argv[0], argv[optind]);
+00702 #endif
+00703             }
+00704           nextchar += strlen (nextchar);
+00705           optind++;
+00706           optopt = 0;
+00707           return '?';
+00708         }
+00709 
+00710       if (pfound != NULL)
+00711         {
+00712           option_index = indfound;
+00713           optind++;
+00714           if (*nameend)
+00715             {
+00716               /* Don't test has_arg with >, because some C compilers don't
+00717                  allow it to be used on enums.  */
+00718               if (pfound->has_arg)
+00719                 optarg = nameend + 1;
+00720               else
+00721                 {
+00722                   if (print_errors)
+00723                     {
+00724 #if defined _LIBC && defined USE_IN_LIBIO
+00725                       char *buf;
+00726 #endif
+00727 
+00728                       if (argv[optind - 1][1] == '-')
+00729                         {
+00730                           /* --option */
+00731 #if defined _LIBC && defined USE_IN_LIBIO
+00732                           __asprintf (&buf, _("\
+00733 %s: option `--%s' doesn't allow an argument\n"),
+00734                                       argv[0], pfound->name);
+00735 #else
+00736                           fprintf (stderr, _("\
+00737 %s: option `--%s' doesn't allow an argument\n"),
+00738                                    argv[0], pfound->name);
+00739 #endif
+00740                         }
+00741                       else
+00742                         {
+00743                           /* +option or -option */
+00744 #if defined _LIBC && defined USE_IN_LIBIO
+00745                           __asprintf (&buf, _("\
+00746 %s: option `%c%s' doesn't allow an argument\n"),
+00747                                       argv[0], argv[optind - 1][0],
+00748                                       pfound->name);
+00749 #else
+00750                           fprintf (stderr, _("\
+00751 %s: option `%c%s' doesn't allow an argument\n"),
+00752                                    argv[0], argv[optind - 1][0], pfound->name);
+00753 #endif
+00754                         }
+00755 
+00756 #if defined _LIBC && defined USE_IN_LIBIO
+00757                       if (_IO_fwide (stderr, 0) > 0)
+00758                         __fwprintf (stderr, L"%s", buf);
+00759                       else
+00760                         fputs (buf, stderr);
+00761 
+00762                       free (buf);
+00763 #endif
+00764                     }
+00765 
+00766                   nextchar += strlen (nextchar);
+00767 
+00768                   optopt = pfound->val;
+00769                   return '?';
+00770                 }
+00771             }
+00772           else if (pfound->has_arg == 1)
+00773             {
+00774               if (optind < argc)
+00775                 optarg = argv[optind++];
+00776               else
+00777                 {
+00778                   if (print_errors)
+00779                     {
+00780 #if defined _LIBC && defined USE_IN_LIBIO
+00781                       char *buf;
+00782 
+00783                       __asprintf (&buf,
+00784                                   _("%s: option `%s' requires an argument\n"),
+00785                                   argv[0], argv[optind - 1]);
+00786 
+00787                       if (_IO_fwide (stderr, 0) > 0)
+00788                         __fwprintf (stderr, L"%s", buf);
+00789                       else
+00790                         fputs (buf, stderr);
+00791 
+00792                       free (buf);
+00793 #else
+00794                       fprintf (stderr,
+00795                                _("%s: option `%s' requires an argument\n"),
+00796                                argv[0], argv[optind - 1]);
+00797 #endif
+00798                     }
+00799                   nextchar += strlen (nextchar);
+00800                   optopt = pfound->val;
+00801                   return optstring[0] == ':' ? ':' : '?';
+00802                 }
+00803             }
+00804           nextchar += strlen (nextchar);
+00805           if (longind != NULL)
+00806             *longind = option_index;
+00807           if (pfound->flag)
+00808             {
+00809               *(pfound->flag) = pfound->val;
+00810               return 0;
+00811             }
+00812           return pfound->val;
+00813         }
+00814 
+00815       /* Can't find it as a long option.  If this is not getopt_long_only,
+00816          or the option starts with '--' or is not a valid short
+00817          option, then it's an error.
+00818          Otherwise interpret it as a short option.  */
+00819       if (!long_only || argv[optind][1] == '-'
+00820           || my_index (optstring, *nextchar) == NULL)
+00821         {
+00822           if (print_errors)
+00823             {
+00824 #if defined _LIBC && defined USE_IN_LIBIO
+00825               char *buf;
+00826 #endif
+00827 
+00828               if (argv[optind][1] == '-')
+00829                 {
+00830                   /* --option */
+00831 #if defined _LIBC && defined USE_IN_LIBIO
+00832                   __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
+00833                               argv[0], nextchar);
+00834 #else
+00835                   fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+00836                            argv[0], nextchar);
+00837 #endif
+00838                 }
+00839               else
+00840                 {
+00841                   /* +option or -option */
+00842 #if defined _LIBC && defined USE_IN_LIBIO
+00843                   __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
+00844                               argv[0], argv[optind][0], nextchar);
+00845 #else
+00846                   fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+00847                            argv[0], argv[optind][0], nextchar);
+00848 #endif
+00849                 }
+00850 
+00851 #if defined _LIBC && defined USE_IN_LIBIO
+00852               if (_IO_fwide (stderr, 0) > 0)
+00853                 __fwprintf (stderr, L"%s", buf);
+00854               else
+00855                 fputs (buf, stderr);
+00856 
+00857               free (buf);
+00858 #endif
+00859             }
+00860           nextchar = (char *) "";
+00861           optind++;
+00862           optopt = 0;
+00863           return '?';
+00864         }
+00865     }
+00866 
+00867   /* Look at and handle the next short option-character.  */
+00868 
+00869   {
+00870     char c = *nextchar++;
+00871     char *temp = my_index (optstring, c);
+00872 
+00873     /* Increment `optind' when we start to process its last character.  */
+00874     if (*nextchar == '\0')
+00875       ++optind;
+00876 
+00877     if (temp == NULL || c == ':')
+00878       {
+00879         if (print_errors)
+00880           {
+00881 #if defined _LIBC && defined USE_IN_LIBIO
+00882               char *buf;
+00883 #endif
+00884 
+00885             if (posixly_correct)
+00886               {
+00887                 /* 1003.2 specifies the format of this message.  */
+00888 #if defined _LIBC && defined USE_IN_LIBIO
+00889                 __asprintf (&buf, _("%s: illegal option -- %c\n"),
+00890                             argv[0], c);
+00891 #else
+00892                 fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
+00893 #endif
+00894               }
+00895             else
+00896               {
+00897 #if defined _LIBC && defined USE_IN_LIBIO
+00898                 __asprintf (&buf, _("%s: invalid option -- %c\n"),
+00899                             argv[0], c);
+00900 #else
+00901                 fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
+00902 #endif
+00903               }
+00904 
+00905 #if defined _LIBC && defined USE_IN_LIBIO
+00906             if (_IO_fwide (stderr, 0) > 0)
+00907               __fwprintf (stderr, L"%s", buf);
+00908             else
+00909               fputs (buf, stderr);
+00910 
+00911             free (buf);
+00912 #endif
+00913           }
+00914         optopt = c;
+00915         return '?';
+00916       }
+00917     /* Convenience. Treat POSIX -W foo same as long option --foo */
+00918     if (temp[0] == 'W' && temp[1] == ';')
+00919       {
+00920         char *nameend;
+00921         const struct option *p;
+00922         const struct option *pfound = NULL;
+00923         int exact = 0;
+00924         int ambig = 0;
+00925         int indfound = 0;
+00926         int option_index;
+00927 
+00928         /* This is an option that requires an argument.  */
+00929         if (*nextchar != '\0')
+00930           {
+00931             optarg = nextchar;
+00932             /* If we end this ARGV-element by taking the rest as an arg,
+00933                we must advance to the next element now.  */
+00934             optind++;
+00935           }
+00936         else if (optind == argc)
+00937           {
+00938             if (print_errors)
+00939               {
+00940                 /* 1003.2 specifies the format of this message.  */
+00941 #if defined _LIBC && defined USE_IN_LIBIO
+00942                 char *buf;
+00943 
+00944                 __asprintf (&buf, _("%s: option requires an argument -- %c\n"),
+00945                             argv[0], c);
+00946 
+00947                 if (_IO_fwide (stderr, 0) > 0)
+00948                   __fwprintf (stderr, L"%s", buf);
+00949                 else
+00950                   fputs (buf, stderr);
+00951 
+00952                 free (buf);
+00953 #else
+00954                 fprintf (stderr, _("%s: option requires an argument -- %c\n"),
+00955                          argv[0], c);
+00956 #endif
+00957               }
+00958             optopt = c;
+00959             if (optstring[0] == ':')
+00960               c = ':';
+00961             else
+00962               c = '?';
+00963             return c;
+00964           }
+00965         else
+00966           /* We already incremented `optind' once;
+00967              increment it again when taking next ARGV-elt as argument.  */
+00968           optarg = argv[optind++];
+00969 
+00970         /* optarg is now the argument, see if it's in the
+00971            table of longopts.  */
+00972 
+00973         for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
+00974           /* Do nothing.  */ ;
+00975 
+00976         /* Test all long options for either exact match
+00977            or abbreviated matches.  */
+00978         for (p = longopts, option_index = 0; p->name; p++, option_index++)
+00979           if (!strncmp (p->name, nextchar, nameend - nextchar))
+00980             {
+00981               if ((unsigned int) (nameend - nextchar) == strlen (p->name))
+00982                 {
+00983                   /* Exact match found.  */
+00984                   pfound = p;
+00985                   indfound = option_index;
+00986                   exact = 1;
+00987                   break;
+00988                 }
+00989               else if (pfound == NULL)
+00990                 {
+00991                   /* First nonexact match found.  */
+00992                   pfound = p;
+00993                   indfound = option_index;
+00994                 }
+00995               else
+00996                 /* Second or later nonexact match found.  */
+00997                 ambig = 1;
+00998             }
+00999         if (ambig && !exact)
+01000           {
+01001             if (print_errors)
+01002               {
+01003 #if defined _LIBC && defined USE_IN_LIBIO
+01004                 char *buf;
+01005 
+01006                 __asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
+01007                             argv[0], argv[optind]);
+01008 
+01009                 if (_IO_fwide (stderr, 0) > 0)
+01010                   __fwprintf (stderr, L"%s", buf);
+01011                 else
+01012                   fputs (buf, stderr);
+01013 
+01014                 free (buf);
+01015 #else
+01016                 fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+01017                          argv[0], argv[optind]);
+01018 #endif
+01019               }
+01020             nextchar += strlen (nextchar);
+01021             optind++;
+01022             return '?';
+01023           }
+01024         if (pfound != NULL)
+01025           {
+01026             option_index = indfound;
+01027             if (*nameend)
+01028               {
+01029                 /* Don't test has_arg with >, because some C compilers don't
+01030                    allow it to be used on enums.  */
+01031                 if (pfound->has_arg)
+01032                   optarg = nameend + 1;
+01033                 else
+01034                   {
+01035                     if (print_errors)
+01036                       {
+01037 #if defined _LIBC && defined USE_IN_LIBIO
+01038                         char *buf;
+01039 
+01040                         __asprintf (&buf, _("\
+01041 %s: option `-W %s' doesn't allow an argument\n"),
+01042                                     argv[0], pfound->name);
+01043 
+01044                         if (_IO_fwide (stderr, 0) > 0)
+01045                           __fwprintf (stderr, L"%s", buf);
+01046                         else
+01047                           fputs (buf, stderr);
+01048 
+01049                         free (buf);
+01050 #else
+01051                         fprintf (stderr, _("\
+01052 %s: option `-W %s' doesn't allow an argument\n"),
+01053                                  argv[0], pfound->name);
+01054 #endif
+01055                       }
+01056 
+01057                     nextchar += strlen (nextchar);
+01058                     return '?';
+01059                   }
+01060               }
+01061             else if (pfound->has_arg == 1)
+01062               {
+01063                 if (optind < argc)
+01064                   optarg = argv[optind++];
+01065                 else
+01066                   {
+01067                     if (print_errors)
+01068                       {
+01069 #if defined _LIBC && defined USE_IN_LIBIO
+01070                         char *buf;
+01071 
+01072                         __asprintf (&buf, _("\
+01073 %s: option `%s' requires an argument\n"),
+01074                                     argv[0], argv[optind - 1]);
+01075 
+01076                         if (_IO_fwide (stderr, 0) > 0)
+01077                           __fwprintf (stderr, L"%s", buf);
+01078                         else
+01079                           fputs (buf, stderr);
+01080 
+01081                         free (buf);
+01082 #else
+01083                         fprintf (stderr,
+01084                                  _("%s: option `%s' requires an argument\n"),
+01085                                  argv[0], argv[optind - 1]);
+01086 #endif
+01087                       }
+01088                     nextchar += strlen (nextchar);
+01089                     return optstring[0] == ':' ? ':' : '?';
+01090                   }
+01091               }
+01092             nextchar += strlen (nextchar);
+01093             if (longind != NULL)
+01094               *longind = option_index;
+01095             if (pfound->flag)
+01096               {
+01097                 *(pfound->flag) = pfound->val;
+01098                 return 0;
+01099               }
+01100             return pfound->val;
+01101           }
+01102           nextchar = NULL;
+01103           return 'W';   /* Let the application handle it.   */
+01104       }
+01105     if (temp[1] == ':')
+01106       {
+01107         if (temp[2] == ':')
+01108           {
+01109             /* This is an option that accepts an argument optionally.  */
+01110             if (*nextchar != '\0')
+01111               {
+01112                 optarg = nextchar;
+01113                 optind++;
+01114               }
+01115             else
+01116               optarg = NULL;
+01117             nextchar = NULL;
+01118           }
+01119         else
+01120           {
+01121             /* This is an option that requires an argument.  */
+01122             if (*nextchar != '\0')
+01123               {
+01124                 optarg = nextchar;
+01125                 /* If we end this ARGV-element by taking the rest as an arg,
+01126                    we must advance to the next element now.  */
+01127                 optind++;
+01128               }
+01129             else if (optind == argc)
+01130               {
+01131                 if (print_errors)
+01132                   {
+01133                     /* 1003.2 specifies the format of this message.  */
+01134 #if defined _LIBC && defined USE_IN_LIBIO
+01135                     char *buf;
+01136 
+01137                     __asprintf (&buf,
+01138                                 _("%s: option requires an argument -- %c\n"),
+01139                                 argv[0], c);
+01140 
+01141                     if (_IO_fwide (stderr, 0) > 0)
+01142                       __fwprintf (stderr, L"%s", buf);
+01143                     else
+01144                       fputs (buf, stderr);
+01145 
+01146                     free (buf);
+01147 #else
+01148                     fprintf (stderr,
+01149                              _("%s: option requires an argument -- %c\n"),
+01150                              argv[0], c);
+01151 #endif
+01152                   }
+01153                 optopt = c;
+01154                 if (optstring[0] == ':')
+01155                   c = ':';
+01156                 else
+01157                   c = '?';
+01158               }
+01159             else
+01160               /* We already incremented `optind' once;
+01161                  increment it again when taking next ARGV-elt as argument.  */
+01162               optarg = argv[optind++];
+01163             nextchar = NULL;
+01164           }
+01165       }
+01166     return c;
+01167   }
+01168 }
+01169 
+01170 int
+01171 getopt (argc, argv, optstring)
+01172      int argc;
+01173      char *const *argv;
+01174      const char *optstring;
+01175 {
+01176   return _getopt_internal (argc, argv, optstring,
+01177                            (const struct option *) 0,
+01178                            (int *) 0,
+01179                            0);
+01180 }
+01181 
+01182 #endif  /* Not ELIDE_CODE.  */
+01183 
+01184 
+01185 /* Compile with -DTEST to make an executable for use in testing
+01186    the above definition of `getopt'.  */
+01187 
+01188 /* #define TEST */        /* Pete Wilson mod 7/28/02 */
+01189 #ifdef TEST
+01190 
+01191 #ifndef exit         /* Pete Wilson mod 7/28/02 */
+01192   int exit(int);     /* Pete Wilson mod 7/28/02 */
+01193 #endif               /* Pete Wilson mod 7/28/02 */
+01194 
+01195 int
+01196 main (argc, argv)
+01197      int argc;
+01198      char **argv;
+01199 {
+01200   int c;
+01201   int digit_optind = 0;
+01202 
+01203   while (1)
+01204     {
+01205       int this_option_optind = optind ? optind : 1;
+01206 
+01207       c = getopt (argc, argv, "abc:d:0123456789");
+01208       if (c == -1)
+01209         break;
+01210 
+01211       switch (c)
+01212         {
+01213         case '0':
+01214         case '1':
+01215         case '2':
+01216         case '3':
+01217         case '4':
+01218         case '5':
+01219         case '6':
+01220         case '7':
+01221         case '8':
+01222         case '9':
+01223           if (digit_optind != 0 && digit_optind != this_option_optind)
+01224             printf ("digits occur in two different argv-elements.\n");
+01225           digit_optind = this_option_optind;
+01226           printf ("option %c\n", c);
+01227           break;
+01228 
+01229         case 'a':
+01230           printf ("option a\n");
+01231           break;
+01232 
+01233         case 'b':
+01234           printf ("option b\n");
+01235           break;
+01236 
+01237         case 'c':
+01238           printf ("option c with value `%s'\n", optarg);
+01239           break;
+01240 
+01241         case '?':
+01242           break;
+01243 
+01244         default:
+01245           printf ("?? getopt returned character code 0%o ??\n", c);
+01246         }
+01247     }
+01248 
+01249   if (optind < argc)
+01250     {
+01251       printf ("non-option ARGV-elements: ");
+01252       while (optind < argc)
+01253         printf ("%s ", argv[optind++]);
+01254       printf ("\n");
+01255     }
+01256 
+01257   exit (0);
+01258 }
+01259 
+01260 #endif /* TEST */
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,389 @@ + + +CanFestival: examples/TestMasterMicroMod/getopt.c File Reference + + + + +
+
+
+
+ +

getopt.c File Reference

#include <stdio.h>
+#include "getopt.h"
+#include <strings.h>
+ +

+Include dependency graph for getopt.c:

+ + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Defines

#define GETOPT_INTERFACE_VERSION   2
#define _(msgid)   (msgid)
#define SWAP_FLAGS(ch1, ch2)
#define NONOPTION_P   (argv[optind][0] != '-' || argv[optind][1] == '\0')

Enumerations

enum  { REQUIRE_ORDER, +PERMUTE, +RETURN_IN_ORDER + }

Functions

char * getenv ()
int _getopt_internal (int argc, char *const *argv, const char *optstring, const struct option *longopts, int *longind, int long_only)
int getopt (int argc, char *const *argv, const char *optstring)

Variables

char * optarg
int optind = 1
int __getopt_initialized
int opterr = 1
int optopt = '?'
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define _ (msgid   )    (msgid)
+
+
+ +

+ +

+Definition at line 89 of file getopt.c. +

+

+ +

+
+ + + + +
#define GETOPT_INTERFACE_VERSION   2
+
+
+ +

+ +

+Definition at line 54 of file getopt.c. +

+

+ +

+
+ + + + +
#define NONOPTION_P   (argv[optind][0] != '-' || argv[optind][1] == '\0')
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + +
#define SWAP_FLAGS (ch1,
ch2   ) 
+
+
+ +

+ +

+Definition at line 287 of file getopt.c. +

+

+


Enumeration Type Documentation

+ +
+
+ + + + +
anonymous enum
+
+
+ +

+

Enumerator:
+ + + + +
REQUIRE_ORDER  +
PERMUTE  +
RETURN_IN_ORDER  +
+
+ +

+Definition at line 190 of file getopt.c. +

+

+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int _getopt_internal (int  argc,
char *const *  argv,
const char *  optstring,
const struct option longopts,
int *  longind,
int  long_only 
)
+
+
+ +

+ +

+Definition at line 511 of file getopt.c. +

+References __getopt_initialized, option::name, NONOPTION_P, optarg, opterr, optind, PERMUTE, and REQUIRE_ORDER. +

+

+ +

+
+ + + + + + + + +
char* getenv (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int getopt (int  argc,
char *const *  argv,
const char *  optstring 
)
+
+
+ +

+ +

+Definition at line 1171 of file getopt.c. +

+References _getopt_internal(). +

+Here is the call graph for this function:

+ + + + +
+

+


Variable Documentation

+ +
+
+ + + + +
int __getopt_initialized
+
+
+ +

+ +

+Definition at line 139 of file getopt.c. +

+

+ +

+
+ + + + +
char* optarg
+
+
+ +

+ +

+Definition at line 118 of file getopt.c. +

+

+ +

+
+ + + + +
int opterr = 1
+
+
+ +

+ +

+Definition at line 153 of file getopt.c. +

+

+ +

+
+ + + + +
int optind = 1
+
+
+ +

+ +

+Definition at line 133 of file getopt.c. +

+

+ +

+
+ + + + +
int optopt = '?'
+
+
+ +

+ +

+Definition at line 159 of file getopt.c. +

+

+


Generated on Fri Jun 8 08:51:49 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterSlave_2getopt_8c.html#0df92a0ae8fe1fd43268c738f548674f 120,6 254,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fa79b502b61379e627135d5a090ba7ad \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.png Binary file doc/doxygen/html/TestMasterMicroMod_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterMicroMod_2getopt_8h.html 347,54 424,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +25e420b2becc73af8d6c7fe7138773cd \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8c__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_2getopt_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,217 @@ + + +CanFestival: examples/TestMasterMicroMod/getopt.h Source File + + + + +
+
+
+
+ +

getopt.h

Go to the documentation of this file.
00001 /* from http://www.pwilson.net/getopt.html */
+00002 
+00003 /* getopt.h */
+00004 /* Declarations for getopt.
+00005    Copyright (C) 1989-1994, 1996-1999, 2001 Free Software 
+00006    Foundation, Inc. This file is part of the GNU C Library.
+00007 
+00008    The GNU C Library is free software; you can redistribute 
+00009    it and/or modify it under the terms of the GNU Lesser 
+00010    General Public License as published by the Free Software 
+00011    Foundation; either version 2.1 of the License, or 
+00012    (at your option) any later version.
+00013 
+00014    The GNU C Library is distributed in the hope that it will 
+00015    be useful, but WITHOUT ANY WARRANTY; without even the 
+00016    implied warranty of MERCHANTABILITY or FITNESS FOR A 
+00017    PARTICULAR PURPOSE.  See the GNU Lesser General Public 
+00018    License for more details.
+00019 
+00020    You should have received a copy of the GNU Lesser General 
+00021    Public License along with the GNU C Library; if not, write 
+00022    to the Free Software Foundation, Inc., 59 Temple Place,
+00023    Suite 330, Boston, MA 02111-1307 USA.  */
+00024 
+00025   
+00026 
+00027   
+00028 
+00029 #ifndef _GETOPT_H
+00030 
+00031 #ifndef __need_getopt
+00032 # define _GETOPT_H 1
+00033 #endif
+00034 
+00035 /* If __GNU_LIBRARY__ is not already defined, either we are being used
+00036    standalone, or this is the first header included in the source file.
+00037    If we are being used with glibc, we need to include <features.h>, but
+00038    that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
+00039    not defined, include <ctype.h>, which will pull in <features.h> for us
+00040    if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
+00041    doesn't flood the namespace with stuff the way some other headers do.)  */
+00042 #if !defined __GNU_LIBRARY__
+00043 # include <ctype.h>
+00044 #endif
+00045 
+00046 #ifdef  __cplusplus
+00047 extern "C" {
+00048 #endif
+00049 
+00050 /* For communication from `getopt' to the caller.
+00051    When `getopt' finds an option that takes an argument,
+00052    the argument value is returned here.
+00053    Also, when `ordering' is RETURN_IN_ORDER,
+00054    each non-option ARGV-element is returned here.  */
+00055 
+00056 extern char *optarg;
+00057 
+00058 /* Index in ARGV of the next element to be scanned.
+00059    This is used for communication to and from the caller
+00060    and for communication between successive calls to `getopt'.
+00061 
+00062    On entry to `getopt', zero means this is the first call; initialize.
+00063 
+00064    When `getopt' returns -1, this is the index of the first of the
+00065    non-option elements that the caller should itself scan.
+00066 
+00067    Otherwise, `optind' communicates from one call to the next
+00068    how much of ARGV has been scanned so far.  */
+00069 
+00070 extern int optind;
+00071 
+00072 /* Callers store zero here to inhibit the error message `getopt' prints
+00073    for unrecognized options.  */
+00074 
+00075 extern int opterr;
+00076 
+00077 /* Set to an option character which was unrecognized.  */
+00078 
+00079 extern int optopt;
+00080 
+00081 #ifndef __need_getopt
+00082 /* Describe the long-named options requested by the application.
+00083    The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+00084    of `struct option' terminated by an element containing a name which is
+00085    zero.
+00086 
+00087    The field `has_arg' is:
+00088    no_argument          (or 0) if the option does not take an argument,
+00089    required_argument    (or 1) if the option requires an argument,
+00090    optional_argument    (or 2) if the option takes an optional argument.
+00091 
+00092    If the field `flag' is not NULL, it points to a variable that is set
+00093    to the value given in the field `val' when the option is found, but
+00094    left unchanged if the option is not found.
+00095 
+00096    To have a long-named option do something other than set an `int' to
+00097    a compiled-in constant, such as set a value from `optarg', set the
+00098    option's `flag' field to zero and its `val' field to a nonzero
+00099    value (the equivalent single-letter option character, if there is
+00100    one).  For long options that have a zero `flag' field, `getopt'
+00101    returns the contents of the `val' field.  */
+00102 
+00103 struct option
+00104 {
+00105 # if (defined __STDC__ && __STDC__) || defined __cplusplus
+00106   const char *name;
+00107 # else
+00108   char *name;
+00109 # endif
+00110   /* has_arg can't be an enum because some compilers complain about
+00111      type mismatches in all the code that assumes it is an int.  */
+00112   int has_arg;
+00113   int *flag;
+00114   int val;
+00115 };
+00116 
+00117 /* Names for the values of the `has_arg' field of `struct option'.  */
+00118 
+00119 # define no_argument            0
+00120 # define required_argument      1
+00121 # define optional_argument      2
+00122 #endif  /* need getopt */
+00123 
+00124 
+00125 /* Get definitions and prototypes for functions to process the
+00126    arguments in ARGV (ARGC of them, minus the program name) for
+00127    options given in OPTS.
+00128 
+00129    Return the option character from OPTS just read.  Return -1 when
+00130    there are no more options.  For unrecognized options, or options
+00131    missing arguments, `optopt' is set to the option letter, and '?' is
+00132    returned.
+00133 
+00134    The OPTS string is a list of characters which are recognized option
+00135    letters, optionally followed by colons, specifying that that letter
+00136    takes an argument, to be placed in `optarg'.
+00137 
+00138    If a letter in OPTS is followed by two colons, its argument is
+00139    optional.  This behavior is specific to the GNU `getopt'.
+00140 
+00141    The argument `--' causes premature termination of argument
+00142    scanning, explicitly telling `getopt' that there are no more
+00143    options.
+00144 
+00145    If OPTS begins with `--', then non-option arguments are treated as
+00146    arguments to the option '\0'.  This behavior is specific to the GNU
+00147    `getopt'.  */
+00148 
+00149 #if (defined __STDC__ && __STDC__) || defined __cplusplus
+00150 # ifdef __GNU_LIBRARY__
+00151 /* Many other libraries have conflicting prototypes for getopt, with
+00152    differences in the consts, in stdlib.h.  To avoid compilation
+00153    errors, only prototype getopt for the GNU C library.  */
+00154 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
+00155 # else /* not __GNU_LIBRARY__ */
+00156 extern int getopt ();
+00157 # endif /* __GNU_LIBRARY__ */
+00158 
+00159 # ifndef __need_getopt
+00160 extern int getopt_long (int ___argc, char *const *___argv,
+00161                         const char *__shortopts,
+00162                         const struct option *__longopts, int *__longind);
+00163 extern int getopt_long_only (int ___argc, char *const *___argv,
+00164                              const char *__shortopts,
+00165                              const struct option *__longopts, int *__longind);
+00166 
+00167 /* Internal only.  Users should not call this directly.  */
+00168 extern int _getopt_internal (int ___argc, char *const *___argv,
+00169                              const char *__shortopts,
+00170                              const struct option *__longopts, int *__longind,
+00171                              int __long_only);
+00172 # endif
+00173 #else /* not __STDC__ */
+00174 extern int getopt ();
+00175 # ifndef __need_getopt
+00176 extern int getopt_long ();
+00177 extern int getopt_long_only ();
+00178 
+00179 extern int _getopt_internal ();
+00180 # endif
+00181 #endif /* __STDC__ */
+00182 
+00183 #ifdef  __cplusplus
+00184 }
+00185 #endif
+00186 
+00187 /* Make sure we later can get all the definitions and declarations.  */
+00188 #undef __need_getopt
+00189 
+00190 #endif /* getopt.h */
+00191 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,286 @@ + + +CanFestival: examples/TestMasterMicroMod/getopt.h File Reference + + + + +
+
+
+
+ +

getopt.h File Reference

#include <ctype.h>
+ +

+Include dependency graph for getopt.h:

+ +

+This graph shows which files directly or indirectly include this file:

+ + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Data Structures

struct  option

Defines

#define _GETOPT_H   1
#define no_argument   0
#define required_argument   1
#define optional_argument   2

Functions

int getopt ()
int getopt_long ()
int getopt_long_only ()
int _getopt_internal ()

Variables

char * optarg
int optind
int opterr
int optopt
+


Define Documentation

+ +
+
+ + + + +
#define _GETOPT_H   1
+
+
+ +

+ +

+Definition at line 32 of file getopt.h. +

+

+ +

+
+ + + + +
#define no_argument   0
+
+
+ +

+ +

+Definition at line 119 of file getopt.h. +

+

+ +

+
+ + + + +
#define optional_argument   2
+
+
+ +

+ +

+Definition at line 121 of file getopt.h. +

+

+ +

+
+ + + + +
#define required_argument   1
+
+
+ +

+ +

+Definition at line 120 of file getopt.h. +

+

+


Function Documentation

+ +
+
+ + + + + + + + +
int _getopt_internal (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
int getopt (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
int getopt_long (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
int getopt_long_only (  ) 
+
+
+ +

+ +

+

+


Variable Documentation

+ +
+
+ + + + +
char* optarg
+
+
+ +

+ +

+Definition at line 118 of file getopt.c. +

+

+ +

+
+ + + + +
int opterr
+
+
+ +

+ +

+Definition at line 153 of file getopt.c. +

+

+ +

+
+ + + + +
int optind
+
+
+ +

+ +

+Definition at line 133 of file getopt.c. +

+

+ +

+
+ + + + +
int optopt
+
+
+ +

+ +

+Definition at line 159 of file getopt.c. +

+

+


Generated on Fri Jun 8 08:51:49 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterMicroMod_2getopt_8c.html 345,6 633,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fdbded9a83d7c4aed532ce04734c7ae2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h__dep__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_2getopt_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_2getopt_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +6c4b2bd05e500566cb0789d3202e5471 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_2getopt_8h__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_2getopt_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,508 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMasterMicroMod.c Source File + + + + +
+
+
+
+ +

TestMasterMicroMod.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #if defined(WIN32) && !defined(__CYGWIN__)
+00024 #include <windows.h>
+00025 #include "getopt.h"
+00026 void pause(void)
+00027 {
+00028         system("PAUSE");
+00029 }
+00030 #else
+00031 #include <unistd.h>
+00032 #include <stdio.h>
+00033 #include <string.h>
+00034 #include <stdlib.h>
+00035 #include <signal.h>
+00036 #endif
+00037 
+00038 #include "canfestival.h"
+00039 #include "TestMasterMicroMod.h"
+00040 #include "TestMaster.h"
+00041 UNS8 slavenodeid;
+00042 
+00043 
+00044 /*****************************************************************************/
+00045 void TestMaster_heartbeatError(UNS8 heartbeatID)
+00046 {
+00047         eprintf("TestMaster_heartbeatError %d\n", heartbeatID);
+00048 }
+00049 
+00050 /********************************************************
+00051  * ConfigureSlaveNode is responsible to
+00052  *  - setup master RPDO 1 to receive TPDO 1 from id 0x40
+00053  *  - setup master TPDO 1 to send RPDO 1 to id 0x40
+00054  ********************************************************/
+00055 void TestMaster_initialisation()
+00056 {
+00057         UNS32 PDO1_COBID = 0x0180 + slavenodeid; 
+00058         UNS32 PDO2_COBID = 0x0200 + slavenodeid;
+00059         UNS8 size = sizeof(UNS32); 
+00060 
+00061         eprintf("TestMaster_initialisation\n");
+00062 
+00063         /*****************************************
+00064          * Define RPDOs to match slave ID=0x40 TPDOs*
+00065          *****************************************/
+00066         writeLocalDict( &TestMaster_Data, /*CO_Data* d*/
+00067                         0x1400, /*UNS16 index*/
+00068                         0x01, /*UNS8 subind*/ 
+00069                         &PDO1_COBID, /*void * pSourceData,*/ 
+00070                         &size, /* UNS8 * pExpectedSize*/
+00071                         RW);  /* UNS8 checkAccess */
+00072                         
+00073 
+00074         /*****************************************
+00075          * Define TPDOs to match slave ID=0x40 RPDOs*
+00076          *****************************************/
+00077         writeLocalDict( &TestMaster_Data, /*CO_Data* d*/
+00078                         0x1800, /*UNS16 index*/
+00079                         0x01, /*UNS8 subind*/ 
+00080                         &PDO2_COBID, /*void * pSourceData,*/ 
+00081                         &size, /* UNS8 * pExpectedSize*/
+00082                         RW);  /* UNS8 checkAccess */
+00083 }
+00084 
+00085 static init_step = 0;
+00086 
+00087 /*Froward declaration*/
+00088 static void ConfigureSlaveNode(CO_Data* d, UNS8 nodeId);
+00089 
+00090 
+00091 static void CheckSDOAndContinue(CO_Data* d, UNS8 nodeId)
+00092 {
+00093         UNS32 abortCode;
+00094 
+00095         if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
+00096                 eprintf("Master : Failed in initializing slave %2.2x, step %d, AbortCode :%4.4x \n", nodeId, init_step, abortCode);
+00097 
+00098         /* Finalise last SDO transfer with this node */
+00099         closeSDOtransfer(&TestMaster_Data, nodeId, SDO_CLIENT);
+00100 
+00101         ConfigureSlaveNode(d, nodeId);
+00102 }
+00103 
+00104 /********************************************************
+00105  * ConfigureSlaveNode is responsible to
+00106  *  - setup slave TPDO 1 transmit time
+00107  *  - setup slave TPDO 2 transmit time
+00108  *  - setup slave Heartbeat Producer time
+00109  *  - switch to operational mode
+00110  *  - send NMT to slave
+00111  ********************************************************
+00112  * This an example of :
+00113  * Network Dictionary Access (SDO) with Callback 
+00114  * Slave node state change request (NMT) 
+00115  ********************************************************
+00116  * This is called first by TestMaster_preOperational
+00117  * then it called again each time a SDO exchange is
+00118  * finished.
+00119  ********************************************************/
+00120 static void ConfigureSlaveNode(CO_Data* d, UNS8 nodeId)
+00121 {
+00122         UNS8 res;
+00123         eprintf("Master : ConfigureSlaveNode %2.2x\n", nodeId);
+00124         switch(++init_step){
+00125                 case 1: 
+00126                 {       /*disable Slave's TPDO 1 */
+00127                         UNS32 TPDO_COBId = 0x80000180 + nodeId;
+00128                         
+00129                         eprintf("Master : disable slave %2.2x TPDO 1 \n", nodeId);
+00130                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00132                                         nodeId, /*UNS8 nodeId*/
+00133                                         0x1800, /*UNS16 index*/
+00134                                         0x01, /*UNS8 subindex*/
+00135                                         4, /*UNS8 count*/
+00136                                         0, /*UNS8 dataType*/
+00137                                         &TPDO_COBId,/*void *data*/
+00138                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00139                 }                       
+00140                 break;
+00141 
+00142                 case 2: 
+00143                 {       /*setup Slave's TPDO 1 to be transmitted on SYNC*/
+00144                         UNS8 Transmission_Type = 0x01;
+00145                         
+00146                         eprintf("Master : set slave %2.2x TPDO 1 transmit type\n", nodeId);
+00147                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00149                                         nodeId, /*UNS8 nodeId*/
+00150                                         0x1800, /*UNS16 index*/
+00151                                         0x02, /*UNS8 subindex*/
+00152                                         1, /*UNS8 count*/
+00153                                         0, /*UNS8 dataType*/
+00154                                         &Transmission_Type,/*void *data*/
+00155                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00156                 }                       
+00157                 break;
+00158 
+00159                 case 3: 
+00160                 {       /*re-enable Slave's TPDO 1 */
+00161                         UNS32 TPDO_COBId = 0x00000180 + nodeId;
+00162                         
+00163                         eprintf("Master : re-enable slave %2.2x TPDO 1\n", nodeId);
+00164                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00166                                         nodeId, /*UNS8 nodeId*/
+00167                                         0x1800, /*UNS16 index*/
+00168                                         0x01, /*UNS8 subindex*/
+00169                                         4, /*UNS8 count*/
+00170                                         0, /*UNS8 dataType*/
+00171                                         &TPDO_COBId,/*void *data*/
+00172                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00173                 }                       
+00174                 break;
+00175                                         
+00176                 case 4: 
+00177                 {       /*disable Slave's TPDO 2 */
+00178                         UNS32 TPDO_COBId = 0x80000200 + nodeId;
+00179                         
+00180                         eprintf("Master : disable slave %2.2x RPDO 1\n", nodeId);
+00181                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00183                                         nodeId, /*UNS8 nodeId*/
+00184                                         0x1400, /*UNS16 index*/
+00185                                         0x01, /*UNS8 subindex*/
+00186                                         4, /*UNS8 count*/
+00187                                         0, /*UNS8 dataType*/
+00188                                         &TPDO_COBId,/*void *data*/
+00189                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00190                 }                       
+00191                 break;
+00192 
+00193                                         
+00194                 case 5:
+00195                 {       
+00196                         UNS8 Transmission_Type = 0x01;
+00197                         
+00198                         eprintf("Master : set slave %2.2x RPDO 1 receive type\n", nodeId);
+00199                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00201                                         nodeId, /*UNS8 nodeId*/
+00202                                         0x1400, /*UNS16 index*/
+00203                                         0x02, /*UNS8 subindex*/
+00204                                         1, /*UNS8 count*/
+00205                                         0, /*UNS8 dataType*/
+00206                                         &Transmission_Type,/*void *data*/
+00207                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00208                 }       
+00209                 break;
+00210 
+00211                 case 6: 
+00212                 {       /*re-enable Slave's TPDO 1 */
+00213                         UNS32 TPDO_COBId = 0x00000200 + nodeId;
+00214                         
+00215                         eprintf("Master : re-enable %2.2x RPDO 1\n", nodeId);
+00216                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00218                                         nodeId, /*UNS8 nodeId*/
+00219                                         0x1400, /*UNS16 index*/
+00220                                         0x01, /*UNS8 subindex*/
+00221                                         4, /*UNS8 count*/
+00222                                         0, /*UNS8 dataType*/
+00223                                         &TPDO_COBId,/*void *data*/
+00224                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00225                 }                       
+00226                 break;
+00227                 
+00228                 case 7: 
+00229                 {
+00230                         UNS16 Heartbeat_Producer_Time = 0x03E8; 
+00231                         eprintf("Master : set slave %2.2x heartbeat producer time \n", nodeId);
+00232                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00234                                         nodeId, /*UNS8 nodeId*/
+00235                                         0x1017, /*UNS16 index*/
+00236                                         0x00, /*UNS8 subindex*/
+00237                                         2, /*UNS8 count*/
+00238                                         0, /*UNS8 dataType*/
+00239                                         &Heartbeat_Producer_Time,/*void *data*/
+00240                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00241                 }                       
+00242                 break;
+00243 
+00244                 case 8: 
+00245                 {       /*disable Slave's TPDO 2 */
+00246                         UNS32 TPDO_COBId = 0x80000280 + nodeId;
+00247                         
+00248                         eprintf("Master : disable slave %2.2x TPDO 2 \n", nodeId);
+00249                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00251                                         nodeId, /*UNS8 nodeId*/
+00252                                         0x1801, /*UNS16 index*/
+00253                                         0x01, /*UNS8 subindex*/
+00254                                         4, /*UNS8 count*/
+00255                                         0, /*UNS8 dataType*/
+00256                                         &TPDO_COBId,/*void *data*/
+00257                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00258                 }                       
+00259                 break;
+00260 
+00261                 case 9: 
+00262                 {       /*disable Slave's TPDO 3 */
+00263                         UNS32 TPDO_COBId = 0x80000380 + nodeId;
+00264                         
+00265                         eprintf("Master : disable slave %2.2x TPDO 3 \n", nodeId);
+00266                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00268                                         nodeId, /*UNS8 nodeId*/
+00269                                         0x1802, /*UNS16 index*/
+00270                                         0x01, /*UNS8 subindex*/
+00271                                         4, /*UNS8 count*/
+00272                                         0, /*UNS8 dataType*/
+00273                                         &TPDO_COBId,/*void *data*/
+00274                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00275                 }
+00276                 break;                  
+00277 
+00278                 case 10: 
+00279                 {       /*disable Slave's TPDO 2 */
+00280                         UNS32 TPDO_COBId = 0x80000480 + nodeId;
+00281                         
+00282                         eprintf("Master : disable slave %2.2x TPDO 4 \n", nodeId);
+00283                         res = writeNetworkDictCallBack (d, /*CO_Data* d*/
+00285                                         nodeId, /*UNS8 nodeId*/
+00286                                         0x1803, /*UNS16 index*/
+00287                                         0x01, /*UNS8 subindex*/
+00288                                         4, /*UNS8 count*/
+00289                                         0, /*UNS8 dataType*/
+00290                                         &TPDO_COBId,/*void *data*/
+00291                                         CheckSDOAndContinue); /*SDOCallback_t Callback*/
+00292                 }                       
+00293                 break;                  
+00294                 
+00295                 case 11:
+00296                         /* Put the master in operational mode */
+00297                         setState(d, Operational);
+00298                           
+00299                         /* Ask slave node to go in operational mode */
+00300                         masterSendNMTstateChange (d, nodeId, NMT_Start_Node);
+00301         }
+00302                         
+00303 }
+00304 
+00305 void TestMaster_preOperational()
+00306 {
+00307 
+00308         eprintf("TestMaster_preOperational\n");
+00309         ConfigureSlaveNode(&TestMaster_Data, slavenodeid);
+00310         
+00311 }
+00312 
+00313 void TestMaster_operational()
+00314 {
+00315         eprintf("TestMaster_operational\n");
+00316 }
+00317 
+00318 void TestMaster_stopped()
+00319 {
+00320         eprintf("TestMaster_stopped\n");
+00321 }
+00322 
+00323 void TestMaster_post_sync()
+00324 {
+00325         DO++;
+00326         eprintf("MicroMod Digital Out: %2.2x\n",DO);
+00327         eprintf("MicroMod Digital In (by bit): DI1: %2.2x DI2: %2.2x DI3: %2.2x DI4: %2.2x DI5: %2.2x DI6: %2.2x DI7: %2.2x DI8: %2.2x\n",DI1,DI2,DI3,DI4,DI5,DI6,DI7,DI8);
+00328 }
+00329 
+00330 void TestMaster_post_TPDO()
+00331 {
+00332 //      eprintf("TestMaster_post_TPDO\n");      
+00333 }
+00334 
+00335 //s_BOARD SlaveBoard = {"0", "500K"};
+00336 s_BOARD MasterBoard = {"32", "125K"};
+00337 
+00338 #if !defined(WIN32) || defined(__CYGWIN__)
+00339 void catch_signal(int sig)
+00340 {
+00341   signal(SIGTERM, catch_signal);
+00342   signal(SIGINT, catch_signal);
+00343   
+00344   eprintf("Got Signal %d\n",sig);
+00345 }
+00346 #endif
+00347 
+00348 void help()
+00349 {
+00350   printf("**************************************************************\n");
+00351   printf("*  TestMasterMicroMod                                        *\n");
+00352   printf("*                                                            *\n");
+00353   printf("*  A simple example for PC.                                  *\n");
+00354   printf("*  A CanOpen master that control a MicroMod module:          *\n");
+00355   printf("*  - setup module TPDO 1 transmit type                       *\n");
+00356   printf("*  - setup module RPDO 1 transmit type                       *\n");
+00357   printf("*  - setup module hearbeatbeat period                        *\n");
+00358   printf("*  - disable others TPDOs                                    *\n");
+00359   printf("*  - set state to operational                                *\n");
+00360   printf("*  - send periodic SYNC                                      *\n");
+00361   printf("*  - send periodic RPDO 1 to Micromod (digital output)       *\n");
+00362   printf("*  - listen Micromod's TPDO 1 (digital input)                *\n");
+00363   printf("*  - Mapping RPDO 1 bit per bit (digital input)              *\n");
+00364   printf("*                                                            *\n");
+00365   printf("*   Usage:                                                   *\n");
+00366   printf("*   ./TestMasterMicroMod  [OPTIONS]                          *\n");
+00367   printf("*                                                            *\n");
+00368   printf("*   OPTIONS:                                                 *\n");
+00369   printf("*     -l : Can library [\"libcanfestival_can_virtual.so\"]     *\n");
+00370   printf("*                                                            *\n");
+00371   printf("*    Slave:                                                  *\n");
+00372   printf("*     -i : Slave Node id format [0x01 , 0x7F]                *\n");
+00373   printf("*                                                            *\n");
+00374   printf("*    Master:                                                 *\n");
+00375   printf("*     -m : bus name [\"1\"]                                    *\n");
+00376   printf("*     -M : 1M,500K,250K,125K,100K,50K,20K,10K                *\n");
+00377   printf("*                                                            *\n");
+00378   printf("**************************************************************\n");
+00379 }
+00380 
+00381 /***************************  INIT  *****************************************/
+00382 void InitNodes(CO_Data* d, UNS32 id)
+00383 {
+00384         /****************************** INITIALISATION MASTER *******************************/
+00385         if(MasterBoard.baudrate){
+00386                 /* Defining the node Id */
+00387                 setNodeId(&TestMaster_Data, 0x01);
+00388 
+00389                 /* init */
+00390                 setState(&TestMaster_Data, Initialisation);
+00391         }
+00392 }
+00393 
+00394 /****************************************************************************/
+00395 /***************************  MAIN  *****************************************/
+00396 /****************************************************************************/
+00397 int main(int argc,char **argv)
+00398 {
+00399 
+00400   int c;
+00401   extern char *optarg;
+00402   char* LibraryPath="libcanfestival_can_virtual.so";
+00403   char *snodeid;
+00404   while ((c = getopt(argc, argv, "-m:s:M:S:l:i:")) != EOF)
+00405   {
+00406     switch(c)
+00407     {
+00408       case 'm' :
+00409         if (optarg[0] == 0)
+00410         {
+00411           help();
+00412           exit(1);
+00413         }
+00414         MasterBoard.busname = optarg;
+00415         break;
+00416       case 'M' :
+00417         if (optarg[0] == 0)
+00418         {
+00419           help();
+00420           exit(1);
+00421         }
+00422         MasterBoard.baudrate = optarg;
+00423         break;
+00424       case 'l' :
+00425         if (optarg[0] == 0)
+00426         {
+00427           help();
+00428           exit(1);
+00429         }
+00430         LibraryPath = optarg;
+00431         break;
+00432       case 'i' :
+00433         if (optarg[0] == 0)
+00434         {
+00435           help();
+00436           exit(1);
+00437         }
+00438         snodeid = optarg;
+00439                 sscanf(snodeid,"%x",&slavenodeid);
+00440         break;
+00441       default:
+00442         help();
+00443         exit(1);
+00444     }
+00445   }
+00446 
+00447 #if !defined(WIN32) || defined(__CYGWIN__)
+00448   /* install signal handler for manual break */
+00449         signal(SIGTERM, catch_signal);
+00450         signal(SIGINT, catch_signal);
+00451 #endif
+00452 
+00453 #ifndef NOT_USE_DYNAMIC_LOADING
+00454         LoadCanDriver(LibraryPath);
+00455 #endif          
+00456 
+00457         TestMaster_Data.heartbeatError = TestMaster_heartbeatError;
+00458         TestMaster_Data.initialisation = TestMaster_initialisation;
+00459         TestMaster_Data.preOperational = TestMaster_preOperational;
+00460         TestMaster_Data.operational = TestMaster_operational;
+00461         TestMaster_Data.stopped = TestMaster_stopped;
+00462         TestMaster_Data.post_sync = TestMaster_post_sync;
+00463         TestMaster_Data.post_TPDO = TestMaster_post_TPDO;
+00464         
+00465         if(!canOpen(&MasterBoard,&TestMaster_Data)){
+00466                 eprintf("Cannot open Master Board\n");
+00467                 goto fail_master;
+00468         }
+00469         
+00470         // Start timer thread
+00471         StartTimerLoop(&InitNodes);
+00472 
+00473         // wait Ctrl-C
+00474         pause();
+00475         eprintf("Finishing.\n");
+00476         
+00477         // Reset the slave node for next use (will stop emitting heartbeat)
+00478         masterSendNMTstateChange (&TestMaster_Data, slavenodeid, NMT_Reset_Node);
+00479         
+00480         // Stop master
+00481         setState(&TestMaster_Data, Stopped);
+00482         
+00483         // Stop timer thread
+00484         StopTimerLoop();
+00485         
+00486 fail_master:
+00487         if(MasterBoard.baudrate) canClose(&TestMaster_Data);    
+00488 
+00489   return 0;
+00490 }
+00491 
+00492 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,468 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMasterMicroMod.c File Reference + + + + +
+
+
+
+ +

TestMasterMicroMod.c File Reference

#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <signal.h>
+#include "canfestival.h"
+#include "TestMasterMicroMod.h"
+#include "TestMaster.h"
+ +

+Include dependency graph for TestMasterMicroMod.c:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

void TestMaster_heartbeatError (UNS8 heartbeatID)
void TestMaster_initialisation ()
void TestMaster_preOperational ()
void TestMaster_operational ()
void TestMaster_stopped ()
void TestMaster_post_sync ()
void TestMaster_post_TPDO ()
void catch_signal (int sig)
void help ()
void InitNodes (CO_Data *d, UNS32 id)
int main (int argc, char **argv)

Variables

UNS8 slavenodeid
s_BOARD MasterBoard = {"32", "125K"}
+


Function Documentation

+ +
+
+ + + + + + + + + +
void catch_signal (int  sig  ) 
+
+
+ +

+ +

+Definition at line 339 of file TestMasterMicroMod.c. +

+References catch_signal(), and eprintf. +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + +
void help (  ) 
+
+
+ +

+ +

+Definition at line 348 of file TestMasterMicroMod.c. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void InitNodes (CO_Data d,
UNS32  id 
)
+
+
+ +

+ +

+Definition at line 382 of file TestMasterMicroMod.c. +

+References struct_s_BOARD::baudrate, Initialisation, MasterBoard, setNodeId(), setState(), and TestMaster_Data. +

+Here is the call graph for this function:

+ + + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
int main (int  argc,
char **  argv 
)
+
+
+ +

+ +

+Definition at line 397 of file TestMasterMicroMod.c. +

+References struct_s_BOARD::baudrate, struct_s_BOARD::busname, canClose(), canOpen(), catch_signal(), eprintf, getopt(), struct_CO_Data::heartbeatError, help(), struct_CO_Data::initialisation, InitNodes(), LoadCanDriver(), MasterBoard, masterSendNMTstateChange(), NMT_Reset_Node, struct_CO_Data::operational, optarg, struct_CO_Data::post_sync, struct_CO_Data::post_TPDO, struct_CO_Data::preOperational, setState(), slavenodeid, StartTimerLoop(), Stopped, struct_CO_Data::stopped, StopTimerLoop(), TestMaster_Data, TestMaster_heartbeatError(), TestMaster_initialisation(), TestMaster_operational(), TestMaster_post_sync(), TestMaster_post_TPDO(), TestMaster_preOperational(), and TestMaster_stopped(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void TestMaster_heartbeatError (UNS8  heartbeatID  ) 
+
+
+ +

+ +

+Definition at line 45 of file TestMasterMicroMod.c. +

+References eprintf. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_initialisation (void   ) 
+
+
+ +

+ +

+Definition at line 55 of file TestMasterMicroMod.c. +

+References eprintf, RW, slavenodeid, TestMaster_Data, UNS32, UNS8, and writeLocalDict(). +

+Here is the call graph for this function:

+ + + + + + +
+

+ +

+
+ + + + + + + + + +
void TestMaster_operational (void   ) 
+
+
+ +

+ +

+Definition at line 313 of file TestMasterMicroMod.c. +

+References eprintf. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_post_sync (void   ) 
+
+
+ +

+ +

+Definition at line 323 of file TestMasterMicroMod.c. +

+References DI1, DI2, DI3, DI4, DI5, DI6, DI7, DI8, DO, eprintf, MasterMap1, MasterMap10, MasterMap11, MasterMap2, MasterMap3, MasterMap4, MasterMap5, MasterMap6, MasterMap7, MasterMap8, and MasterMap9. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_post_TPDO (void   ) 
+
+
+ +

+ +

+Definition at line 330 of file TestMasterMicroMod.c. +

+References closeSDOtransfer(), eprintf, getReadResultNetworkDict(), MasterMap1, readNetworkDict(), SDO_ABORTED_INTERNAL, SDO_ABORTED_RCV, SDO_CLIENT, SDO_DOWNLOAD_IN_PROGRESS, SDO_FINISHED, SDO_RESET, SDO_UPLOAD_IN_PROGRESS, TestMaster_Data, UNS32, and UNS8. +

+Here is the call graph for this function:

+ + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void TestMaster_preOperational (void   ) 
+
+
+ +

+ +

+Definition at line 305 of file TestMasterMicroMod.c. +

+References eprintf, slavenodeid, and TestMaster_Data. +

+

+ +

+
+ + + + + + + + + +
void TestMaster_stopped (void   ) 
+
+
+ +

+ +

+Definition at line 318 of file TestMasterMicroMod.c. +

+References eprintf. +

+

+


Variable Documentation

+ +
+
+ + + + +
s_BOARD MasterBoard = {"32", "125K"}
+
+
+ +

+ +

+Definition at line 336 of file TestMasterMicroMod.c. +

+

+ +

+
+ + + + +
UNS8 slavenodeid
+
+
+ +

+ +

+Definition at line 41 of file TestMasterMicroMod.c. +

+Referenced by main(), TestMaster_initialisation(), and TestMaster_preOperational(). +

+

+


Generated on Fri Jun 8 08:51:48 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,27 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 178,5 260,29 +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 178,53 260,77 +rect $TestMasterSlave_8c.html#f2dc378d0481adcc49b61efb98493a9b 166,101 272,125 +rect $TestMasterSlave_2getopt_8c.html#1b2ada39ab92162c6ec9c67c8093fa2e 186,149 252,173 +rect $TestMasterSlave_8c.html#97ee70a8770dc30d06c744b24eb2fcfc 194,197 244,221 +rect $TestMasterSlave_8c.html#8a51032f7610fe37c131376e5a392fd5 176,245 262,269 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 444,319 522,343 +rect $unix_8c.html#a6eed61fc15f41f772d4645d7a5edeb5 158,344 280,368 +rect $nmtMaster_8c.html#6170d95d9900ef756921a934c5fb37d2 111,392 327,416 +rect $timers__unix_8c.html#c9e1731843825eb55e7a94894e6a8ec5 156,440 282,464 +rect $timers__unix_8c.html#8758484f3cebb0cd44bb247c3f23d5e3 158,488 280,512 +rect $Master_8c.html#47eb45e75b4db150fb465fcf171ef4b4 119,536 319,560 +rect $Master_8c.html#e08dfb379eebaa62524fac5bba2196d5 127,584 311,608 +rect $Master_8c.html#81c297f2b4b9676e906286bf46541fc1 130,632 308,656 +rect $Master_8c.html#9a8f72cab7f649481ca84ab2222dd179 135,680 303,704 +rect $Master_8c.html#5e466aa03eae00c269cf20359a7ee074 131,728 307,752 +rect $Master_8c.html#8fe2bae5bb407a3a71ee5fa5ea5d617f 118,776 320,800 +rect $Master_8c.html#897d573cafc13ac80abbc207c0ee41b0 140,824 298,848 +rect $TestMasterSlave_2getopt_8c.html#0df92a0ae8fe1fd43268c738f548674f 416,127 550,151 +rect $TestMasterSlave_8c.html#bd99872d05af9bf63e28d6f010c1b174 396,175 570,199 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 376,223 590,247 +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 438,271 528,295 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 686,223 798,247 +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 686,295 798,319 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 639,343 844,367 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 443,392 523,416 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b9517653754f661d677ec779206e7541 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.png Binary file doc/doxygen/html/TestMasterMicroMod_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_5e466aa03eae00c269cf20359a7ee074_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_5e466aa03eae00c269cf20359a7ee074_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $sdo_8c.html#555a772d3a88a29c495f33513f8b2d58 483,56 621,80 +rect $sdo_8c.html#05b0c8eee1faee3c7a2f6e2ba3a16533 229,7 432,31 +rect $sdo_8c.html#0e102a0835e4115920cd406e80a8d135 264,105 397,129 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 673,8 815,32 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 689,56 799,80 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 865,81 961,105 +rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 481,105 623,129 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 680,155 808,179 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 703,203 785,227 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 873,203 953,227 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_5e466aa03eae00c269cf20359a7ee074_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_5e466aa03eae00c269cf20359a7ee074_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0c4d64042de383ac05bfc4d682ade253 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_5e466aa03eae00c269cf20359a7ee074_cgraph.png Binary file doc/doxygen/html/TestMasterMicroMod_8c_5e466aa03eae00c269cf20359a7ee074_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,12 @@ +base referer +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 139,53 229,77 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 145,101 223,125 +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 325,53 437,77 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 279,149 484,173 +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 533,5 680,29 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 552,53 661,77 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 548,101 665,125 +rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 564,149 649,173 +rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 536,197 677,221 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 563,245 651,269 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 728,271 816,295 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0c8c1b4de2523558ec03d8987bb26e5b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.png Binary file doc/doxygen/html/TestMasterMicroMod_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $win32_2canfestival_8h.html 658,272 764,296 +rect $TestMasterMicroMod_8h.html 435,296 608,320 +rect $TestMasterMicroMod_2TestMaster_8h.html 468,344 575,368 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f062481afe040e9034c042ac7e092539 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_e08dfb379eebaa62524fac5bba2196d5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_e08dfb379eebaa62524fac5bba2196d5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $objacces_8c.html#7cc58d6e7711bd0d9fd75e8ff721ce36 240,6 357,30 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 405,6 512,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 561,6 729,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_e08dfb379eebaa62524fac5bba2196d5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_e08dfb379eebaa62524fac5bba2196d5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +367c52542a1fd1d4da7c85f50e065ddf \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_e08dfb379eebaa62524fac5bba2196d5_cgraph.png Binary file doc/doxygen/html/TestMasterMicroMod_8c_e08dfb379eebaa62524fac5bba2196d5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_f2dc378d0481adcc49b61efb98493a9b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_f2dc378d0481adcc49b61efb98493a9b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterSlave_8c.html#f2dc378d0481adcc49b61efb98493a9b 160,6 267,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_f2dc378d0481adcc49b61efb98493a9b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8c_f2dc378d0481adcc49b61efb98493a9b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0427e1beefaf8402e2e2e949a5b31d66 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8c_f2dc378d0481adcc49b61efb98493a9b_cgraph.png Binary file doc/doxygen/html/TestMasterMicroMod_8c_f2dc378d0481adcc49b61efb98493a9b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,85 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMasterMicroMod.h Source File + + + + +
+
+
+
+ +

TestMasterMicroMod.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 #ifdef USE_XENO
+00023 #define eprintf(...)
+00024 #else
+00025 #define eprintf(...) printf (__VA_ARGS__)
+00026 #endif
+00027 //void print_message(Message *m);
+00028 
+00029 /*UNS8 canSend(CAN_HANDLE fd0, Message *m);*/
+00030 
+00031 #include "canfestival.h"
+00032 
+00033 /*
+00034 #define CAN_FIFO_LENGTH 100
+00035 
+00036 #define DECLARE_A_CAN_FIFO \
+00037 static Message FIFO[CAN_FIFO_LENGTH];\
+00038 static int FIFO_First = 0;\
+00039 static int FIFO_Last = 0;\
+00040 \
+00041 static void PutInFIFO(Message *m)\
+00042 {\
+00043         FIFO[FIFO_Last++] = *m;\
+00044         FIFO_Last %= CAN_FIFO_LENGTH;\
+00045 }\
+00046 \
+00047 static void GetFromFIFO(Message *m)\
+00048 {\
+00049         *m = FIFO[FIFO_First++];\
+00050         FIFO_First %= CAN_FIFO_LENGTH;\
+00051 }\
+00052 \
+00053 static void TransmitMessage(CO_Data* d, UNS32 id)\
+00054 {\
+00055         Message m;\
+00056         GetFromFIFO(&m);\
+00057         canDispatch(d, &m);\
+00058 }
+00059 */
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,73 @@ + + +CanFestival: examples/TestMasterMicroMod/TestMasterMicroMod.h File Reference + + + + +
+
+
+
+ +

TestMasterMicroMod.h File Reference

#include "canfestival.h"
+ +

+Include dependency graph for TestMasterMicroMod.h:

+ + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + +

+Go to the source code of this file. + + + + +

Defines

#define eprintf(...)   printf (__VA_ARGS__)
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define eprintf ( ...   )    printf (__VA_ARGS__)
+
+
+ +

+ +

+Definition at line 25 of file TestMasterMicroMod.h. +

+

+


Generated on Fri Jun 8 08:51:48 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterMicroMod_8c.html 437,6 819,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a1c3da9e5712a4cd86313eb811448cc5 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h__dep__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $win32_2canfestival_8h.html 439,80 545,104 +rect $win32_2timerscfg_8h.html 597,5 696,29 +rect $can__driver_8h.html 595,104 699,128 +rect $data_8h.html 615,152 679,176 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterMicroMod_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +6d5a709af9ca90bbf70e89e8cf46ecee \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterMicroMod_8h__incl.png Binary file doc/doxygen/html/TestMasterMicroMod_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,438 @@ + + +CanFestival: examples/TestMasterSlave/TestMaster.c Source File + + + + +
+
+
+
+ +

TestMaster.c

Go to the documentation of this file.
00001 
+00002 /* File generated by gen_cfile.py. Should not be modified. */
+00003 
+00004 #include "TestMaster.h"
+00005 
+00006 /**************************************************************************/
+00007 /* Declaration of the mapped variables                                    */
+00008 /**************************************************************************/
+00009 UNS8 MasterMap1 = 0x0;          /* Mapped at index 0x2000, subindex 0x00 */
+00010 UNS8 MasterMap2 = 0x0;          /* Mapped at index 0x2001, subindex 0x00 */
+00011 UNS8 MasterMap3 = 0x0;          /* Mapped at index 0x2002, subindex 0x00 */
+00012 UNS8 MasterMap4 = 0x0;          /* Mapped at index 0x2003, subindex 0x00 */
+00013 UNS8 MasterMap5 = 0x0;          /* Mapped at index 0x2004, subindex 0x00 */
+00014 UNS8 MasterMap6 = 0x0;          /* Mapped at index 0x2005, subindex 0x00 */
+00015 UNS8 MasterMap7 = 0x0;          /* Mapped at index 0x2006, subindex 0x00 */
+00016 UNS8 MasterMap8 = 0x0;          /* Mapped at index 0x2007, subindex 0x00 */
+00017 UNS8 MasterMap9 = 0x0;          /* Mapped at index 0x2008, subindex 0x00 */
+00018 UNS32 MasterMap10 = 0x0;                /* Mapped at index 0x2009, subindex 0x00 */
+00019 UNS16 MasterMap11 = 0x0;                /* Mapped at index 0x200A, subindex 0x00 */
+00020 
+00021 /**************************************************************************/
+00022 /* Declaration of the value range types                                   */
+00023 /**************************************************************************/
+00024 
+00025 UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void * value)
+00026 {
+00027   switch (typeValue) {
+00028   }
+00029   return 0;
+00030 }
+00031 
+00032 /**************************************************************************/
+00033 /* The node id                                                            */
+00034 /**************************************************************************/
+00035 /* node_id default value.*/
+00036 UNS8 TestMaster_bDeviceNodeId = 0x01;
+00037 
+00038 /**************************************************************************/
+00039 /* Array of message processing information */
+00040 
+00041 const UNS8 TestMaster_iam_a_slave = 0;
+00042 
+00043 TIMER_HANDLE TestMaster_heartBeatTimers[1] = {TIMER_NONE,};
+00044 
+00045 /*
+00046 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00047 
+00048                                OBJECT DICTIONARY
+00049 
+00050 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00051 */
+00052 
+00053 /* index 0x1000 :   Device Type. */
+00054                     UNS32 TestMaster_obj1000 = 0x12D;   /* 301 */
+00055                     subindex TestMaster_Index1000[] = 
+00056                      {
+00057                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1000 }
+00058                      };
+00059 
+00060 /* index 0x1001 :   Error Register. */
+00061                     UNS8 TestMaster_obj1001 = 0x0;      /* 0 */
+00062                     subindex TestMaster_Index1001[] = 
+00063                      {
+00064                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
+00065                      };
+00066 
+00067 /* index 0x1005 :   SYNC COB ID. */
+00068                     UNS32 TestMaster_obj1005 = 0x40000080;      /* 1073741952 */
+00069                     ODCallback_t TestMaster_Index1005_callbacks[] = 
+00070                      {
+00071                        NULL,
+00072                      };
+00073                     subindex TestMaster_Index1005[] = 
+00074                      {
+00075                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1005 }
+00076                      };
+00077 
+00078 /* index 0x1006 :   Communication / Cycle Period. */
+00079                     UNS32 TestMaster_obj1006 = 0xC350;  /* 50000 */
+00080                     ODCallback_t TestMaster_Index1006_callbacks[] = 
+00081                      {
+00082                        NULL,
+00083                      };
+00084                     subindex TestMaster_Index1006[] = 
+00085                      {
+00086                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 }
+00087                      };
+00088 
+00089 /* index 0x1010 :   Store parameters. */
+00090                     UNS8 TestMaster_highestSubIndex_obj1010 = 4; /* number of subindex - 1*/
+00091                     UNS32 TestMaster_obj1010_Save_All_Parameters = 0x0; /* 0 */
+00092                     UNS32 TestMaster_obj1010_Save_Communication_Parameters = 0x0;       /* 0 */
+00093                     UNS32 TestMaster_obj1010_Save_Application_Parameters = 0x0; /* 0 */
+00094                     UNS32 TestMaster_obj1010_Save_Manufacturer_Parameters = 0x0;        /* 0 */
+00095                     subindex TestMaster_Index1010[] = 
+00096                      {
+00097                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1010 },
+00098                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_All_Parameters },
+00099                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Communication_Parameters },
+00100                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Application_Parameters },
+00101                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Manufacturer_Parameters }
+00102                      };
+00103 
+00104 /* index 0x1011 :   Restore Default Parameters. */
+00105                     UNS8 TestMaster_highestSubIndex_obj1011 = 4; /* number of subindex - 1*/
+00106                     UNS32 TestMaster_obj1011_Restore_All_Default_Parameters = 0x0;      /* 0 */
+00107                     UNS32 TestMaster_obj1011_Restore_Communication_Default_Parameters = 0x0;    /* 0 */
+00108                     UNS32 TestMaster_obj1011_Restore_Application_Default_Parameters = 0x0;      /* 0 */
+00109                     UNS32 TestMaster_obj1011_Restore_Manufacturer_Default_Parameters = 0x0;     /* 0 */
+00110                     subindex TestMaster_Index1011[] = 
+00111                      {
+00112                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1011 },
+00113                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_All_Default_Parameters },
+00114                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Communication_Default_Parameters },
+00115                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Application_Default_Parameters },
+00116                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Manufacturer_Default_Parameters }
+00117                      };
+00118 
+00119 /* index 0x1016 :   Consumer Heartbeat Time. */
+00120                     UNS8 TestMaster_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/
+00121                     UNS32 TestMaster_obj1016[] = 
+00122                     {
+00123                       0x205DC   /* 132572 */
+00124                     };
+00125                     subindex TestMaster_Index1016[] = 
+00126                      {
+00127                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1016 },
+00128                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1016[0] }
+00129                      };
+00130 
+00131 /* index 0x1017 :   Producer Heartbeat Time */ 
+00132                     UNS16 TestMaster_obj1017 = 0x0;   /* 0 */
+00133 
+00134 /* index 0x1018 :   Identity. */
+00135                     UNS8 TestMaster_highestSubIndex_obj1018 = 4; /* number of subindex - 1*/
+00136                     UNS32 TestMaster_obj1018_Vendor_ID = 0x0;   /* 0 */
+00137                     UNS32 TestMaster_obj1018_Product_Code = 0x0;        /* 0 */
+00138                     UNS32 TestMaster_obj1018_Revision_Number = 0x0;     /* 0 */
+00139                     UNS32 TestMaster_obj1018_Serial_Number = 0x0;       /* 0 */
+00140                     subindex TestMaster_Index1018[] = 
+00141                      {
+00142                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1018 },
+00143                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Vendor_ID },
+00144                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Product_Code },
+00145                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Revision_Number },
+00146                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Serial_Number }
+00147                      };
+00148 
+00149 /* index 0x1280 :   Client SDO 1 Parameter. */
+00150                     UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
+00151                     UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602;      /* 1538 */
+00152                     UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582;       /* 1410 */
+00153                     INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2;       /* 2 */
+00154                     subindex TestMaster_Index1280[] = 
+00155                      {
+00156                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
+00157                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
+00158                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
+00159                        { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
+00160                      };
+00161 
+00162 /* index 0x1400 :   Receive PDO 1 Parameter. */
+00163                     UNS8 TestMaster_highestSubIndex_obj1400 = 5; /* number of subindex - 1*/
+00164                     UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x182;        /* 386 */
+00165                     UNS8 TestMaster_obj1400_Transmission_Type = 0x1;    /* 1 */
+00166                     UNS16 TestMaster_obj1400_Inhibit_Time = 0x0;        /* 0 */
+00167                     UNS8 TestMaster_obj1400_Compatibility_Entry = 0x0;  /* 0 */
+00168                     UNS16 TestMaster_obj1400_Event_Timer = 0x0; /* 0 */
+00169                     subindex TestMaster_Index1400[] = 
+00170                      {
+00171                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1400 },
+00172                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1400_COB_ID_used_by_PDO },
+00173                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Transmission_Type },
+00174                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Inhibit_Time },
+00175                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Compatibility_Entry },
+00176                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Event_Timer }
+00177                      };
+00178 
+00179 /* index 0x1401 :   Receive PDO 2 Parameter. */
+00180                     UNS8 TestMaster_highestSubIndex_obj1401 = 5; /* number of subindex - 1*/
+00181                     UNS32 TestMaster_obj1401_COB_ID_used_by_PDO = 0x0;  /* 0 */
+00182                     UNS8 TestMaster_obj1401_Transmission_Type = 0x0;    /* 0 */
+00183                     UNS16 TestMaster_obj1401_Inhibit_Time = 0x0;        /* 0 */
+00184                     UNS8 TestMaster_obj1401_Compatibility_Entry = 0x0;  /* 0 */
+00185                     UNS16 TestMaster_obj1401_Event_Timer = 0x0; /* 0 */
+00186                     subindex TestMaster_Index1401[] = 
+00187                      {
+00188                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1401 },
+00189                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1401_COB_ID_used_by_PDO },
+00190                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1401_Transmission_Type },
+00191                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1401_Inhibit_Time },
+00192                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1401_Compatibility_Entry },
+00193                        { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1401_Event_Timer }
+00194                      };
+00195 
+00196 /* index 0x1600 :   Receive PDO 1 Mapping. */
+00197                     UNS8 TestMaster_highestSubIndex_obj1600 = 10; /* number of subindex - 1*/
+00198                     UNS32 TestMaster_obj1600[] = 
+00199                     {
+00200                       0x20000001,       /* 536870913 */
+00201                       0x20010001,       /* 536936449 */
+00202                       0x20020001,       /* 537001985 */
+00203                       0x20030001,       /* 537067521 */
+00204                       0x20040001,       /* 537133057 */
+00205                       0x20050001,       /* 537198593 */
+00206                       0x20060001,       /* 537264129 */
+00207                       0x20070001,       /* 537329665 */
+00208                       0x20080008,       /* 537395208 */
+00209                       0x20090020        /* 537460768 */
+00210                     };
+00211                     subindex TestMaster_Index1600[] = 
+00212                      {
+00213                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1600 },
+00214                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[0] },
+00215                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[1] },
+00216                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[2] },
+00217                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[3] },
+00218                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[4] },
+00219                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[5] },
+00220                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[6] },
+00221                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[7] },
+00222                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[8] },
+00223                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[9] }
+00224                      };
+00225 
+00226 /* index 0x1601 :   Receive PDO 2 Mapping. */
+00227                     UNS8 TestMaster_highestSubIndex_obj1601 = 1; /* number of subindex - 1*/
+00228                     UNS32 TestMaster_obj1601[] = 
+00229                     {
+00230                       0x200A0010        /* 537526288 */
+00231                     };
+00232                     subindex TestMaster_Index1601[] = 
+00233                      {
+00234                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1601 },
+00235                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1601[0] }
+00236                      };
+00237 
+00238 /* index 0x1F22 :   Concise DCF. */
+00239                     UNS8 TestMaster_highestSubIndex_obj1F22 = 2; /* number of subindex - 1*/
+00240                     UNS8* TestMaster_obj1F22[] = 
+00241                     {
+00242                       "",
+00243                       "\x01\x00\x00\x00\x17\x10\x00\x02\x00\x00\x00\xe8\x03"
+00244                     };
+00245                     subindex TestMaster_Index1F22[] = 
+00246                      {
+00247                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1F22 },
+00248                        { RW, domain, 0, (void*)&TestMaster_obj1F22[0] },
+00249                        { RW, domain, 13, (void*)&TestMaster_obj1F22[1] }
+00250                      };
+00251 
+00252 /* index 0x2000 :   Mapped variable MasterMap1 */
+00253                     subindex TestMaster_Index2000[] = 
+00254                      {
+00255                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap1 }
+00256                      };
+00257 
+00258 /* index 0x2001 :   Mapped variable MasterMap2 */
+00259                     subindex TestMaster_Index2001[] = 
+00260                      {
+00261                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap2 }
+00262                      };
+00263 
+00264 /* index 0x2002 :   Mapped variable MasterMap3 */
+00265                     subindex TestMaster_Index2002[] = 
+00266                      {
+00267                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap3 }
+00268                      };
+00269 
+00270 /* index 0x2003 :   Mapped variable MasterMap4 */
+00271                     subindex TestMaster_Index2003[] = 
+00272                      {
+00273                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap4 }
+00274                      };
+00275 
+00276 /* index 0x2004 :   Mapped variable MasterMap5 */
+00277                     subindex TestMaster_Index2004[] = 
+00278                      {
+00279                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap5 }
+00280                      };
+00281 
+00282 /* index 0x2005 :   Mapped variable MasterMap6 */
+00283                     subindex TestMaster_Index2005[] = 
+00284                      {
+00285                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap6 }
+00286                      };
+00287 
+00288 /* index 0x2006 :   Mapped variable MasterMap7 */
+00289                     subindex TestMaster_Index2006[] = 
+00290                      {
+00291                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap7 }
+00292                      };
+00293 
+00294 /* index 0x2007 :   Mapped variable MasterMap8 */
+00295                     subindex TestMaster_Index2007[] = 
+00296                      {
+00297                        { RW, boolean, sizeof (UNS8), (void*)&MasterMap8 }
+00298                      };
+00299 
+00300 /* index 0x2008 :   Mapped variable MasterMap9 */
+00301                     subindex TestMaster_Index2008[] = 
+00302                      {
+00303                        { RW, uint8, sizeof (UNS8), (void*)&MasterMap9 }
+00304                      };
+00305 
+00306 /* index 0x2009 :   Mapped variable MasterMap10 */
+00307                     subindex TestMaster_Index2009[] = 
+00308                      {
+00309                        { RW, uint32, sizeof (UNS32), (void*)&MasterMap10 }
+00310                      };
+00311 
+00312 /* index 0x200A :   Mapped variable MasterMap11 */
+00313                     subindex TestMaster_Index200A[] = 
+00314                      {
+00315                        { RW, uint16, sizeof (UNS16), (void*)&MasterMap11 }
+00316                      };
+00317 
+00318 const indextable TestMaster_objdict[] = 
+00319 {
+00320   { (subindex*)TestMaster_Index1000,sizeof(TestMaster_Index1000)/sizeof(TestMaster_Index1000[0]), 0x1000},
+00321   { (subindex*)TestMaster_Index1001,sizeof(TestMaster_Index1001)/sizeof(TestMaster_Index1001[0]), 0x1001},
+00322   { (subindex*)TestMaster_Index1005,sizeof(TestMaster_Index1005)/sizeof(TestMaster_Index1005[0]), 0x1005},
+00323   { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006},
+00324   { (subindex*)TestMaster_Index1010,sizeof(TestMaster_Index1010)/sizeof(TestMaster_Index1010[0]), 0x1010},
+00325   { (subindex*)TestMaster_Index1011,sizeof(TestMaster_Index1011)/sizeof(TestMaster_Index1011[0]), 0x1011},
+00326   { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016},
+00327   { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018},
+00328   { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280},
+00329   { (subindex*)TestMaster_Index1400,sizeof(TestMaster_Index1400)/sizeof(TestMaster_Index1400[0]), 0x1400},
+00330   { (subindex*)TestMaster_Index1401,sizeof(TestMaster_Index1401)/sizeof(TestMaster_Index1401[0]), 0x1401},
+00331   { (subindex*)TestMaster_Index1600,sizeof(TestMaster_Index1600)/sizeof(TestMaster_Index1600[0]), 0x1600},
+00332   { (subindex*)TestMaster_Index1601,sizeof(TestMaster_Index1601)/sizeof(TestMaster_Index1601[0]), 0x1601},
+00333   { (subindex*)TestMaster_Index1F22,sizeof(TestMaster_Index1F22)/sizeof(TestMaster_Index1F22[0]), 0x1F22},
+00334   { (subindex*)TestMaster_Index2000,sizeof(TestMaster_Index2000)/sizeof(TestMaster_Index2000[0]), 0x2000},
+00335   { (subindex*)TestMaster_Index2001,sizeof(TestMaster_Index2001)/sizeof(TestMaster_Index2001[0]), 0x2001},
+00336   { (subindex*)TestMaster_Index2002,sizeof(TestMaster_Index2002)/sizeof(TestMaster_Index2002[0]), 0x2002},
+00337   { (subindex*)TestMaster_Index2003,sizeof(TestMaster_Index2003)/sizeof(TestMaster_Index2003[0]), 0x2003},
+00338   { (subindex*)TestMaster_Index2004,sizeof(TestMaster_Index2004)/sizeof(TestMaster_Index2004[0]), 0x2004},
+00339   { (subindex*)TestMaster_Index2005,sizeof(TestMaster_Index2005)/sizeof(TestMaster_Index2005[0]), 0x2005},
+00340   { (subindex*)TestMaster_Index2006,sizeof(TestMaster_Index2006)/sizeof(TestMaster_Index2006[0]), 0x2006},
+00341   { (subindex*)TestMaster_Index2007,sizeof(TestMaster_Index2007)/sizeof(TestMaster_Index2007[0]), 0x2007},
+00342   { (subindex*)TestMaster_Index2008,sizeof(TestMaster_Index2008)/sizeof(TestMaster_Index2008[0]), 0x2008},
+00343   { (subindex*)TestMaster_Index2009,sizeof(TestMaster_Index2009)/sizeof(TestMaster_Index2009[0]), 0x2009},
+00344   { (subindex*)TestMaster_Index200A,sizeof(TestMaster_Index200A)/sizeof(TestMaster_Index200A[0]), 0x200A},
+00345 };
+00346 
+00347 const indextable * TestMaster_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
+00348 {
+00349         int i;
+00350         *callbacks = NULL;
+00351         switch(wIndex){
+00352                 case 0x1000: i = 0;break;
+00353                 case 0x1001: i = 1;break;
+00354                 case 0x1005: i = 2;*callbacks = TestMaster_Index1005_callbacks; break;
+00355                 case 0x1006: i = 3;*callbacks = TestMaster_Index1006_callbacks; break;
+00356                 case 0x1010: i = 4;break;
+00357                 case 0x1011: i = 5;break;
+00358                 case 0x1016: i = 6;break;
+00359                 case 0x1018: i = 7;break;
+00360                 case 0x1280: i = 8;break;
+00361                 case 0x1400: i = 9;break;
+00362                 case 0x1401: i = 10;break;
+00363                 case 0x1600: i = 11;break;
+00364                 case 0x1601: i = 12;break;
+00365                 case 0x1F22: i = 13;break;
+00366                 case 0x2000: i = 14;break;
+00367                 case 0x2001: i = 15;break;
+00368                 case 0x2002: i = 16;break;
+00369                 case 0x2003: i = 17;break;
+00370                 case 0x2004: i = 18;break;
+00371                 case 0x2005: i = 19;break;
+00372                 case 0x2006: i = 20;break;
+00373                 case 0x2007: i = 21;break;
+00374                 case 0x2008: i = 22;break;
+00375                 case 0x2009: i = 23;break;
+00376                 case 0x200A: i = 24;break;
+00377                 default:
+00378                         *errorCode = OD_NO_SUCH_OBJECT;
+00379                         return NULL;
+00380         }
+00381         *errorCode = OD_SUCCESSFUL;
+00382         return &TestMaster_objdict[i];
+00383 }
+00384 
+00385 /* To count at which received SYNC a PDO must be sent.
+00386  * Even if no pdoTransmit are defined, at least one entry is computed
+00387  * for compilations issues.
+00388  */
+00389 UNS8 TestMaster_count_sync[1] = {0,};
+00390 
+00391 quick_index TestMaster_firstIndex = {
+00392   0, /* SDO_SVR */
+00393   8, /* SDO_CLT */
+00394   9, /* PDO_RCV */
+00395   11, /* PDO_RCV_MAP */
+00396   0, /* PDO_TRS */
+00397   0 /* PDO_TRS_MAP */
+00398 };
+00399 
+00400 quick_index TestMaster_lastIndex = {
+00401   0, /* SDO_SVR */
+00402   8, /* SDO_CLT */
+00403   10, /* PDO_RCV */
+00404   12, /* PDO_RCV_MAP */
+00405   0, /* PDO_TRS */
+00406   0 /* PDO_TRS_MAP */
+00407 };
+00408 
+00409 UNS16 TestMaster_ObjdictSize = sizeof(TestMaster_objdict)/sizeof(TestMaster_objdict[0]); 
+00410 
+00411 CO_Data TestMaster_Data = CANOPEN_NODE_DATA_INITIALIZER(TestMaster);
+00412 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2102 @@ + + +CanFestival: examples/TestMasterSlave/TestMaster.c File Reference + + + + +
+
+
+
+ +

TestMaster.c File Reference

#include "TestMaster.h"
+ +

+Include dependency graph for TestMaster.c:

+ + + + + + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void *value)
const indextableTestMaster_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

Variables

UNS8 MasterMap1 = 0x0
UNS8 MasterMap2 = 0x0
UNS8 MasterMap3 = 0x0
UNS8 MasterMap4 = 0x0
UNS8 MasterMap5 = 0x0
UNS8 MasterMap6 = 0x0
UNS8 MasterMap7 = 0x0
UNS8 MasterMap8 = 0x0
UNS8 MasterMap9 = 0x0
UNS32 MasterMap10 = 0x0
UNS16 MasterMap11 = 0x0
UNS8 TestMaster_bDeviceNodeId = 0x01
const UNS8 TestMaster_iam_a_slave = 0
TIMER_HANDLE TestMaster_heartBeatTimers [1] = {TIMER_NONE,}
UNS32 TestMaster_obj1000 = 0x12D
subindex TestMaster_Index1000 []
UNS8 TestMaster_obj1001 = 0x0
subindex TestMaster_Index1001 []
UNS32 TestMaster_obj1005 = 0x40000080
ODCallback_t TestMaster_Index1005_callbacks []
subindex TestMaster_Index1005 []
UNS32 TestMaster_obj1006 = 0xC350
ODCallback_t TestMaster_Index1006_callbacks []
subindex TestMaster_Index1006 []
UNS8 TestMaster_highestSubIndex_obj1010 = 4
UNS32 TestMaster_obj1010_Save_All_Parameters = 0x0
UNS32 TestMaster_obj1010_Save_Communication_Parameters = 0x0
UNS32 TestMaster_obj1010_Save_Application_Parameters = 0x0
UNS32 TestMaster_obj1010_Save_Manufacturer_Parameters = 0x0
subindex TestMaster_Index1010 []
UNS8 TestMaster_highestSubIndex_obj1011 = 4
UNS32 TestMaster_obj1011_Restore_All_Default_Parameters = 0x0
UNS32 TestMaster_obj1011_Restore_Communication_Default_Parameters = 0x0
UNS32 TestMaster_obj1011_Restore_Application_Default_Parameters = 0x0
UNS32 TestMaster_obj1011_Restore_Manufacturer_Default_Parameters = 0x0
subindex TestMaster_Index1011 []
UNS8 TestMaster_highestSubIndex_obj1016 = 1
UNS32 TestMaster_obj1016 []
subindex TestMaster_Index1016 []
UNS16 TestMaster_obj1017 = 0x0
UNS8 TestMaster_highestSubIndex_obj1018 = 4
UNS32 TestMaster_obj1018_Vendor_ID = 0x0
UNS32 TestMaster_obj1018_Product_Code = 0x0
UNS32 TestMaster_obj1018_Revision_Number = 0x0
UNS32 TestMaster_obj1018_Serial_Number = 0x0
subindex TestMaster_Index1018 []
UNS8 TestMaster_highestSubIndex_obj1280 = 3
UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602
UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582
INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2
subindex TestMaster_Index1280 []
UNS8 TestMaster_highestSubIndex_obj1400 = 5
UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x182
UNS8 TestMaster_obj1400_Transmission_Type = 0x1
UNS16 TestMaster_obj1400_Inhibit_Time = 0x0
UNS8 TestMaster_obj1400_Compatibility_Entry = 0x0
UNS16 TestMaster_obj1400_Event_Timer = 0x0
subindex TestMaster_Index1400 []
UNS8 TestMaster_highestSubIndex_obj1401 = 5
UNS32 TestMaster_obj1401_COB_ID_used_by_PDO = 0x0
UNS8 TestMaster_obj1401_Transmission_Type = 0x0
UNS16 TestMaster_obj1401_Inhibit_Time = 0x0
UNS8 TestMaster_obj1401_Compatibility_Entry = 0x0
UNS16 TestMaster_obj1401_Event_Timer = 0x0
subindex TestMaster_Index1401 []
UNS8 TestMaster_highestSubIndex_obj1600 = 10
UNS32 TestMaster_obj1600 []
subindex TestMaster_Index1600 []
UNS8 TestMaster_highestSubIndex_obj1601 = 1
UNS32 TestMaster_obj1601 []
subindex TestMaster_Index1601 []
UNS8 TestMaster_highestSubIndex_obj1F22 = 2
UNS8 * TestMaster_obj1F22 []
subindex TestMaster_Index1F22 []
subindex TestMaster_Index2000 []
subindex TestMaster_Index2001 []
subindex TestMaster_Index2002 []
subindex TestMaster_Index2003 []
subindex TestMaster_Index2004 []
subindex TestMaster_Index2005 []
subindex TestMaster_Index2006 []
subindex TestMaster_Index2007 []
subindex TestMaster_Index2008 []
subindex TestMaster_Index2009 []
subindex TestMaster_Index200A []
const indextable TestMaster_objdict []
UNS8 TestMaster_count_sync [1] = {0,}
quick_index TestMaster_firstIndex
quick_index TestMaster_lastIndex
UNS16 TestMaster_ObjdictSize = sizeof(TestMaster_objdict)/sizeof(TestMaster_objdict[0])
CO_Data TestMaster_Data = CANOPEN_NODE_DATA_INITIALIZER(TestMaster)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const indextable* TestMaster_scanIndexOD (UNS16  wIndex,
UNS32 *  errorCode,
ODCallback_t **  callbacks 
)
+
+
+ +

+ +

+Definition at line 347 of file TestMaster.c. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS32 TestMaster_valueRangeTest (UNS8  typeValue,
void *  value 
)
+
+
+ +

+ +

+Definition at line 25 of file TestMaster.c. +

+

+


Variable Documentation

+ +
+
+ + + + +
UNS8 MasterMap1 = 0x0
+
+
+ +

+ +

+Definition at line 9 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
UNS32 MasterMap10 = 0x0
+
+
+ +

+ +

+Definition at line 18 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS16 MasterMap11 = 0x0
+
+
+ +

+ +

+Definition at line 19 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap2 = 0x0
+
+
+ +

+ +

+Definition at line 10 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap3 = 0x0
+
+
+ +

+ +

+Definition at line 11 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap4 = 0x0
+
+
+ +

+ +

+Definition at line 12 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap5 = 0x0
+
+
+ +

+ +

+Definition at line 13 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap6 = 0x0
+
+
+ +

+ +

+Definition at line 14 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap7 = 0x0
+
+
+ +

+ +

+Definition at line 15 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap8 = 0x0
+
+
+ +

+ +

+Definition at line 16 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap9 = 0x0
+
+
+ +

+ +

+Definition at line 17 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 TestMaster_bDeviceNodeId = 0x01
+
+
+ +

+ +

+Definition at line 36 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_count_sync[1] = {0,}
+
+
+ +

+ +

+Definition at line 389 of file TestMaster.c. +

+

+ +

+
+ + + + +
CO_Data TestMaster_Data = CANOPEN_NODE_DATA_INITIALIZER(TestMaster)
+
+
+ +

+ +

+Definition at line 411 of file TestMaster.c. +

+Referenced by InitNodes(), main(), TestMaster_initialisation(), TestMaster_post_TPDO(), and TestMaster_preOperational(). +

+

+ +

+
+ + + + +
quick_index TestMaster_firstIndex
+
+
+ +

+Initial value:

 {
+  0, 
+  8, 
+  9, 
+  11, 
+  0, 
+  0 
+}
+
+

+Definition at line 391 of file TestMaster.c. +

+

+ +

+
+ + + + +
TIMER_HANDLE TestMaster_heartBeatTimers[1] = {TIMER_NONE,}
+
+
+ +

+ +

+Definition at line 43 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1010 = 4
+
+
+ +

+ +

+Definition at line 90 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1011 = 4
+
+
+ +

+ +

+Definition at line 105 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1016 = 1
+
+
+ +

+ +

+Definition at line 120 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1018 = 4
+
+
+ +

+ +

+Definition at line 135 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1280 = 3
+
+
+ +

+ +

+Definition at line 150 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1400 = 5
+
+
+ +

+ +

+Definition at line 163 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1401 = 5
+
+
+ +

+ +

+Definition at line 180 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1600 = 10
+
+
+ +

+ +

+Definition at line 197 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1601 = 1
+
+
+ +

+ +

+Definition at line 227 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_highestSubIndex_obj1F22 = 2
+
+
+ +

+ +

+Definition at line 239 of file TestMaster.c. +

+

+ +

+
+ + + + +
const UNS8 TestMaster_iam_a_slave = 0
+
+
+ +

+ +

+Definition at line 41 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1000[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1000 }
+                     }
+
+

+Definition at line 55 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1001[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
+                     }
+
+

+Definition at line 62 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1005[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1005 }
+                     }
+
+

+Definition at line 73 of file TestMaster.c. +

+

+ +

+
+ + + + +
ODCallback_t TestMaster_Index1005_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 69 of file TestMaster.c. +

+Referenced by TestMaster_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestMaster_Index1006[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 }
+                     }
+
+

+Definition at line 84 of file TestMaster.c. +

+

+ +

+
+ + + + +
ODCallback_t TestMaster_Index1006_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 80 of file TestMaster.c. +

+Referenced by TestMaster_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestMaster_Index1010[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1010 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_All_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Communication_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Application_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Manufacturer_Parameters }
+                     }
+
+

+Definition at line 95 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1011[]
+
+
+ +

+Initial value:

+

+Definition at line 110 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1016[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1016 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1016[0] }
+                     }
+
+

+Definition at line 125 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1018[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1018 },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Vendor_ID },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Product_Code },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Revision_Number },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Serial_Number }
+                     }
+
+

+Definition at line 140 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1280[]
+
+
+ +

+Initial value:

+

+Definition at line 154 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1400[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1400 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1400_COB_ID_used_by_PDO },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Transmission_Type },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Inhibit_Time },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Compatibility_Entry },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Event_Timer }
+                     }
+
+

+Definition at line 169 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1401[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1401 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1401_COB_ID_used_by_PDO },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1401_Transmission_Type },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1401_Inhibit_Time },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1401_Compatibility_Entry },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1401_Event_Timer }
+                     }
+
+

+Definition at line 186 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1600[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1600 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[0] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[1] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[2] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[3] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[4] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[5] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[6] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[7] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[8] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1600[9] }
+                     }
+
+

+Definition at line 211 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1601[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1601 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1601[0] }
+                     }
+
+

+Definition at line 232 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index1F22[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1F22 },
+                       { RW, domain, 0, (void*)&TestMaster_obj1F22[0] },
+                       { RW, domain, 13, (void*)&TestMaster_obj1F22[1] }
+                     }
+
+

+Definition at line 245 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2000[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap1 }
+                     }
+
+

+Definition at line 253 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2001[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap2 }
+                     }
+
+

+Definition at line 259 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2002[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap3 }
+                     }
+
+

+Definition at line 265 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2003[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap4 }
+                     }
+
+

+Definition at line 271 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2004[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap5 }
+                     }
+
+

+Definition at line 277 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2005[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap6 }
+                     }
+
+

+Definition at line 283 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2006[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap7 }
+                     }
+
+

+Definition at line 289 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2007[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&MasterMap8 }
+                     }
+
+

+Definition at line 295 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2008[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&MasterMap9 }
+                     }
+
+

+Definition at line 301 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index2009[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&MasterMap10 }
+                     }
+
+

+Definition at line 307 of file TestMaster.c. +

+

+ +

+
+ + + + +
subindex TestMaster_Index200A[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint16, sizeof (UNS16), (void*)&MasterMap11 }
+                     }
+
+

+Definition at line 313 of file TestMaster.c. +

+

+ +

+
+ + + + +
quick_index TestMaster_lastIndex
+
+
+ +

+Initial value:

 {
+  0, 
+  8, 
+  10, 
+  12, 
+  0, 
+  0 
+}
+
+

+Definition at line 400 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1000 = 0x12D
+
+
+ +

+ +

+Definition at line 54 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1001 = 0x0
+
+
+ +

+ +

+Definition at line 61 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1005 = 0x40000080
+
+
+ +

+ +

+Definition at line 68 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1006 = 0xC350
+
+
+ +

+ +

+Definition at line 79 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1010_Save_All_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 91 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1010_Save_Application_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 93 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1010_Save_Communication_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 92 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1010_Save_Manufacturer_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 94 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1011_Restore_All_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 106 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1011_Restore_Application_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 108 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1011_Restore_Communication_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 107 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1011_Restore_Manufacturer_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 109 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1016[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x205DC   
+                    }
+
+

+Definition at line 121 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1017 = 0x0
+
+
+ +

+ +

+Definition at line 132 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Product_Code = 0x0
+
+
+ +

+ +

+Definition at line 137 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Revision_Number = 0x0
+
+
+ +

+ +

+Definition at line 138 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Serial_Number = 0x0
+
+
+ +

+ +

+Definition at line 139 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1018_Vendor_ID = 0x0
+
+
+ +

+ +

+Definition at line 136 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602
+
+
+ +

+ +

+Definition at line 151 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582
+
+
+ +

+ +

+Definition at line 152 of file TestMaster.c. +

+

+ +

+
+ + + + +
INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2
+
+
+ +

+ +

+Definition at line 153 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x182
+
+
+ +

+ +

+Definition at line 164 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1400_Compatibility_Entry = 0x0
+
+
+ +

+ +

+Definition at line 167 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1400_Event_Timer = 0x0
+
+
+ +

+ +

+Definition at line 168 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1400_Inhibit_Time = 0x0
+
+
+ +

+ +

+Definition at line 166 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1400_Transmission_Type = 0x1
+
+
+ +

+ +

+Definition at line 165 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1401_COB_ID_used_by_PDO = 0x0
+
+
+ +

+ +

+Definition at line 181 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1401_Compatibility_Entry = 0x0
+
+
+ +

+ +

+Definition at line 184 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1401_Event_Timer = 0x0
+
+
+ +

+ +

+Definition at line 185 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS16 TestMaster_obj1401_Inhibit_Time = 0x0
+
+
+ +

+ +

+Definition at line 183 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8 TestMaster_obj1401_Transmission_Type = 0x0
+
+
+ +

+ +

+Definition at line 182 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1600[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x20000001,       
+                      0x20010001,       
+                      0x20020001,       
+                      0x20030001,       
+                      0x20040001,       
+                      0x20050001,       
+                      0x20060001,       
+                      0x20070001,       
+                      0x20080008,       
+                      0x20090020        
+                    }
+
+

+Definition at line 198 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS32 TestMaster_obj1601[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x200A0010        
+                    }
+
+

+Definition at line 228 of file TestMaster.c. +

+

+ +

+
+ + + + +
UNS8* TestMaster_obj1F22[]
+
+
+ +

+Initial value:

 
+                    {
+                      "",
+                      "\x01\x00\x00\x00\x17\x10\x00\x02\x00\x00\x00\xe8\x03"
+                    }
+
+

+Definition at line 240 of file TestMaster.c. +

+

+ +

+
+ + + + +
const indextable TestMaster_objdict[]
+
+
+ +

+Initial value:

 
+{
+  { (subindex*)TestMaster_Index1000,sizeof(TestMaster_Index1000)/sizeof(TestMaster_Index1000[0]), 0x1000},
+  { (subindex*)TestMaster_Index1001,sizeof(TestMaster_Index1001)/sizeof(TestMaster_Index1001[0]), 0x1001},
+  { (subindex*)TestMaster_Index1005,sizeof(TestMaster_Index1005)/sizeof(TestMaster_Index1005[0]), 0x1005},
+  { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006},
+  { (subindex*)TestMaster_Index1010,sizeof(TestMaster_Index1010)/sizeof(TestMaster_Index1010[0]), 0x1010},
+  { (subindex*)TestMaster_Index1011,sizeof(TestMaster_Index1011)/sizeof(TestMaster_Index1011[0]), 0x1011},
+  { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016},
+  { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018},
+  { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280},
+  { (subindex*)TestMaster_Index1400,sizeof(TestMaster_Index1400)/sizeof(TestMaster_Index1400[0]), 0x1400},
+  { (subindex*)TestMaster_Index1401,sizeof(TestMaster_Index1401)/sizeof(TestMaster_Index1401[0]), 0x1401},
+  { (subindex*)TestMaster_Index1600,sizeof(TestMaster_Index1600)/sizeof(TestMaster_Index1600[0]), 0x1600},
+  { (subindex*)TestMaster_Index1601,sizeof(TestMaster_Index1601)/sizeof(TestMaster_Index1601[0]), 0x1601},
+  { (subindex*)TestMaster_Index1F22,sizeof(TestMaster_Index1F22)/sizeof(TestMaster_Index1F22[0]), 0x1F22},
+  { (subindex*)TestMaster_Index2000,sizeof(TestMaster_Index2000)/sizeof(TestMaster_Index2000[0]), 0x2000},
+  { (subindex*)TestMaster_Index2001,sizeof(TestMaster_Index2001)/sizeof(TestMaster_Index2001[0]), 0x2001},
+  { (subindex*)TestMaster_Index2002,sizeof(TestMaster_Index2002)/sizeof(TestMaster_Index2002[0]), 0x2002},
+  { (subindex*)TestMaster_Index2003,sizeof(TestMaster_Index2003)/sizeof(TestMaster_Index2003[0]), 0x2003},
+  { (subindex*)TestMaster_Index2004,sizeof(TestMaster_Index2004)/sizeof(TestMaster_Index2004[0]), 0x2004},
+  { (subindex*)TestMaster_Index2005,sizeof(TestMaster_Index2005)/sizeof(TestMaster_Index2005[0]), 0x2005},
+  { (subindex*)TestMaster_Index2006,sizeof(TestMaster_Index2006)/sizeof(TestMaster_Index2006[0]), 0x2006},
+  { (subindex*)TestMaster_Index2007,sizeof(TestMaster_Index2007)/sizeof(TestMaster_Index2007[0]), 0x2007},
+  { (subindex*)TestMaster_Index2008,sizeof(TestMaster_Index2008)/sizeof(TestMaster_Index2008[0]), 0x2008},
+  { (subindex*)TestMaster_Index2009,sizeof(TestMaster_Index2009)/sizeof(TestMaster_Index2009[0]), 0x2009},
+  { (subindex*)TestMaster_Index200A,sizeof(TestMaster_Index200A)/sizeof(TestMaster_Index200A[0]), 0x200A},
+}
+
+

+Definition at line 318 of file TestMaster.c. +

+Referenced by TestMaster_scanIndexOD(). +

+

+ +

+
+ + + + +
UNS16 TestMaster_ObjdictSize = sizeof(TestMaster_objdict)/sizeof(TestMaster_objdict[0])
+
+
+ +

+ +

+Definition at line 409 of file TestMaster.c. +

+

+


Generated on Fri Jun 8 08:51:50 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $TestMasterSlave_2TestMaster_8h.html 343,299 449,323 +rect $data_8h.html 500,299 564,323 +rect $win32_2applicfg_8h.html 769,251 857,275 +rect $def_8h.html 785,32 841,56 +rect $can_8h.html 637,203 696,227 +rect $objdictdef_8h.html 616,155 717,179 +rect $objacces_8h.html 620,299 713,323 +rect $sdo_8h.html 637,251 696,275 +rect $pdo_8h.html 637,56 696,80 +rect $states_8h.html 629,395 704,419 +rect $lifegrd_8h.html 628,347 705,371 +rect $sync_8h.html 633,443 700,467 +rect $nmtMaster_8h.html 613,491 720,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +468ae3d065ada4a2da0695bb95a7bed2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8c__incl.png Binary file doc/doxygen/html/TestMasterSlave_2TestMaster_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,49 @@ + + +CanFestival: examples/TestMasterSlave/TestMaster.h Source File + + + + +
+
+
+
+ +

TestMaster.h

Go to the documentation of this file.
00001 
+00002 /* File generated by gen_cfile.py. Should not be modified. */
+00003 
+00004 #include "data.h"
+00005 
+00006 /* Prototypes of function provided by object dictionnary */
+00007 UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void * value);
+00008 const indextable * TestMaster_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks);
+00009 
+00010 /* Master node data struct */
+00011 extern CO_Data TestMaster_Data;
+00012 
+00013 extern UNS8 MasterMap1;         /* Mapped at index 0x2000, subindex 0x00*/
+00014 extern UNS8 MasterMap2;         /* Mapped at index 0x2001, subindex 0x00*/
+00015 extern UNS8 MasterMap3;         /* Mapped at index 0x2002, subindex 0x00*/
+00016 extern UNS8 MasterMap4;         /* Mapped at index 0x2003, subindex 0x00*/
+00017 extern UNS8 MasterMap5;         /* Mapped at index 0x2004, subindex 0x00*/
+00018 extern UNS8 MasterMap6;         /* Mapped at index 0x2005, subindex 0x00*/
+00019 extern UNS8 MasterMap7;         /* Mapped at index 0x2006, subindex 0x00*/
+00020 extern UNS8 MasterMap8;         /* Mapped at index 0x2007, subindex 0x00*/
+00021 extern UNS8 MasterMap9;         /* Mapped at index 0x2008, subindex 0x00*/
+00022 extern UNS32 MasterMap10;               /* Mapped at index 0x2009, subindex 0x00*/
+00023 extern UNS16 MasterMap11;               /* Mapped at index 0x200A, subindex 0x00*/
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,388 @@ + + +CanFestival: examples/TestMasterSlave/TestMaster.h File Reference + + + + +
+
+
+
+ +

TestMaster.h File Reference

#include "data.h"
+ +

+Include dependency graph for TestMaster.h:

+ + + + + + + + + + + + + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void *value)
const indextableTestMaster_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

Variables

CO_Data TestMaster_Data
UNS8 MasterMap1
UNS8 MasterMap2
UNS8 MasterMap3
UNS8 MasterMap4
UNS8 MasterMap5
UNS8 MasterMap6
UNS8 MasterMap7
UNS8 MasterMap8
UNS8 MasterMap9
UNS32 MasterMap10
UNS16 MasterMap11
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const indextable* TestMaster_scanIndexOD (UNS16  wIndex,
UNS32 *  errorCode,
ODCallback_t **  callbacks 
)
+
+
+ +

+ +

+Definition at line 347 of file TestMaster.c. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS32 TestMaster_valueRangeTest (UNS8  typeValue,
void *  value 
)
+
+
+ +

+ +

+Definition at line 25 of file TestMaster.c. +

+

+


Variable Documentation

+ +
+
+ + + + +
UNS8 MasterMap1
+
+
+ +

+ +

+Definition at line 9 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
UNS32 MasterMap10
+
+
+ +

+ +

+Definition at line 18 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS16 MasterMap11
+
+
+ +

+ +

+Definition at line 19 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap2
+
+
+ +

+ +

+Definition at line 10 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap3
+
+
+ +

+ +

+Definition at line 11 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap4
+
+
+ +

+ +

+Definition at line 12 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap5
+
+
+ +

+ +

+Definition at line 13 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap6
+
+
+ +

+ +

+Definition at line 14 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap7
+
+
+ +

+ +

+Definition at line 15 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap8
+
+
+ +

+ +

+Definition at line 16 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
UNS8 MasterMap9
+
+
+ +

+ +

+Definition at line 17 of file TestMaster.c. +

+Referenced by TestMaster_post_sync(). +

+

+ +

+
+ + + + +
CO_Data TestMaster_Data
+
+
+ +

+ +

+Definition at line 411 of file TestMaster.c. +

+

+


Generated on Fri Jun 8 08:51:51 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $Master_8h.html 357,54 619,78 +rect $TestMasterSlave_2TestMaster_8c.html 344,102 632,126 +rect $Master_8c.html 713,6 975,30 +rect $Slave_8c.html 717,54 971,78 +rect $TestMasterSlave_8c.html 681,102 1007,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +55b1a4e4e32aeabfeb29d7ae42b54470 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h__dep__incl.png Binary file doc/doxygen/html/TestMasterSlave_2TestMaster_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $data_8h.html 345,301 409,325 +rect $win32_2applicfg_8h.html 736,276 824,300 +rect $def_8h.html 620,13 676,37 +rect $can_8h.html 619,251 677,275 +rect $objdictdef_8h.html 461,152 563,176 +rect $objacces_8h.html 465,349 559,373 +rect $sdo_8h.html 483,397 541,421 +rect $pdo_8h.html 483,56 541,80 +rect $states_8h.html 475,104 549,128 +rect $lifegrd_8h.html 473,301 551,325 +rect $sync_8h.html 479,445 545,469 +rect $nmtMaster_8h.html 459,493 565,517 +rect $config_8h.html 743,13 817,37 +rect $timer_8h.html 613,400 683,424 +rect $win32_2timerscfg_8h.html 731,368 829,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2TestMaster_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b7c469f78ab743a4fc2e92bed270c23a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2TestMaster_8h__incl.png Binary file doc/doxygen/html/TestMasterSlave_2TestMaster_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1286 @@ + + +CanFestival: examples/TestMasterSlave/getopt.c Source File + + + + +
+
+
+
+ +

getopt.c

Go to the documentation of this file.
00001 /* from http://www.pwilson.net/getopt.html */
+00002 
+00003 /* Getopt for GNU.
+00004    NOTE: getopt is now part of the C library, so if you don't know what
+00005    "Keep this file name-space clean" means, talk to drepper@gnu.org
+00006    before changing it!
+00007    Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001
+00008         Free Software Foundation, Inc.
+00009    This file is part of the GNU C Library.
+00010 
+00011    The GNU C Library is free software; you can redistribute it and/or
+00012    modify it under the terms of the GNU Lesser General Public
+00013    License as published by the Free Software Foundation; either
+00014    version 2.1 of the License, or (at your option) any later version.
+00015 
+00016    The GNU C Library is distributed in the hope that it will be useful,
+00017    but WITHOUT ANY WARRANTY; without even the implied warranty of
+00018    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00019    Lesser General Public License for more details.
+00020 
+00021    You should have received a copy of the GNU Lesser General Public
+00022    License along with the GNU C Library; if not, write to the Free
+00023    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+00024    02111-1307 USA.  */
+00025 
+00026 /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
+00027    Ditto for AIX 3.2 and <stdlib.h>.  */
+00028 #ifndef _NO_PROTO
+00029 # define _NO_PROTO
+00030 #endif
+00031 
+00032 #ifdef HAVE_CONFIG_H
+00033 # include <config.h>
+00034 #endif
+00035 
+00036 #if !defined __STDC__ || !__STDC__
+00037 /* This is a separate conditional since some stdc systems
+00038    reject `defined (const)'.  */
+00039 # ifndef const
+00040 #  define const
+00041 # endif
+00042 #endif
+00043 
+00044 #include <stdio.h>
+00045 
+00046 /* Comment out all this code if we are using the GNU C Library, and are not
+00047    actually compiling the library itself.  This code is part of the GNU C
+00048    Library, but also included in many other GNU distributions.  Compiling
+00049    and linking in this code is a waste when using the GNU C library
+00050    (especially if it is a shared library).  Rather than having every GNU
+00051    program understand `configure --with-gnu-libc' and omit the object files,
+00052    it is simpler to just do this in the source for each such file.  */
+00053 
+00054 #define GETOPT_INTERFACE_VERSION 2
+00055 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
+00056 # include <gnu-versions.h>
+00057 # if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
+00058 #  define ELIDE_CODE
+00059 # endif
+00060 #endif
+00061 
+00062 #ifndef ELIDE_CODE
+00063 
+00064 
+00065 /* This needs to come after some library #include
+00066    to get __GNU_LIBRARY__ defined.  */
+00067 #ifdef  __GNU_LIBRARY__
+00068 /* Don't include stdlib.h for non-GNU C libraries because some of them
+00069    contain conflicting prototypes for getopt.  */
+00070 # include <stdlib.h>
+00071 # include <unistd.h>
+00072 #endif  /* GNU C library.  */
+00073 
+00074 #ifdef VMS
+00075 # include <unixlib.h>
+00076 # if HAVE_STRING_H - 0
+00077 #  include <string.h>
+00078 # endif
+00079 #endif
+00080 
+00081 #ifndef _
+00082 /* This is for other GNU distributions with internationalized messages.  */
+00083 # if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+00084 #  include <libintl.h>
+00085 #  ifndef _
+00086 #   define _(msgid)     gettext (msgid)
+00087 #  endif
+00088 # else
+00089 #  define _(msgid)      (msgid)
+00090 # endif
+00091 # if defined _LIBC && defined USE_IN_LIBIO
+00092 #  include <wchar.h>
+00093 # endif
+00094 #endif
+00095 
+00096 /* This version of `getopt' appears to the caller like standard Unix `getopt'
+00097    but it behaves differently for the user, since it allows the user
+00098    to intersperse the options with the other arguments.
+00099 
+00100    As `getopt' works, it permutes the elements of ARGV so that,
+00101    when it is done, all the options precede everything else.  Thus
+00102    all application programs are extended to handle flexible argument order.
+00103 
+00104    Setting the environment variable POSIXLY_CORRECT disables permutation.
+00105    Then the behavior is completely standard.
+00106 
+00107    GNU application programs can use a third alternative mode in which
+00108    they can distinguish the relative order of options and other arguments.  */
+00109 
+00110 #include "getopt.h"
+00111 
+00112 /* For communication from `getopt' to the caller.
+00113    When `getopt' finds an option that takes an argument,
+00114    the argument value is returned here.
+00115    Also, when `ordering' is RETURN_IN_ORDER,
+00116    each non-option ARGV-element is returned here.  */
+00117 
+00118 char *optarg;
+00119 
+00120 /* Index in ARGV of the next element to be scanned.
+00121    This is used for communication to and from the caller
+00122    and for communication between successive calls to `getopt'.
+00123 
+00124    On entry to `getopt', zero means this is the first call; initialize.
+00125 
+00126    When `getopt' returns -1, this is the index of the first of the
+00127    non-option elements that the caller should itself scan.
+00128 
+00129    Otherwise, `optind' communicates from one call to the next
+00130    how much of ARGV has been scanned so far.  */
+00131 
+00132 /* 1003.2 says this must be 1 before any call.  */
+00133 int optind = 1;
+00134 
+00135 /* Formerly, initialization of getopt depended on optind==0, which
+00136    causes problems with re-calling getopt as programs generally don't
+00137    know that. */
+00138 
+00139 int __getopt_initialized;
+00140 
+00141 /* The next char to be scanned in the option-element
+00142    in which the last option character we returned was found.
+00143    This allows us to pick up the scan where we left off.
+00144 
+00145    If this is zero, or a null string, it means resume the scan
+00146    by advancing to the next ARGV-element.  */
+00147 
+00148 static char *nextchar;
+00149 
+00150 /* Callers store zero here to inhibit the error message
+00151    for unrecognized options.  */
+00152 
+00153 int opterr = 1;
+00154 
+00155 /* Set to an option character which was unrecognized.
+00156    This must be initialized on some systems to avoid linking in the
+00157    system's own getopt implementation.  */
+00158 
+00159 int optopt = '?';
+00160 
+00161 /* Describe how to deal with options that follow non-option ARGV-elements.
+00162 
+00163    If the caller did not specify anything,
+00164    the default is REQUIRE_ORDER if the environment variable
+00165    POSIXLY_CORRECT is defined, PERMUTE otherwise.
+00166 
+00167    REQUIRE_ORDER means don't recognize them as options;
+00168    stop option processing when the first non-option is seen.
+00169    This is what Unix does.
+00170    This mode of operation is selected by either setting the environment
+00171    variable POSIXLY_CORRECT, or using `+' as the first character
+00172    of the list of option characters.
+00173 
+00174    PERMUTE is the default.  We permute the contents of ARGV as we scan,
+00175    so that eventually all the non-options are at the end.  This allows options
+00176    to be given in any order, even with programs that were not written to
+00177    expect this.
+00178 
+00179    RETURN_IN_ORDER is an option available to programs that were written
+00180    to expect options and other ARGV-elements in any order and that care about
+00181    the ordering of the two.  We describe each non-option ARGV-element
+00182    as if it were the argument of an option with character code 1.
+00183    Using `-' as the first character of the list of option characters
+00184    selects this mode of operation.
+00185 
+00186    The special argument `--' forces an end of option-scanning regardless
+00187    of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
+00188    `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
+00189 
+00190 static enum
+00191 {
+00192   REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+00193 } ordering;
+00194 
+00195 /* Value of POSIXLY_CORRECT environment variable.  */
+00196 static char *posixly_correct;
+00197 
+00198 #ifdef  __GNU_LIBRARY__
+00199 /* We want to avoid inclusion of string.h with non-GNU libraries
+00200    because there are many ways it can cause trouble.
+00201    On some systems, it contains special magic macros that don't work
+00202    in GCC.  */
+00203 # include <string.h>
+00204 # define my_index       strchr
+00205 #else
+00206 
+00207 # if HAVE_STRING_H || WIN32 /* Pete Wilson mod 7/28/02 */
+00208 #  include <string.h>
+00209 # else
+00210 #  include <strings.h>
+00211 # endif
+00212 
+00213 /* Avoid depending on library functions or files
+00214    whose names are inconsistent.  */
+00215 
+00216 #ifndef getenv
+00217 extern char *getenv ();
+00218 #endif
+00219 
+00220 static char *
+00221 my_index (str, chr)
+00222      const char *str;
+00223      int chr;
+00224 {
+00225   while (*str)
+00226     {
+00227       if (*str == chr)
+00228         return (char *) str;
+00229       str++;
+00230     }
+00231   return 0;
+00232 }
+00233 
+00234 /* If using GCC, we can safely declare strlen this way.
+00235    If not using GCC, it is ok not to declare it.  */
+00236 #ifdef __GNUC__
+00237 /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
+00238    That was relevant to code that was here before.  */
+00239 # if (!defined __STDC__ || !__STDC__) && !defined strlen
+00240 /* gcc with -traditional declares the built-in strlen to return int,
+00241    and has done so at least since version 2.4.5. -- rms.  */
+00242 extern int strlen (const char *);
+00243 # endif /* not __STDC__ */
+00244 #endif /* __GNUC__ */
+00245 
+00246 #endif /* not __GNU_LIBRARY__ */
+00247 
+00248 /* Handle permutation of arguments.  */
+00249 
+00250 /* Describe the part of ARGV that contains non-options that have
+00251    been skipped.  `first_nonopt' is the index in ARGV of the first of them;
+00252    `last_nonopt' is the index after the last of them.  */
+00253 
+00254 static int first_nonopt;
+00255 static int last_nonopt;
+00256 
+00257 #ifdef _LIBC
+00258 /* Stored original parameters.
+00259    XXX This is no good solution.  We should rather copy the args so
+00260    that we can compare them later.  But we must not use malloc(3).  */
+00261 extern int __libc_argc;
+00262 extern char **__libc_argv;
+00263 
+00264 /* Bash 2.0 gives us an environment variable containing flags
+00265    indicating ARGV elements that should not be considered arguments.  */
+00266 
+00267 # ifdef USE_NONOPTION_FLAGS
+00268 /* Defined in getopt_init.c  */
+00269 extern char *__getopt_nonoption_flags;
+00270 
+00271 static int nonoption_flags_max_len;
+00272 static int nonoption_flags_len;
+00273 # endif
+00274 
+00275 # ifdef USE_NONOPTION_FLAGS
+00276 #  define SWAP_FLAGS(ch1, ch2) \
+00277   if (nonoption_flags_len > 0)                                                \
+00278     {                                                                         \
+00279       char __tmp = __getopt_nonoption_flags[ch1];                             \
+00280       __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];          \
+00281       __getopt_nonoption_flags[ch2] = __tmp;                                  \
+00282     }
+00283 # else
+00284 #  define SWAP_FLAGS(ch1, ch2)
+00285 # endif
+00286 #else   /* !_LIBC */
+00287 # define SWAP_FLAGS(ch1, ch2)
+00288 #endif  /* _LIBC */
+00289 
+00290 /* Exchange two adjacent subsequences of ARGV.
+00291    One subsequence is elements [first_nonopt,last_nonopt)
+00292    which contains all the non-options that have been skipped so far.
+00293    The other is elements [last_nonopt,optind), which contains all
+00294    the options processed since those non-options were skipped.
+00295 
+00296    `first_nonopt' and `last_nonopt' are relocated so that they describe
+00297    the new indices of the non-options in ARGV after they are moved.  */
+00298 
+00299 #if defined __STDC__ && __STDC__
+00300 static void exchange (char **);
+00301 #endif
+00302 
+00303 static void
+00304 exchange (argv)
+00305      char **argv;
+00306 {
+00307   int bottom = first_nonopt;
+00308   int middle = last_nonopt;
+00309   int top = optind;
+00310   char *tem;
+00311 
+00312   /* Exchange the shorter segment with the far end of the longer segment.
+00313      That puts the shorter segment into the right place.
+00314      It leaves the longer segment in the right place overall,
+00315      but it consists of two parts that need to be swapped next.  */
+00316 
+00317 #if defined _LIBC && defined USE_NONOPTION_FLAGS
+00318   /* First make sure the handling of the `__getopt_nonoption_flags'
+00319      string can work normally.  Our top argument must be in the range
+00320      of the string.  */
+00321   if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
+00322     {
+00323       /* We must extend the array.  The user plays games with us and
+00324          presents new arguments.  */
+00325       char *new_str = malloc (top + 1);
+00326       if (new_str == NULL)
+00327         nonoption_flags_len = nonoption_flags_max_len = 0;
+00328       else
+00329         {
+00330           memset (__mempcpy (new_str, __getopt_nonoption_flags,
+00331                              nonoption_flags_max_len),
+00332                   '\0', top + 1 - nonoption_flags_max_len);
+00333           nonoption_flags_max_len = top + 1;
+00334           __getopt_nonoption_flags = new_str;
+00335         }
+00336     }
+00337 #endif
+00338 
+00339   while (top > middle && middle > bottom)
+00340     {
+00341       if (top - middle > middle - bottom)
+00342         {
+00343           /* Bottom segment is the short one.  */
+00344           int len = middle - bottom;
+00345           register int i;
+00346 
+00347           /* Swap it with the top part of the top segment.  */
+00348           for (i = 0; i < len; i++)
+00349             {
+00350               tem = argv[bottom + i];
+00351               argv[bottom + i] = argv[top - (middle - bottom) + i];
+00352               argv[top - (middle - bottom) + i] = tem;
+00353               SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
+00354             }
+00355           /* Exclude the moved bottom segment from further swapping.  */
+00356           top -= len;
+00357         }
+00358       else
+00359         {
+00360           /* Top segment is the short one.  */
+00361           int len = top - middle;
+00362           register int i;
+00363 
+00364           /* Swap it with the bottom part of the bottom segment.  */
+00365           for (i = 0; i < len; i++)
+00366             {
+00367               tem = argv[bottom + i];
+00368               argv[bottom + i] = argv[middle + i];
+00369               argv[middle + i] = tem;
+00370               SWAP_FLAGS (bottom + i, middle + i);
+00371             }
+00372           /* Exclude the moved top segment from further swapping.  */
+00373           bottom += len;
+00374         }
+00375     }
+00376 
+00377   /* Update records for the slots the non-options now occupy.  */
+00378 
+00379   first_nonopt += (optind - last_nonopt);
+00380   last_nonopt = optind;
+00381 }
+00382 
+00383 /* Initialize the internal data when the first call is made.  */
+00384 
+00385 #if defined __STDC__ && __STDC__
+00386 static const char *_getopt_initialize (int, char *const *, const char *);
+00387 #endif
+00388 static const char *
+00389 _getopt_initialize (argc, argv, optstring)
+00390      int argc;
+00391      char *const *argv;
+00392      const char *optstring;
+00393 {
+00394   /* Start processing options with ARGV-element 1 (since ARGV-element 0
+00395      is the program name); the sequence of previously skipped
+00396      non-option ARGV-elements is empty.  */
+00397 
+00398   first_nonopt = last_nonopt = optind;
+00399 
+00400   nextchar = NULL;
+00401 
+00402   posixly_correct = getenv ("POSIXLY_CORRECT");
+00403 
+00404   /* Determine how to handle the ordering of options and nonoptions.  */
+00405 
+00406   if (optstring[0] == '-')
+00407     {
+00408       ordering = RETURN_IN_ORDER;
+00409       ++optstring;
+00410     }
+00411   else if (optstring[0] == '+')
+00412     {
+00413       ordering = REQUIRE_ORDER;
+00414       ++optstring;
+00415     }
+00416   else if (posixly_correct != NULL)
+00417     ordering = REQUIRE_ORDER;
+00418   else
+00419     ordering = PERMUTE;
+00420 
+00421 #if defined _LIBC && defined USE_NONOPTION_FLAGS
+00422   if (posixly_correct == NULL
+00423       && argc == __libc_argc && argv == __libc_argv)
+00424     {
+00425       if (nonoption_flags_max_len == 0)
+00426         {
+00427           if (__getopt_nonoption_flags == NULL
+00428               || __getopt_nonoption_flags[0] == '\0')
+00429             nonoption_flags_max_len = -1;
+00430           else
+00431             {
+00432               const char *orig_str = __getopt_nonoption_flags;
+00433               int len = nonoption_flags_max_len = strlen (orig_str);
+00434               if (nonoption_flags_max_len < argc)
+00435                 nonoption_flags_max_len = argc;
+00436               __getopt_nonoption_flags =
+00437                 (char *) malloc (nonoption_flags_max_len);
+00438               if (__getopt_nonoption_flags == NULL)
+00439                 nonoption_flags_max_len = -1;
+00440               else
+00441                 memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+00442                         '\0', nonoption_flags_max_len - len);
+00443             }
+00444         }
+00445       nonoption_flags_len = nonoption_flags_max_len;
+00446     }
+00447   else
+00448     nonoption_flags_len = 0;
+00449 #endif
+00450 
+00451   return optstring;
+00452 }
+00453 
+00454 /* Scan elements of ARGV (whose length is ARGC) for option characters
+00455    given in OPTSTRING.
+00456 
+00457    If an element of ARGV starts with '-', and is not exactly "-" or "--",
+00458    then it is an option element.  The characters of this element
+00459    (aside from the initial '-') are option characters.  If `getopt'
+00460    is called repeatedly, it returns successively each of the option characters
+00461    from each of the option elements.
+00462 
+00463    If `getopt' finds another option character, it returns that character,
+00464    updating `optind' and `nextchar' so that the next call to `getopt' can
+00465    resume the scan with the following option character or ARGV-element.
+00466 
+00467    If there are no more option characters, `getopt' returns -1.
+00468    Then `optind' is the index in ARGV of the first ARGV-element
+00469    that is not an option.  (The ARGV-elements have been permuted
+00470    so that those that are not options now come last.)
+00471 
+00472    OPTSTRING is a string containing the legitimate option characters.
+00473    If an option character is seen that is not listed in OPTSTRING,
+00474    return '?' after printing an error message.  If you set `opterr' to
+00475    zero, the error message is suppressed but we still return '?'.
+00476 
+00477    If a char in OPTSTRING is followed by a colon, that means it wants an arg,
+00478    so the following text in the same ARGV-element, or the text of the following
+00479    ARGV-element, is returned in `optarg'.  Two colons mean an option that
+00480    wants an optional arg; if there is text in the current ARGV-element,
+00481    it is returned in `optarg', otherwise `optarg' is set to zero.
+00482 
+00483    If OPTSTRING starts with `-' or `+', it requests different methods of
+00484    handling the non-option ARGV-elements.
+00485    See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
+00486 
+00487    Long-named options begin with `--' instead of `-'.
+00488    Their names may be abbreviated as long as the abbreviation is unique
+00489    or is an exact match for some defined option.  If they have an
+00490    argument, it follows the option name in the same ARGV-element, separated
+00491    from the option name by a `=', or else the in next ARGV-element.
+00492    When `getopt' finds a long-named option, it returns 0 if that option's
+00493    `flag' field is nonzero, the value of the option's `val' field
+00494    if the `flag' field is zero.
+00495 
+00496    The elements of ARGV aren't really const, because we permute them.
+00497    But we pretend they're const in the prototype to be compatible
+00498    with other systems.
+00499 
+00500    LONGOPTS is a vector of `struct option' terminated by an
+00501    element containing a name which is zero.
+00502 
+00503    LONGIND returns the index in LONGOPT of the long-named option found.
+00504    It is only valid when a long-named option has been found by the most
+00505    recent call.
+00506 
+00507    If LONG_ONLY is nonzero, '-' as well as '--' can introduce
+00508    long-named options.  */
+00509 
+00510 int
+00511 _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
+00512      int argc;
+00513      char *const *argv;
+00514      const char *optstring;
+00515      const struct option *longopts;
+00516      int *longind;
+00517      int long_only;
+00518 {
+00519   int print_errors = opterr;
+00520   if (optstring[0] == ':')
+00521     print_errors = 0;
+00522 
+00523   if (argc < 1)
+00524     return -1;
+00525 
+00526   optarg = NULL;
+00527 
+00528   if (optind == 0 || !__getopt_initialized)
+00529     {
+00530       if (optind == 0)
+00531         optind = 1;     /* Don't scan ARGV[0], the program name.  */
+00532       optstring = _getopt_initialize (argc, argv, optstring);
+00533       __getopt_initialized = 1;
+00534     }
+00535 
+00536   /* Test whether ARGV[optind] points to a non-option argument.
+00537      Either it does not have option syntax, or there is an environment flag
+00538      from the shell indicating it is not an option.  The later information
+00539      is only used when the used in the GNU libc.  */
+00540 #if defined _LIBC && defined USE_NONOPTION_FLAGS
+00541 # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'       \
+00542                       || (optind < nonoption_flags_len                        \
+00543                           && __getopt_nonoption_flags[optind] == '1'))
+00544 #else
+00545 # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
+00546 #endif
+00547 
+00548   if (nextchar == NULL || *nextchar == '\0')
+00549     {
+00550       /* Advance to the next ARGV-element.  */
+00551 
+00552       /* Give FIRST_NONOPT and LAST_NONOPT rational values if OPTIND has been
+00553          moved back by the user (who may also have changed the arguments).  */
+00554       if (last_nonopt > optind)
+00555         last_nonopt = optind;
+00556       if (first_nonopt > optind)
+00557         first_nonopt = optind;
+00558 
+00559       if (ordering == PERMUTE)
+00560         {
+00561           /* If we have just processed some options following some non-options,
+00562              exchange them so that the options come first.  */
+00563 
+00564           if (first_nonopt != last_nonopt && last_nonopt != optind)
+00565             exchange ((char **) argv);
+00566           else if (last_nonopt != optind)
+00567             first_nonopt = optind;
+00568 
+00569           /* Skip any additional non-options
+00570              and extend the range of non-options previously skipped.  */
+00571 
+00572           while (optind < argc && NONOPTION_P)
+00573             optind++;
+00574           last_nonopt = optind;
+00575         }
+00576 
+00577       /* The special ARGV-element `--' means premature end of options.
+00578          Skip it like a null option,
+00579          then exchange with previous non-options as if it were an option,
+00580          then skip everything else like a non-option.  */
+00581 
+00582       if (optind != argc && !strcmp (argv[optind], "--"))
+00583         {
+00584           optind++;
+00585 
+00586           if (first_nonopt != last_nonopt && last_nonopt != optind)
+00587             exchange ((char **) argv);
+00588           else if (first_nonopt == last_nonopt)
+00589             first_nonopt = optind;
+00590           last_nonopt = argc;
+00591 
+00592           optind = argc;
+00593         }
+00594 
+00595       /* If we have done all the ARGV-elements, stop the scan
+00596          and back over any non-options that we skipped and permuted.  */
+00597 
+00598       if (optind == argc)
+00599         {
+00600           /* Set the next-arg-index to point at the non-options
+00601              that we previously skipped, so the caller will digest them.  */
+00602           if (first_nonopt != last_nonopt)
+00603             optind = first_nonopt;
+00604           return -1;
+00605         }
+00606 
+00607       /* If we have come to a non-option and did not permute it,
+00608          either stop the scan or describe it to the caller and pass it by.  */
+00609 
+00610       if (NONOPTION_P)
+00611         {
+00612           if (ordering == REQUIRE_ORDER)
+00613             return -1;
+00614           optarg = argv[optind++];
+00615           return 1;
+00616         }
+00617 
+00618       /* We have found another option-ARGV-element.
+00619          Skip the initial punctuation.  */
+00620 
+00621       nextchar = (argv[optind] + 1
+00622                   + (longopts != NULL && argv[optind][1] == '-'));
+00623     }
+00624 
+00625   /* Decode the current option-ARGV-element.  */
+00626 
+00627   /* Check whether the ARGV-element is a long option.
+00628 
+00629      If long_only and the ARGV-element has the form "-f", where f is
+00630      a valid short option, don't consider it an abbreviated form of
+00631      a long option that starts with f.  Otherwise there would be no
+00632      way to give the -f short option.
+00633 
+00634      On the other hand, if there's a long option "fubar" and
+00635      the ARGV-element is "-fu", do consider that an abbreviation of
+00636      the long option, just like "--fu", and not "-f" with arg "u".
+00637 
+00638      This distinction seems to be the most useful approach.  */
+00639 
+00640   if (longopts != NULL
+00641       && (argv[optind][1] == '-'
+00642           || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
+00643     {
+00644       char *nameend;
+00645       const struct option *p;
+00646       const struct option *pfound = NULL;
+00647       int exact = 0;
+00648       int ambig = 0;
+00649       int indfound = -1;
+00650       int option_index;
+00651 
+00652       for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
+00653         /* Do nothing.  */ ;
+00654 
+00655       /* Test all long options for either exact match
+00656          or abbreviated matches.  */
+00657       for (p = longopts, option_index = 0; p->name; p++, option_index++)
+00658         if (!strncmp (p->name, nextchar, nameend - nextchar))
+00659           {
+00660             if ((unsigned int) (nameend - nextchar)
+00661                 == (unsigned int) strlen (p->name))
+00662               {
+00663                 /* Exact match found.  */
+00664                 pfound = p;
+00665                 indfound = option_index;
+00666                 exact = 1;
+00667                 break;
+00668               }
+00669             else if (pfound == NULL)
+00670               {
+00671                 /* First nonexact match found.  */
+00672                 pfound = p;
+00673                 indfound = option_index;
+00674               }
+00675             else if (long_only
+00676                      || pfound->has_arg != p->has_arg
+00677                      || pfound->flag != p->flag
+00678                      || pfound->val != p->val)
+00679               /* Second or later nonexact match found.  */
+00680               ambig = 1;
+00681           }
+00682 
+00683       if (ambig && !exact)
+00684         {
+00685           if (print_errors)
+00686             {
+00687 #if defined _LIBC && defined USE_IN_LIBIO
+00688               char *buf;
+00689 
+00690               __asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
+00691                           argv[0], argv[optind]);
+00692 
+00693               if (_IO_fwide (stderr, 0) > 0)
+00694                 __fwprintf (stderr, L"%s", buf);
+00695               else
+00696                 fputs (buf, stderr);
+00697 
+00698               free (buf);
+00699 #else
+00700               fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+00701                        argv[0], argv[optind]);
+00702 #endif
+00703             }
+00704           nextchar += strlen (nextchar);
+00705           optind++;
+00706           optopt = 0;
+00707           return '?';
+00708         }
+00709 
+00710       if (pfound != NULL)
+00711         {
+00712           option_index = indfound;
+00713           optind++;
+00714           if (*nameend)
+00715             {
+00716               /* Don't test has_arg with >, because some C compilers don't
+00717                  allow it to be used on enums.  */
+00718               if (pfound->has_arg)
+00719                 optarg = nameend + 1;
+00720               else
+00721                 {
+00722                   if (print_errors)
+00723                     {
+00724 #if defined _LIBC && defined USE_IN_LIBIO
+00725                       char *buf;
+00726 #endif
+00727 
+00728                       if (argv[optind - 1][1] == '-')
+00729                         {
+00730                           /* --option */
+00731 #if defined _LIBC && defined USE_IN_LIBIO
+00732                           __asprintf (&buf, _("\
+00733 %s: option `--%s' doesn't allow an argument\n"),
+00734                                       argv[0], pfound->name);
+00735 #else
+00736                           fprintf (stderr, _("\
+00737 %s: option `--%s' doesn't allow an argument\n"),
+00738                                    argv[0], pfound->name);
+00739 #endif
+00740                         }
+00741                       else
+00742                         {
+00743                           /* +option or -option */
+00744 #if defined _LIBC && defined USE_IN_LIBIO
+00745                           __asprintf (&buf, _("\
+00746 %s: option `%c%s' doesn't allow an argument\n"),
+00747                                       argv[0], argv[optind - 1][0],
+00748                                       pfound->name);
+00749 #else
+00750                           fprintf (stderr, _("\
+00751 %s: option `%c%s' doesn't allow an argument\n"),
+00752                                    argv[0], argv[optind - 1][0], pfound->name);
+00753 #endif
+00754                         }
+00755 
+00756 #if defined _LIBC && defined USE_IN_LIBIO
+00757                       if (_IO_fwide (stderr, 0) > 0)
+00758                         __fwprintf (stderr, L"%s", buf);
+00759                       else
+00760                         fputs (buf, stderr);
+00761 
+00762                       free (buf);
+00763 #endif
+00764                     }
+00765 
+00766                   nextchar += strlen (nextchar);
+00767 
+00768                   optopt = pfound->val;
+00769                   return '?';
+00770                 }
+00771             }
+00772           else if (pfound->has_arg == 1)
+00773             {
+00774               if (optind < argc)
+00775                 optarg = argv[optind++];
+00776               else
+00777                 {
+00778                   if (print_errors)
+00779                     {
+00780 #if defined _LIBC && defined USE_IN_LIBIO
+00781                       char *buf;
+00782 
+00783                       __asprintf (&buf,
+00784                                   _("%s: option `%s' requires an argument\n"),
+00785                                   argv[0], argv[optind - 1]);
+00786 
+00787                       if (_IO_fwide (stderr, 0) > 0)
+00788                         __fwprintf (stderr, L"%s", buf);
+00789                       else
+00790                         fputs (buf, stderr);
+00791 
+00792                       free (buf);
+00793 #else
+00794                       fprintf (stderr,
+00795                                _("%s: option `%s' requires an argument\n"),
+00796                                argv[0], argv[optind - 1]);
+00797 #endif
+00798                     }
+00799                   nextchar += strlen (nextchar);
+00800                   optopt = pfound->val;
+00801                   return optstring[0] == ':' ? ':' : '?';
+00802                 }
+00803             }
+00804           nextchar += strlen (nextchar);
+00805           if (longind != NULL)
+00806             *longind = option_index;
+00807           if (pfound->flag)
+00808             {
+00809               *(pfound->flag) = pfound->val;
+00810               return 0;
+00811             }
+00812           return pfound->val;
+00813         }
+00814 
+00815       /* Can't find it as a long option.  If this is not getopt_long_only,
+00816          or the option starts with '--' or is not a valid short
+00817          option, then it's an error.
+00818          Otherwise interpret it as a short option.  */
+00819       if (!long_only || argv[optind][1] == '-'
+00820           || my_index (optstring, *nextchar) == NULL)
+00821         {
+00822           if (print_errors)
+00823             {
+00824 #if defined _LIBC && defined USE_IN_LIBIO
+00825               char *buf;
+00826 #endif
+00827 
+00828               if (argv[optind][1] == '-')
+00829                 {
+00830                   /* --option */
+00831 #if defined _LIBC && defined USE_IN_LIBIO
+00832                   __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
+00833                               argv[0], nextchar);
+00834 #else
+00835                   fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+00836                            argv[0], nextchar);
+00837 #endif
+00838                 }
+00839               else
+00840                 {
+00841                   /* +option or -option */
+00842 #if defined _LIBC && defined USE_IN_LIBIO
+00843                   __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
+00844                               argv[0], argv[optind][0], nextchar);
+00845 #else
+00846                   fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+00847                            argv[0], argv[optind][0], nextchar);
+00848 #endif
+00849                 }
+00850 
+00851 #if defined _LIBC && defined USE_IN_LIBIO
+00852               if (_IO_fwide (stderr, 0) > 0)
+00853                 __fwprintf (stderr, L"%s", buf);
+00854               else
+00855                 fputs (buf, stderr);
+00856 
+00857               free (buf);
+00858 #endif
+00859             }
+00860           nextchar = (char *) "";
+00861           optind++;
+00862           optopt = 0;
+00863           return '?';
+00864         }
+00865     }
+00866 
+00867   /* Look at and handle the next short option-character.  */
+00868 
+00869   {
+00870     char c = *nextchar++;
+00871     char *temp = my_index (optstring, c);
+00872 
+00873     /* Increment `optind' when we start to process its last character.  */
+00874     if (*nextchar == '\0')
+00875       ++optind;
+00876 
+00877     if (temp == NULL || c == ':')
+00878       {
+00879         if (print_errors)
+00880           {
+00881 #if defined _LIBC && defined USE_IN_LIBIO
+00882               char *buf;
+00883 #endif
+00884 
+00885             if (posixly_correct)
+00886               {
+00887                 /* 1003.2 specifies the format of this message.  */
+00888 #if defined _LIBC && defined USE_IN_LIBIO
+00889                 __asprintf (&buf, _("%s: illegal option -- %c\n"),
+00890                             argv[0], c);
+00891 #else
+00892                 fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
+00893 #endif
+00894               }
+00895             else
+00896               {
+00897 #if defined _LIBC && defined USE_IN_LIBIO
+00898                 __asprintf (&buf, _("%s: invalid option -- %c\n"),
+00899                             argv[0], c);
+00900 #else
+00901                 fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
+00902 #endif
+00903               }
+00904 
+00905 #if defined _LIBC && defined USE_IN_LIBIO
+00906             if (_IO_fwide (stderr, 0) > 0)
+00907               __fwprintf (stderr, L"%s", buf);
+00908             else
+00909               fputs (buf, stderr);
+00910 
+00911             free (buf);
+00912 #endif
+00913           }
+00914         optopt = c;
+00915         return '?';
+00916       }
+00917     /* Convenience. Treat POSIX -W foo same as long option --foo */
+00918     if (temp[0] == 'W' && temp[1] == ';')
+00919       {
+00920         char *nameend;
+00921         const struct option *p;
+00922         const struct option *pfound = NULL;
+00923         int exact = 0;
+00924         int ambig = 0;
+00925         int indfound = 0;
+00926         int option_index;
+00927 
+00928         /* This is an option that requires an argument.  */
+00929         if (*nextchar != '\0')
+00930           {
+00931             optarg = nextchar;
+00932             /* If we end this ARGV-element by taking the rest as an arg,
+00933                we must advance to the next element now.  */
+00934             optind++;
+00935           }
+00936         else if (optind == argc)
+00937           {
+00938             if (print_errors)
+00939               {
+00940                 /* 1003.2 specifies the format of this message.  */
+00941 #if defined _LIBC && defined USE_IN_LIBIO
+00942                 char *buf;
+00943 
+00944                 __asprintf (&buf, _("%s: option requires an argument -- %c\n"),
+00945                             argv[0], c);
+00946 
+00947                 if (_IO_fwide (stderr, 0) > 0)
+00948                   __fwprintf (stderr, L"%s", buf);
+00949                 else
+00950                   fputs (buf, stderr);
+00951 
+00952                 free (buf);
+00953 #else
+00954                 fprintf (stderr, _("%s: option requires an argument -- %c\n"),
+00955                          argv[0], c);
+00956 #endif
+00957               }
+00958             optopt = c;
+00959             if (optstring[0] == ':')
+00960               c = ':';
+00961             else
+00962               c = '?';
+00963             return c;
+00964           }
+00965         else
+00966           /* We already incremented `optind' once;
+00967              increment it again when taking next ARGV-elt as argument.  */
+00968           optarg = argv[optind++];
+00969 
+00970         /* optarg is now the argument, see if it's in the
+00971            table of longopts.  */
+00972 
+00973         for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
+00974           /* Do nothing.  */ ;
+00975 
+00976         /* Test all long options for either exact match
+00977            or abbreviated matches.  */
+00978         for (p = longopts, option_index = 0; p->name; p++, option_index++)
+00979           if (!strncmp (p->name, nextchar, nameend - nextchar))
+00980             {
+00981               if ((unsigned int) (nameend - nextchar) == strlen (p->name))
+00982                 {
+00983                   /* Exact match found.  */
+00984                   pfound = p;
+00985                   indfound = option_index;
+00986                   exact = 1;
+00987                   break;
+00988                 }
+00989               else if (pfound == NULL)
+00990                 {
+00991                   /* First nonexact match found.  */
+00992                   pfound = p;
+00993                   indfound = option_index;
+00994                 }
+00995               else
+00996                 /* Second or later nonexact match found.  */
+00997                 ambig = 1;
+00998             }
+00999         if (ambig && !exact)
+01000           {
+01001             if (print_errors)
+01002               {
+01003 #if defined _LIBC && defined USE_IN_LIBIO
+01004                 char *buf;
+01005 
+01006                 __asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
+01007                             argv[0], argv[optind]);
+01008 
+01009                 if (_IO_fwide (stderr, 0) > 0)
+01010                   __fwprintf (stderr, L"%s", buf);
+01011                 else
+01012                   fputs (buf, stderr);
+01013 
+01014                 free (buf);
+01015 #else
+01016                 fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+01017                          argv[0], argv[optind]);
+01018 #endif
+01019               }
+01020             nextchar += strlen (nextchar);
+01021             optind++;
+01022             return '?';
+01023           }
+01024         if (pfound != NULL)
+01025           {
+01026             option_index = indfound;
+01027             if (*nameend)
+01028               {
+01029                 /* Don't test has_arg with >, because some C compilers don't
+01030                    allow it to be used on enums.  */
+01031                 if (pfound->has_arg)
+01032                   optarg = nameend + 1;
+01033                 else
+01034                   {
+01035                     if (print_errors)
+01036                       {
+01037 #if defined _LIBC && defined USE_IN_LIBIO
+01038                         char *buf;
+01039 
+01040                         __asprintf (&buf, _("\
+01041 %s: option `-W %s' doesn't allow an argument\n"),
+01042                                     argv[0], pfound->name);
+01043 
+01044                         if (_IO_fwide (stderr, 0) > 0)
+01045                           __fwprintf (stderr, L"%s", buf);
+01046                         else
+01047                           fputs (buf, stderr);
+01048 
+01049                         free (buf);
+01050 #else
+01051                         fprintf (stderr, _("\
+01052 %s: option `-W %s' doesn't allow an argument\n"),
+01053                                  argv[0], pfound->name);
+01054 #endif
+01055                       }
+01056 
+01057                     nextchar += strlen (nextchar);
+01058                     return '?';
+01059                   }
+01060               }
+01061             else if (pfound->has_arg == 1)
+01062               {
+01063                 if (optind < argc)
+01064                   optarg = argv[optind++];
+01065                 else
+01066                   {
+01067                     if (print_errors)
+01068                       {
+01069 #if defined _LIBC && defined USE_IN_LIBIO
+01070                         char *buf;
+01071 
+01072                         __asprintf (&buf, _("\
+01073 %s: option `%s' requires an argument\n"),
+01074                                     argv[0], argv[optind - 1]);
+01075 
+01076                         if (_IO_fwide (stderr, 0) > 0)
+01077                           __fwprintf (stderr, L"%s", buf);
+01078                         else
+01079                           fputs (buf, stderr);
+01080 
+01081                         free (buf);
+01082 #else
+01083                         fprintf (stderr,
+01084                                  _("%s: option `%s' requires an argument\n"),
+01085                                  argv[0], argv[optind - 1]);
+01086 #endif
+01087                       }
+01088                     nextchar += strlen (nextchar);
+01089                     return optstring[0] == ':' ? ':' : '?';
+01090                   }
+01091               }
+01092             nextchar += strlen (nextchar);
+01093             if (longind != NULL)
+01094               *longind = option_index;
+01095             if (pfound->flag)
+01096               {
+01097                 *(pfound->flag) = pfound->val;
+01098                 return 0;
+01099               }
+01100             return pfound->val;
+01101           }
+01102           nextchar = NULL;
+01103           return 'W';   /* Let the application handle it.   */
+01104       }
+01105     if (temp[1] == ':')
+01106       {
+01107         if (temp[2] == ':')
+01108           {
+01109             /* This is an option that accepts an argument optionally.  */
+01110             if (*nextchar != '\0')
+01111               {
+01112                 optarg = nextchar;
+01113                 optind++;
+01114               }
+01115             else
+01116               optarg = NULL;
+01117             nextchar = NULL;
+01118           }
+01119         else
+01120           {
+01121             /* This is an option that requires an argument.  */
+01122             if (*nextchar != '\0')
+01123               {
+01124                 optarg = nextchar;
+01125                 /* If we end this ARGV-element by taking the rest as an arg,
+01126                    we must advance to the next element now.  */
+01127                 optind++;
+01128               }
+01129             else if (optind == argc)
+01130               {
+01131                 if (print_errors)
+01132                   {
+01133                     /* 1003.2 specifies the format of this message.  */
+01134 #if defined _LIBC && defined USE_IN_LIBIO
+01135                     char *buf;
+01136 
+01137                     __asprintf (&buf,
+01138                                 _("%s: option requires an argument -- %c\n"),
+01139                                 argv[0], c);
+01140 
+01141                     if (_IO_fwide (stderr, 0) > 0)
+01142                       __fwprintf (stderr, L"%s", buf);
+01143                     else
+01144                       fputs (buf, stderr);
+01145 
+01146                     free (buf);
+01147 #else
+01148                     fprintf (stderr,
+01149                              _("%s: option requires an argument -- %c\n"),
+01150                              argv[0], c);
+01151 #endif
+01152                   }
+01153                 optopt = c;
+01154                 if (optstring[0] == ':')
+01155                   c = ':';
+01156                 else
+01157                   c = '?';
+01158               }
+01159             else
+01160               /* We already incremented `optind' once;
+01161                  increment it again when taking next ARGV-elt as argument.  */
+01162               optarg = argv[optind++];
+01163             nextchar = NULL;
+01164           }
+01165       }
+01166     return c;
+01167   }
+01168 }
+01169 
+01170 int
+01171 getopt (argc, argv, optstring)
+01172      int argc;
+01173      char *const *argv;
+01174      const char *optstring;
+01175 {
+01176   return _getopt_internal (argc, argv, optstring,
+01177                            (const struct option *) 0,
+01178                            (int *) 0,
+01179                            0);
+01180 }
+01181 
+01182 #endif  /* Not ELIDE_CODE.  */
+01183 
+01184 
+01185 /* Compile with -DTEST to make an executable for use in testing
+01186    the above definition of `getopt'.  */
+01187 
+01188 /* #define TEST */        /* Pete Wilson mod 7/28/02 */
+01189 #ifdef TEST
+01190 
+01191 #ifndef exit         /* Pete Wilson mod 7/28/02 */
+01192   int exit(int);     /* Pete Wilson mod 7/28/02 */
+01193 #endif               /* Pete Wilson mod 7/28/02 */
+01194 
+01195 int
+01196 main (argc, argv)
+01197      int argc;
+01198      char **argv;
+01199 {
+01200   int c;
+01201   int digit_optind = 0;
+01202 
+01203   while (1)
+01204     {
+01205       int this_option_optind = optind ? optind : 1;
+01206 
+01207       c = getopt (argc, argv, "abc:d:0123456789");
+01208       if (c == -1)
+01209         break;
+01210 
+01211       switch (c)
+01212         {
+01213         case '0':
+01214         case '1':
+01215         case '2':
+01216         case '3':
+01217         case '4':
+01218         case '5':
+01219         case '6':
+01220         case '7':
+01221         case '8':
+01222         case '9':
+01223           if (digit_optind != 0 && digit_optind != this_option_optind)
+01224             printf ("digits occur in two different argv-elements.\n");
+01225           digit_optind = this_option_optind;
+01226           printf ("option %c\n", c);
+01227           break;
+01228 
+01229         case 'a':
+01230           printf ("option a\n");
+01231           break;
+01232 
+01233         case 'b':
+01234           printf ("option b\n");
+01235           break;
+01236 
+01237         case 'c':
+01238           printf ("option c with value `%s'\n", optarg);
+01239           break;
+01240 
+01241         case '?':
+01242           break;
+01243 
+01244         default:
+01245           printf ("?? getopt returned character code 0%o ??\n", c);
+01246         }
+01247     }
+01248 
+01249   if (optind < argc)
+01250     {
+01251       printf ("non-option ARGV-elements: ");
+01252       while (optind < argc)
+01253         printf ("%s ", argv[optind++]);
+01254       printf ("\n");
+01255     }
+01256 
+01257   exit (0);
+01258 }
+01259 
+01260 #endif /* TEST */
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,403 @@ + + +CanFestival: examples/TestMasterSlave/getopt.c File Reference + + + + +
+
+
+
+ +

getopt.c File Reference

#include <stdio.h>
+#include "getopt.h"
+#include <strings.h>
+ +

+Include dependency graph for getopt.c:

+ + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Defines

#define GETOPT_INTERFACE_VERSION   2
#define _(msgid)   (msgid)
#define SWAP_FLAGS(ch1, ch2)
#define NONOPTION_P   (argv[optind][0] != '-' || argv[optind][1] == '\0')

Enumerations

enum  { REQUIRE_ORDER, +PERMUTE, +RETURN_IN_ORDER + }

Functions

char * getenv ()
int _getopt_internal (int argc, char *const *argv, const char *optstring, const struct option *longopts, int *longind, int long_only)
int getopt (int argc, char *const *argv, const char *optstring)

Variables

char * optarg
int optind = 1
int __getopt_initialized
int opterr = 1
int optopt = '?'
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define _ (msgid   )    (msgid)
+
+
+ +

+ +

+Definition at line 89 of file getopt.c. +

+

+ +

+
+ + + + +
#define GETOPT_INTERFACE_VERSION   2
+
+
+ +

+ +

+Definition at line 54 of file getopt.c. +

+

+ +

+
+ + + + +
#define NONOPTION_P   (argv[optind][0] != '-' || argv[optind][1] == '\0')
+
+
+ +

+ +

+Referenced by _getopt_internal(). +

+

+ +

+
+ + + + + + + + + + + + +
#define SWAP_FLAGS (ch1,
ch2   ) 
+
+
+ +

+ +

+Definition at line 287 of file getopt.c. +

+

+


Enumeration Type Documentation

+ +
+
+ + + + +
anonymous enum
+
+
+ +

+

Enumerator:
+ + + + +
REQUIRE_ORDER  +
PERMUTE  +
RETURN_IN_ORDER  +
+
+ +

+Definition at line 190 of file getopt.c. +

+

+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int _getopt_internal (int  argc,
char *const *  argv,
const char *  optstring,
const struct option longopts,
int *  longind,
int  long_only 
)
+
+
+ +

+ +

+Definition at line 511 of file getopt.c. +

+References __getopt_initialized, option::name, NONOPTION_P, optarg, opterr, optind, PERMUTE, and REQUIRE_ORDER. +

+Referenced by getopt(). +

+

+ +

+
+ + + + + + + + +
char* getenv (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int getopt (int  argc,
char *const *  argv,
const char *  optstring 
)
+
+
+ +

+ +

+Definition at line 1171 of file getopt.c. +

+References _getopt_internal(). +

+Referenced by main(). +

+Here is the call graph for this function:

+ + + + +
+

+


Variable Documentation

+ +
+
+ + + + +
int __getopt_initialized
+
+
+ +

+ +

+Definition at line 139 of file getopt.c. +

+Referenced by _getopt_internal(). +

+

+ +

+
+ + + + +
char* optarg
+
+
+ +

+ +

+Definition at line 118 of file getopt.c. +

+Referenced by _getopt_internal(), and main(). +

+

+ +

+
+ + + + +
int opterr = 1
+
+
+ +

+ +

+Definition at line 153 of file getopt.c. +

+Referenced by _getopt_internal(). +

+

+ +

+
+ + + + +
int optind = 1
+
+
+ +

+ +

+Definition at line 133 of file getopt.c. +

+Referenced by _getopt_internal(). +

+

+ +

+
+ + + + +
int optopt = '?'
+
+
+ +

+ +

+Definition at line 159 of file getopt.c. +

+

+


Generated on Fri Jun 8 08:51:48 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterSlave_2getopt_8c.html#0df92a0ae8fe1fd43268c738f548674f 120,6 254,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fa79b502b61379e627135d5a090ba7ad \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.png Binary file doc/doxygen/html/TestMasterSlave_2getopt_8c_1b2ada39ab92162c6ec9c67c8093fa2e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterSlave_2getopt_8h.html 318,54 395,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +826b5c26ea6d267091b75b66dfa071f5 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8c__incl.png Binary file doc/doxygen/html/TestMasterSlave_2getopt_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,217 @@ + + +CanFestival: examples/TestMasterSlave/getopt.h Source File + + + + +
+
+
+
+ +

getopt.h

Go to the documentation of this file.
00001 /* from http://www.pwilson.net/getopt.html */
+00002 
+00003 /* getopt.h */
+00004 /* Declarations for getopt.
+00005    Copyright (C) 1989-1994, 1996-1999, 2001 Free Software 
+00006    Foundation, Inc. This file is part of the GNU C Library.
+00007 
+00008    The GNU C Library is free software; you can redistribute 
+00009    it and/or modify it under the terms of the GNU Lesser 
+00010    General Public License as published by the Free Software 
+00011    Foundation; either version 2.1 of the License, or 
+00012    (at your option) any later version.
+00013 
+00014    The GNU C Library is distributed in the hope that it will 
+00015    be useful, but WITHOUT ANY WARRANTY; without even the 
+00016    implied warranty of MERCHANTABILITY or FITNESS FOR A 
+00017    PARTICULAR PURPOSE.  See the GNU Lesser General Public 
+00018    License for more details.
+00019 
+00020    You should have received a copy of the GNU Lesser General 
+00021    Public License along with the GNU C Library; if not, write 
+00022    to the Free Software Foundation, Inc., 59 Temple Place,
+00023    Suite 330, Boston, MA 02111-1307 USA.  */
+00024 
+00025   
+00026 
+00027   
+00028 
+00029 #ifndef _GETOPT_H
+00030 
+00031 #ifndef __need_getopt
+00032 # define _GETOPT_H 1
+00033 #endif
+00034 
+00035 /* If __GNU_LIBRARY__ is not already defined, either we are being used
+00036    standalone, or this is the first header included in the source file.
+00037    If we are being used with glibc, we need to include <features.h>, but
+00038    that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
+00039    not defined, include <ctype.h>, which will pull in <features.h> for us
+00040    if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
+00041    doesn't flood the namespace with stuff the way some other headers do.)  */
+00042 #if !defined __GNU_LIBRARY__
+00043 # include <ctype.h>
+00044 #endif
+00045 
+00046 #ifdef  __cplusplus
+00047 extern "C" {
+00048 #endif
+00049 
+00050 /* For communication from `getopt' to the caller.
+00051    When `getopt' finds an option that takes an argument,
+00052    the argument value is returned here.
+00053    Also, when `ordering' is RETURN_IN_ORDER,
+00054    each non-option ARGV-element is returned here.  */
+00055 
+00056 extern char *optarg;
+00057 
+00058 /* Index in ARGV of the next element to be scanned.
+00059    This is used for communication to and from the caller
+00060    and for communication between successive calls to `getopt'.
+00061 
+00062    On entry to `getopt', zero means this is the first call; initialize.
+00063 
+00064    When `getopt' returns -1, this is the index of the first of the
+00065    non-option elements that the caller should itself scan.
+00066 
+00067    Otherwise, `optind' communicates from one call to the next
+00068    how much of ARGV has been scanned so far.  */
+00069 
+00070 extern int optind;
+00071 
+00072 /* Callers store zero here to inhibit the error message `getopt' prints
+00073    for unrecognized options.  */
+00074 
+00075 extern int opterr;
+00076 
+00077 /* Set to an option character which was unrecognized.  */
+00078 
+00079 extern int optopt;
+00080 
+00081 #ifndef __need_getopt
+00082 /* Describe the long-named options requested by the application.
+00083    The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+00084    of `struct option' terminated by an element containing a name which is
+00085    zero.
+00086 
+00087    The field `has_arg' is:
+00088    no_argument          (or 0) if the option does not take an argument,
+00089    required_argument    (or 1) if the option requires an argument,
+00090    optional_argument    (or 2) if the option takes an optional argument.
+00091 
+00092    If the field `flag' is not NULL, it points to a variable that is set
+00093    to the value given in the field `val' when the option is found, but
+00094    left unchanged if the option is not found.
+00095 
+00096    To have a long-named option do something other than set an `int' to
+00097    a compiled-in constant, such as set a value from `optarg', set the
+00098    option's `flag' field to zero and its `val' field to a nonzero
+00099    value (the equivalent single-letter option character, if there is
+00100    one).  For long options that have a zero `flag' field, `getopt'
+00101    returns the contents of the `val' field.  */
+00102 
+00103 struct option
+00104 {
+00105 # if (defined __STDC__ && __STDC__) || defined __cplusplus
+00106   const char *name;
+00107 # else
+00108   char *name;
+00109 # endif
+00110   /* has_arg can't be an enum because some compilers complain about
+00111      type mismatches in all the code that assumes it is an int.  */
+00112   int has_arg;
+00113   int *flag;
+00114   int val;
+00115 };
+00116 
+00117 /* Names for the values of the `has_arg' field of `struct option'.  */
+00118 
+00119 # define no_argument            0
+00120 # define required_argument      1
+00121 # define optional_argument      2
+00122 #endif  /* need getopt */
+00123 
+00124 
+00125 /* Get definitions and prototypes for functions to process the
+00126    arguments in ARGV (ARGC of them, minus the program name) for
+00127    options given in OPTS.
+00128 
+00129    Return the option character from OPTS just read.  Return -1 when
+00130    there are no more options.  For unrecognized options, or options
+00131    missing arguments, `optopt' is set to the option letter, and '?' is
+00132    returned.
+00133 
+00134    The OPTS string is a list of characters which are recognized option
+00135    letters, optionally followed by colons, specifying that that letter
+00136    takes an argument, to be placed in `optarg'.
+00137 
+00138    If a letter in OPTS is followed by two colons, its argument is
+00139    optional.  This behavior is specific to the GNU `getopt'.
+00140 
+00141    The argument `--' causes premature termination of argument
+00142    scanning, explicitly telling `getopt' that there are no more
+00143    options.
+00144 
+00145    If OPTS begins with `--', then non-option arguments are treated as
+00146    arguments to the option '\0'.  This behavior is specific to the GNU
+00147    `getopt'.  */
+00148 
+00149 #if (defined __STDC__ && __STDC__) || defined __cplusplus
+00150 # ifdef __GNU_LIBRARY__
+00151 /* Many other libraries have conflicting prototypes for getopt, with
+00152    differences in the consts, in stdlib.h.  To avoid compilation
+00153    errors, only prototype getopt for the GNU C library.  */
+00154 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
+00155 # else /* not __GNU_LIBRARY__ */
+00156 extern int getopt ();
+00157 # endif /* __GNU_LIBRARY__ */
+00158 
+00159 # ifndef __need_getopt
+00160 extern int getopt_long (int ___argc, char *const *___argv,
+00161                         const char *__shortopts,
+00162                         const struct option *__longopts, int *__longind);
+00163 extern int getopt_long_only (int ___argc, char *const *___argv,
+00164                              const char *__shortopts,
+00165                              const struct option *__longopts, int *__longind);
+00166 
+00167 /* Internal only.  Users should not call this directly.  */
+00168 extern int _getopt_internal (int ___argc, char *const *___argv,
+00169                              const char *__shortopts,
+00170                              const struct option *__longopts, int *__longind,
+00171                              int __long_only);
+00172 # endif
+00173 #else /* not __STDC__ */
+00174 extern int getopt ();
+00175 # ifndef __need_getopt
+00176 extern int getopt_long ();
+00177 extern int getopt_long_only ();
+00178 
+00179 extern int _getopt_internal ();
+00180 # endif
+00181 #endif /* __STDC__ */
+00182 
+00183 #ifdef  __cplusplus
+00184 }
+00185 #endif
+00186 
+00187 /* Make sure we later can get all the definitions and declarations.  */
+00188 #undef __need_getopt
+00189 
+00190 #endif /* getopt.h */
+00191 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,286 @@ + + +CanFestival: examples/TestMasterSlave/getopt.h File Reference + + + + +
+
+
+
+ +

getopt.h File Reference

#include <ctype.h>
+ +

+Include dependency graph for getopt.h:

+ +

+This graph shows which files directly or indirectly include this file:

+ + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Data Structures

struct  option

Defines

#define _GETOPT_H   1
#define no_argument   0
#define required_argument   1
#define optional_argument   2

Functions

int getopt ()
int getopt_long ()
int getopt_long_only ()
int _getopt_internal ()

Variables

char * optarg
int optind
int opterr
int optopt
+


Define Documentation

+ +
+
+ + + + +
#define _GETOPT_H   1
+
+
+ +

+ +

+Definition at line 32 of file getopt.h. +

+

+ +

+
+ + + + +
#define no_argument   0
+
+
+ +

+ +

+Definition at line 119 of file getopt.h. +

+

+ +

+
+ + + + +
#define optional_argument   2
+
+
+ +

+ +

+Definition at line 121 of file getopt.h. +

+

+ +

+
+ + + + +
#define required_argument   1
+
+
+ +

+ +

+Definition at line 120 of file getopt.h. +

+

+


Function Documentation

+ +
+
+ + + + + + + + +
int _getopt_internal (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
int getopt (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
int getopt_long (  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + +
int getopt_long_only (  ) 
+
+
+ +

+ +

+

+


Variable Documentation

+ +
+
+ + + + +
char* optarg
+
+
+ +

+ +

+Definition at line 118 of file getopt.c. +

+

+ +

+
+ + + + +
int opterr
+
+
+ +

+ +

+Definition at line 153 of file getopt.c. +

+

+ +

+
+ + + + +
int optind
+
+
+ +

+ +

+Definition at line 133 of file getopt.c. +

+

+ +

+
+ + + + +
int optopt
+
+
+ +

+ +

+Definition at line 159 of file getopt.c. +

+

+


Generated on Fri Jun 8 08:51:49 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $TestMasterSlave_2getopt_8c.html 317,6 579,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2978f6141221687ec5f9ca06d8d0d115 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h__dep__incl.png Binary file doc/doxygen/html/TestMasterSlave_2getopt_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_2getopt_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e1c0a04d1590bfc827ae6768f20359b2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_2getopt_8h__incl.png Binary file doc/doxygen/html/TestMasterSlave_2getopt_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,267 @@ + + +CanFestival: examples/TestMasterSlave/TestMasterSlave.c Source File + + + + +
+
+
+
+ +

TestMasterSlave.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #if defined(WIN32) && !defined(__CYGWIN__)
+00024 #include <windows.h>
+00025 #include "getopt.h"
+00026 void pause(void)
+00027 {
+00028         system("PAUSE");
+00029 }
+00030 #else
+00031 #include <stdio.h>
+00032 #include <string.h>
+00033 #include <unistd.h>
+00034 #include <stdlib.h>
+00035 #include <signal.h>
+00036 #endif
+00037 
+00038 #include "canfestival.h"
+00039 //#include <can_driver.h>
+00040 //#include <timers_driver.h>
+00041 
+00042 #include "Master.h"
+00043 #include "Slave.h"
+00044 #include "TestMasterSlave.h"
+00045 
+00046 UNS32 OnMasterMap1Update(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
+00047 {
+00048         eprintf("OnSlaveMap1Update:%d\n", SlaveMap1);
+00049         return 0;
+00050 }
+00051 
+00052 s_BOARD SlaveBoard = {"0", "125K"};
+00053 s_BOARD MasterBoard = {"1", "125K"};
+00054 
+00055 #if !defined(WIN32) || defined(__CYGWIN__)
+00056 void catch_signal(int sig)
+00057 {
+00058   signal(SIGTERM, catch_signal);
+00059   signal(SIGINT, catch_signal);
+00060   eprintf("Got Signal %d\n",sig);
+00061 }
+00062 #endif
+00063 
+00064 void help()
+00065 {
+00066   printf("**************************************************************\n");
+00067   printf("*  TestMasterSlave                                           *\n");
+00068   printf("*                                                            *\n");
+00069   printf("*  A simple example for PC. It does implement 2 CanOpen      *\n");
+00070   printf("*  nodes in the same process. A master and a slave. Both     *\n");
+00071   printf("*  communicate together, exchanging periodically NMT, SYNC,  *\n");
+00072   printf("*  SDO and PDO. Master configure heartbeat producer time     *\n");
+00073   printf("*  at 1000 ms for slave node-id 0x02 by concise DCF.         *\n");                                  
+00074   printf("*                                                            *\n");
+00075   printf("*   Usage:                                                   *\n");
+00076   printf("*   ./TestMasterSlave  [OPTIONS]                             *\n");
+00077   printf("*                                                            *\n");
+00078   printf("*   OPTIONS:                                                 *\n");
+00079   printf("*     -l : Can library [\"libcanfestival_can_virtual.so\"]     *\n");
+00080   printf("*                                                            *\n");
+00081   printf("*    Slave:                                                  *\n");
+00082   printf("*     -s : bus name [\"0\"]                                    *\n");
+00083   printf("*     -S : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *\n");
+00084   printf("*                                                            *\n");
+00085   printf("*    Master:                                                 *\n");
+00086   printf("*     -m : bus name [\"1\"]                                    *\n");
+00087   printf("*     -M : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *\n");
+00088   printf("*                                                            *\n");
+00089   printf("**************************************************************\n");
+00090 }
+00091 
+00092 /***************************  INIT  *****************************************/
+00093 void InitNodes(CO_Data* d, UNS32 id)
+00094 {
+00095         /****************************** INITIALISATION SLAVE *******************************/
+00096         if(strcmp(SlaveBoard.baudrate, "none")) {
+00097                 /* Defining the node Id */
+00098                 setNodeId(&TestSlave_Data, 0x02);
+00099                 /* init */
+00100                 setState(&TestSlave_Data, Initialisation);
+00101         }
+00102 
+00103         /****************************** INITIALISATION MASTER *******************************/
+00104         if(strcmp(MasterBoard.baudrate, "none")){
+00105                 RegisterSetODentryCallBack(&TestMaster_Data, 0x2000, 0, &OnMasterMap1Update);
+00106                 
+00107                 /* Defining the node Id */
+00108                 setNodeId(&TestMaster_Data, 0x01);
+00109 
+00110                 /* init */
+00111                 setState(&TestMaster_Data, Initialisation);
+00112                         
+00113         }
+00114 }
+00115 
+00116 /****************************************************************************/
+00117 /***************************  MAIN  *****************************************/
+00118 /****************************************************************************/
+00119 int main(int argc,char **argv)
+00120 {
+00121 
+00122   int c;
+00123   extern char *optarg;
+00124   char* LibraryPath="libcanfestival_can_virtual.so";
+00125 
+00126   while ((c = getopt(argc, argv, "-m:s:M:S:l:")) != EOF)
+00127   {
+00128     switch(c)
+00129     {
+00130       case 's' :
+00131         if (optarg[0] == 0)
+00132         {
+00133           help();
+00134           exit(1);
+00135         }
+00136         SlaveBoard.busname = optarg;
+00137         break;
+00138       case 'm' :
+00139         if (optarg[0] == 0)
+00140         {
+00141           help();
+00142           exit(1);
+00143         }
+00144         MasterBoard.busname = optarg;
+00145         break;
+00146       case 'S' :
+00147         if (optarg[0] == 0)
+00148         {
+00149           help();
+00150           exit(1);
+00151         }
+00152         SlaveBoard.baudrate = optarg;
+00153         break;
+00154       case 'M' :
+00155         if (optarg[0] == 0)
+00156         {
+00157           help();
+00158           exit(1);
+00159         }
+00160         MasterBoard.baudrate = optarg;
+00161         break;
+00162       case 'l' :
+00163         if (optarg[0] == 0)
+00164         {
+00165           help();
+00166           exit(1);
+00167         }
+00168         LibraryPath = optarg;
+00169         break;
+00170       default:
+00171         help();
+00172         exit(1);
+00173     }
+00174   }
+00175 
+00176 #if !defined(WIN32) || defined(__CYGWIN__)
+00177   /* install signal handler for manual break */
+00178         signal(SIGTERM, catch_signal);
+00179         signal(SIGINT, catch_signal);
+00180 #endif
+00181 
+00182 #ifndef NOT_USE_DYNAMIC_LOADING
+00183         LoadCanDriver(LibraryPath);
+00184 #endif          
+00185         // Open CAN devices
+00186 
+00187         if(strcmp(SlaveBoard.baudrate, "none")){
+00188                 
+00189                 TestSlave_Data.heartbeatError = TestSlave_heartbeatError;
+00190                 TestSlave_Data.initialisation = TestSlave_initialisation;
+00191                 TestSlave_Data.preOperational = TestSlave_preOperational;
+00192                 TestSlave_Data.operational = TestSlave_operational;
+00193                 TestSlave_Data.stopped = TestSlave_stopped;
+00194                 TestSlave_Data.post_sync = TestSlave_post_sync;
+00195                 TestSlave_Data.post_TPDO = TestSlave_post_TPDO;
+00196                 TestSlave_Data.storeODSubIndex = TestSlave_storeODSubIndex;             
+00197 
+00198                 if(!canOpen(&SlaveBoard,&TestSlave_Data)){
+00199                         eprintf("Cannot open Slave Board (%s,%s)\n",SlaveBoard.busname, SlaveBoard.baudrate);
+00200                         goto fail_slave;
+00201                 }
+00202         }
+00203         if(strcmp(MasterBoard.baudrate, "none")){
+00204                 
+00205                 TestMaster_Data.heartbeatError = TestMaster_heartbeatError;
+00206                 TestMaster_Data.initialisation = TestMaster_initialisation;
+00207                 TestMaster_Data.preOperational = TestMaster_preOperational;
+00208                 TestMaster_Data.operational = TestMaster_operational;
+00209                 TestMaster_Data.stopped = TestMaster_stopped;
+00210                 TestMaster_Data.post_sync = TestMaster_post_sync;
+00211                 TestMaster_Data.post_TPDO = TestMaster_post_TPDO;
+00212                 
+00213                 if(!canOpen(&MasterBoard,&TestMaster_Data)){
+00214                         eprintf("Cannot open Master Board (%s,%s)\n",MasterBoard.busname, MasterBoard.baudrate);
+00215                         goto fail_master;
+00216                 }
+00217         }
+00218 
+00219         // Start timer thread
+00220         StartTimerLoop(&InitNodes);
+00221 
+00222         // wait Ctrl-C
+00223         
+00224         pause();
+00225         eprintf("Finishing.\n");
+00226         
+00227         masterSendNMTstateChange (&TestMaster_Data, 0x02, NMT_Reset_Node);
+00228         eprintf("reset\n");
+00229         // Stop master
+00230         setState(&TestMaster_Data, Stopped);
+00231         
+00232         // Stop timer thread
+00233         StopTimerLoop();
+00234         
+00235         // Close CAN devices (and can threads)
+00236         if(strcmp(SlaveBoard.baudrate, "none")) canClose(&TestSlave_Data);
+00237 fail_master:
+00238         if(strcmp(MasterBoard.baudrate, "none")) canClose(&TestMaster_Data);    
+00239 fail_slave:
+00240         return 0;
+00241 }
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,311 @@ + + +CanFestival: examples/TestMasterSlave/TestMasterSlave.c File Reference + + + + +
+
+
+
+ +

TestMasterSlave.c File Reference

#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <signal.h>
+#include "canfestival.h"
+#include "Master.h"
+#include "Slave.h"
+#include "TestMasterSlave.h"
+ +

+Include dependency graph for TestMasterSlave.c:

+ + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + +

Functions

UNS32 OnMasterMap1Update (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
void catch_signal (int sig)
void help ()
void InitNodes (CO_Data *d, UNS32 id)
int main (int argc, char **argv)

Variables

s_BOARD SlaveBoard = {"0", "125K"}
s_BOARD MasterBoard = {"1", "125K"}
+


Function Documentation

+ +
+
+ + + + + + + + + +
void catch_signal (int  sig  ) 
+
+
+ +

+ +

+Definition at line 56 of file TestMasterSlave.c. +

+References eprintf. +

+Referenced by catch_signal(), and main(). +

+

+ +

+
+ + + + + + + + +
void help (  ) 
+
+
+ +

+ +

+Definition at line 64 of file TestMasterSlave.c. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void InitNodes (CO_Data d,
UNS32  id 
)
+
+
+ +

+ +

+Definition at line 93 of file TestMasterSlave.c. +

+References struct_s_BOARD::baudrate, Initialisation, MasterBoard, OnMasterMap1Update(), RegisterSetODentryCallBack(), setNodeId(), setState(), SlaveBoard, TestMaster_Data, and TestSlave_Data. +

+Referenced by main(). +

+Here is the call graph for this function:

+ + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
int main (int  argc,
char **  argv 
)
+
+
+ +

+ +

+Definition at line 119 of file TestMasterSlave.c. +

+References struct_s_BOARD::baudrate, struct_s_BOARD::busname, canClose(), canOpen(), catch_signal(), eprintf, getopt(), struct_CO_Data::heartbeatError, help(), struct_CO_Data::initialisation, InitNodes(), LoadCanDriver(), MasterBoard, masterSendNMTstateChange(), NMT_Reset_Node, struct_CO_Data::operational, optarg, struct_CO_Data::post_sync, struct_CO_Data::post_TPDO, struct_CO_Data::preOperational, setState(), SlaveBoard, StartTimerLoop(), Stopped, struct_CO_Data::stopped, StopTimerLoop(), struct_CO_Data::storeODSubIndex, TestMaster_Data, TestMaster_heartbeatError(), TestMaster_initialisation(), TestMaster_operational(), TestMaster_post_sync(), TestMaster_post_TPDO(), TestMaster_preOperational(), TestMaster_stopped(), TestSlave_Data, TestSlave_heartbeatError(), TestSlave_initialisation(), TestSlave_operational(), TestSlave_post_sync(), TestSlave_post_TPDO(), TestSlave_preOperational(), TestSlave_stopped(), and TestSlave_storeODSubIndex(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
UNS32 OnMasterMap1Update (CO_Data d,
const indextable unsused_indextable,
UNS8  unsused_bSubindex 
)
+
+
+ +

+ +

+Definition at line 46 of file TestMasterSlave.c. +

+References eprintf, and SlaveMap1. +

+Referenced by InitNodes(). +

+

+


Variable Documentation

+ +
+
+ + + + +
s_BOARD MasterBoard = {"1", "125K"}
+
+
+ +

+ +

+Definition at line 53 of file TestMasterSlave.c. +

+Referenced by InitNodes(), and main(). +

+

+ +

+
+ + + + +
s_BOARD SlaveBoard = {"0", "125K"}
+
+
+ +

+ +

+Definition at line 52 of file TestMasterSlave.c. +

+Referenced by InitNodes(), and main(). +

+

+


Generated on Fri Jun 8 08:51:52 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,27 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 177,5 260,29 +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 177,53 260,77 +rect $TestMasterSlave_8c.html#f2dc378d0481adcc49b61efb98493a9b 165,101 272,125 +rect $TestMasterSlave_2getopt_8c.html#1b2ada39ab92162c6ec9c67c8093fa2e 185,149 252,173 +rect $TestMasterSlave_8c.html#97ee70a8770dc30d06c744b24eb2fcfc 193,197 244,221 +rect $TestMasterSlave_8c.html#8a51032f7610fe37c131376e5a392fd5 176,245 261,269 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 377,271 455,295 +rect $unix_8c.html#a6eed61fc15f41f772d4645d7a5edeb5 157,344 280,368 +rect $nmtMaster_8c.html#6170d95d9900ef756921a934c5fb37d2 111,392 327,416 +rect $timers__unix_8c.html#c9e1731843825eb55e7a94894e6a8ec5 156,440 281,464 +rect $timers__unix_8c.html#8758484f3cebb0cd44bb247c3f23d5e3 157,488 280,512 +rect $Master_8c.html#47eb45e75b4db150fb465fcf171ef4b4 119,536 319,560 +rect $Master_8c.html#e08dfb379eebaa62524fac5bba2196d5 127,584 311,608 +rect $Master_8c.html#81c297f2b4b9676e906286bf46541fc1 129,632 308,656 +rect $Master_8c.html#9a8f72cab7f649481ca84ab2222dd179 135,680 303,704 +rect $Master_8c.html#5e466aa03eae00c269cf20359a7ee074 131,728 307,752 +rect $Master_8c.html#8fe2bae5bb407a3a71ee5fa5ea5d617f 117,776 320,800 +rect $Master_8c.html#897d573cafc13ac80abbc207c0ee41b0 140,824 297,848 +rect $Slave_8c.html#da03f81a4976684fe32771da3024e487 123,872 315,896 +rect $Slave_8c.html#58b26580ced4c123c0af29a291bbaa00 131,920 307,944 +rect $Slave_8c.html#a2eebd6dfb45d05dfbe7a5af67b0e16d 133,968 304,992 +rect $Slave_8c.html#7ddf0673ec8de041368c7aec2edf40cd 139,1016 299,1040 +rect $Slave_8c.html#b10ae2f1c6529172612a290687865585 136,1064 301,1088 +rect $Slave_8c.html#3b4bad40bd7f9f9e5a453ad5a0edca6d 121,1112 316,1136 +rect $Slave_8c.html#62ec5241885c4d8a0e620782e9aaa7ec 145,1160 292,1184 +rect $Slave_8c.html#0461b31d30605aa041476ae5ef4656b7 113,1208 324,1232 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e6d05042850a693a3552a1c9701a98cb \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.png Binary file doc/doxygen/html/TestMasterSlave_8c_3c04138a5bfe5d72780bb7e82a18e627_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $TestMasterSlave_8c.html#bd99872d05af9bf63e28d6f010c1b174 159,6 332,30 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 139,54 352,78 +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 200,102 291,126 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 207,150 284,174 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 448,54 560,78 +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 448,126 560,150 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 401,174 607,198 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +90dcb82ab94988820b595823461a4550 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.png Binary file doc/doxygen/html/TestMasterSlave_8c_8a51032f7610fe37c131376e5a392fd5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $win32_2canfestival_8h.html 577,296 684,320 +rect $Master_8h.html 415,344 495,368 +rect $Slave_8h.html 419,392 491,416 +rect $TestMasterSlave_8h.html 383,296 527,320 +rect $win32_2timerscfg_8h.html 736,221 835,245 +rect $can__driver_8h.html 733,320 837,344 +rect $data_8h.html 753,368 817,392 +rect $TestMasterSlave_2TestMaster_8h.html 577,344 684,368 +rect $TestSlave_8h.html 581,392 680,416 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +5ff36862acabe65e37c63074a2084b11 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8c__incl.png Binary file doc/doxygen/html/TestMasterSlave_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,86 @@ + + +CanFestival: examples/TestMasterSlave/TestMasterSlave.h Source File + + + + +
+
+
+
+ +

TestMasterSlave.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 #ifdef USE_XENO
+00023 //#define eprintf(...) if(0){}
+00024 #define eprintf(...)
+00025 #else
+00026 #define eprintf(...) printf (__VA_ARGS__)
+00027 #endif
+00028 void print_message(Message *m);
+00029 
+00030 /*UNS8 canSend(CAN_HANDLE fd0, Message *m);*/
+00031 
+00032 #include "canfestival.h"
+00033 
+00034 /*
+00035 #define CAN_FIFO_LENGTH 100
+00036 
+00037 #define DECLARE_A_CAN_FIFO \
+00038 static Message FIFO[CAN_FIFO_LENGTH];\
+00039 static int FIFO_First = 0;\
+00040 static int FIFO_Last = 0;\
+00041 \
+00042 static void PutInFIFO(Message *m)\
+00043 {\
+00044         FIFO[FIFO_Last++] = *m;\
+00045         FIFO_Last %= CAN_FIFO_LENGTH;\
+00046 }\
+00047 \
+00048 static void GetFromFIFO(Message *m)\
+00049 {\
+00050         *m = FIFO[FIFO_First++];\
+00051         FIFO_First %= CAN_FIFO_LENGTH;\
+00052 }\
+00053 \
+00054 static void TransmitMessage(CO_Data* d, UNS32 id)\
+00055 {\
+00056         Message m;\
+00057         GetFromFIFO(&m);\
+00058         canDispatch(d, &m);\
+00059 }
+00060 */
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,107 @@ + + +CanFestival: examples/TestMasterSlave/TestMasterSlave.h File Reference + + + + +
+
+
+
+ +

TestMasterSlave.h File Reference

#include "canfestival.h"
+ +

+Include dependency graph for TestMasterSlave.h:

+ + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + +

+Go to the source code of this file. + + + + + + + +

Defines

#define eprintf(...)   printf (__VA_ARGS__)

Functions

void print_message (Message *m)
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define eprintf ( ...   )    printf (__VA_ARGS__)
+
+
+ +

+ +

+Definition at line 26 of file TestMasterSlave.h. +

+Referenced by catch_signal(), main(), OnMasterMap1Update(), TestMaster_heartbeatError(), TestMaster_initialisation(), TestMaster_operational(), TestMaster_post_sync(), TestMaster_post_TPDO(), TestMaster_preOperational(), TestMaster_stopped(), TestSlave_heartbeatError(), TestSlave_initialisation(), TestSlave_operational(), TestSlave_post_sync(), TestSlave_post_TPDO(), TestSlave_preOperational(), TestSlave_stopped(), and TestSlave_storeODSubIndex(). +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
void print_message (Message m  ) 
+
+
+ +

+ +

+Definition at line 53 of file can_virtual.c. +

+References Message::cob_id, Message::data, Message::len, MyCase, NMT, NODE_GUARD, PDO1rx, PDO1tx, PDO2rx, PDO2tx, PDO3rx, PDO3tx, PDO4rx, PDO4tx, Message::rtr, SDOrx, SDOtx, SYNC, TIME_STAMP, and SHORT_CAN::w. +

+Referenced by canSend_driver(). +

+

+


Generated on Fri Jun 8 08:51:52 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $Master_8c.html 415,6 676,30 +rect $Slave_8c.html 419,54 672,78 +rect $TestMasterSlave_8c.html 383,102 708,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a9ece130c96de2630acd7c635884bc17 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h__dep__incl.png Binary file doc/doxygen/html/TestMasterSlave_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $win32_2canfestival_8h.html 383,80 489,104 +rect $win32_2timerscfg_8h.html 541,5 640,29 +rect $can__driver_8h.html 539,104 643,128 +rect $data_8h.html 559,152 623,176 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestMasterSlave_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +c289fe694607f6182c5b879316fc1c17 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestMasterSlave_8h__incl.png Binary file doc/doxygen/html/TestMasterSlave_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,436 @@ + + +CanFestival: examples/TestMasterSlave/TestSlave.c Source File + + + + +
+
+
+
+ +

TestSlave.c

Go to the documentation of this file.
00001 
+00002 /* File generated by gen_cfile.py. Should not be modified. */
+00003 
+00004 #include "TestSlave.h"
+00005 
+00006 /**************************************************************************/
+00007 /* Declaration of the mapped variables                                    */
+00008 /**************************************************************************/
+00009 UNS8 SlaveMap1 = 0x0;           /* Mapped at index 0x2000, subindex 0x00 */
+00010 UNS8 SlaveMap2 = 0x0;           /* Mapped at index 0x2001, subindex 0x00 */
+00011 UNS8 SlaveMap3 = 0x0;           /* Mapped at index 0x2002, subindex 0x00 */
+00012 UNS8 SlaveMap4 = 0x0;           /* Mapped at index 0x2003, subindex 0x00 */
+00013 UNS8 SlaveMap5 = 0x0;           /* Mapped at index 0x2004, subindex 0x00 */
+00014 UNS8 SlaveMap6 = 0x0;           /* Mapped at index 0x2005, subindex 0x00 */
+00015 UNS8 SlaveMap7 = 0x0;           /* Mapped at index 0x2006, subindex 0x00 */
+00016 UNS8 SlaveMap8 = 0x0;           /* Mapped at index 0x2007, subindex 0x00 */
+00017 UNS8 SlaveMap9 = 0x0;           /* Mapped at index 0x2008, subindex 0x00 */
+00018 UNS32 SlaveMap10 = 0x0;         /* Mapped at index 0x2009, subindex 0x00 */
+00019 UNS16 SlaveMap11 = 0x0;         /* Mapped at index 0x200A, subindex 0x00 */
+00020 
+00021 /**************************************************************************/
+00022 /* Declaration of the value range types                                   */
+00023 /**************************************************************************/
+00024 
+00025 UNS32 TestSlave_valueRangeTest (UNS8 typeValue, void * value)
+00026 {
+00027   switch (typeValue) {
+00028   }
+00029   return 0;
+00030 }
+00031 
+00032 /**************************************************************************/
+00033 /* The node id                                                            */
+00034 /**************************************************************************/
+00035 /* node_id default value.*/
+00036 UNS8 TestSlave_bDeviceNodeId = 0x00;
+00037 
+00038 /**************************************************************************/
+00039 /* Array of message processing information */
+00040 
+00041 const UNS8 TestSlave_iam_a_slave = 1;
+00042 
+00043 TIMER_HANDLE TestSlave_heartBeatTimers[1];
+00044 
+00045 /*
+00046 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00047 
+00048                                OBJECT DICTIONARY
+00049 
+00050 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00051 */
+00052 
+00053 /* index 0x1000 :   Device Type. */
+00054                     UNS32 TestSlave_obj1000 = 0x12D;    /* 301 */
+00055                     subindex TestSlave_Index1000[] = 
+00056                      {
+00057                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1000 }
+00058                      };
+00059 
+00060 /* index 0x1001 :   Error Register. */
+00061                     UNS8 TestSlave_obj1001 = 0x0;       /* 0 */
+00062                     subindex TestSlave_Index1001[] = 
+00063                      {
+00064                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_obj1001 }
+00065                      };
+00066 
+00067 /* index 0x1005 :   SYNC COB ID. */
+00068                     UNS32 TestSlave_obj1005 = 0x80;     /* 128 */
+00069                     ODCallback_t TestSlave_Index1005_callbacks[] = 
+00070                      {
+00071                        NULL,
+00072                      };
+00073                     subindex TestSlave_Index1005[] = 
+00074                      {
+00075                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1005 }
+00076                      };
+00077 
+00078 /* index 0x1006 :   Communication / Cycle Period. */
+00079                     UNS32 TestSlave_obj1006 = 0x0;      /* 0 */
+00080                     ODCallback_t TestSlave_Index1006_callbacks[] = 
+00081                      {
+00082                        NULL,
+00083                      };
+00084                     subindex TestSlave_Index1006[] = 
+00085                      {
+00086                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1006 }
+00087                      };
+00088 
+00089 /* index 0x1010 :   Store parameters. */
+00090                     UNS8 TestSlave_highestSubIndex_obj1010 = 4; /* number of subindex - 1*/
+00091                     UNS32 TestSlave_obj1010_Save_All_Parameters = 0x0;  /* 0 */
+00092                     UNS32 TestSlave_obj1010_Save_Communication_Parameters = 0x0;        /* 0 */
+00093                     UNS32 TestSlave_obj1010_Save_Application_Parameters = 0x0;  /* 0 */
+00094                     UNS32 TestSlave_obj1010_Save_Manufacturer_Parameters = 0x0; /* 0 */
+00095                     ODCallback_t TestSlave_Index1010_callbacks[] = 
+00096                      {
+00097                        NULL,
+00098                        NULL,
+00099                        NULL,
+00100                        NULL,
+00101                        NULL,
+00102                      };
+00103                     subindex TestSlave_Index1010[] = 
+00104                      {
+00105                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1010 },
+00106                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_All_Parameters },
+00107                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Communication_Parameters },
+00108                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Application_Parameters },
+00109                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Manufacturer_Parameters }
+00110                      };
+00111 
+00112 /* index 0x1011 :   Restore Default Parameters. */
+00113                     UNS8 TestSlave_highestSubIndex_obj1011 = 4; /* number of subindex - 1*/
+00114                     UNS32 TestSlave_obj1011_Restore_All_Default_Parameters = 0x0;       /* 0 */
+00115                     UNS32 TestSlave_obj1011_Restore_Communication_Default_Parameters = 0x0;     /* 0 */
+00116                     UNS32 TestSlave_obj1011_Restore_Application_Default_Parameters = 0x0;       /* 0 */
+00117                     UNS32 TestSlave_obj1011_Restore_Manufacturer_Default_Parameters = 0x0;      /* 0 */
+00118                     ODCallback_t TestSlave_Index1011_callbacks[] = 
+00119                      {
+00120                        NULL,
+00121                        NULL,
+00122                        NULL,
+00123                        NULL,
+00124                        NULL,
+00125                      };
+00126                     subindex TestSlave_Index1011[] = 
+00127                      {
+00128                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1011 },
+00129                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_All_Default_Parameters },
+00130                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Communication_Default_Parameters },
+00131                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Application_Default_Parameters },
+00132                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Manufacturer_Default_Parameters }
+00133                      };
+00134 
+00135 /* index 0x1016 :   Consumer Heartbeat Time */
+00136                     UNS8 TestSlave_highestSubIndex_obj1016 = 0;
+00137                     UNS32 TestSlave_obj1016[]={0};
+00138 
+00139 /* index 0x1017 :   Producer Heartbeat Time. */
+00140                     UNS16 TestSlave_obj1017 = 0x0;      /* 0 */
+00141                     ODCallback_t TestSlave_Index1017_callbacks[] = 
+00142                      {
+00143                        NULL,
+00144                      };
+00145                     subindex TestSlave_Index1017[] = 
+00146                      {
+00147                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1017 }
+00148                      };
+00149 
+00150 /* index 0x1018 :   Identity. */
+00151                     UNS8 TestSlave_highestSubIndex_obj1018 = 4; /* number of subindex - 1*/
+00152                     UNS32 TestSlave_obj1018_Vendor_ID = 0x0;    /* 0 */
+00153                     UNS32 TestSlave_obj1018_Product_Code = 0x0; /* 0 */
+00154                     UNS32 TestSlave_obj1018_Revision_Number = 0x0;      /* 0 */
+00155                     UNS32 TestSlave_obj1018_Serial_Number = 0x0;        /* 0 */
+00156                     subindex TestSlave_Index1018[] = 
+00157                      {
+00158                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1018 },
+00159                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Vendor_ID },
+00160                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Product_Code },
+00161                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Revision_Number },
+00162                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Serial_Number }
+00163                      };
+00164 
+00165 /* index 0x1200 :   Server SDO Parameter. */
+00166                     UNS8 TestSlave_highestSubIndex_obj1200 = 2; /* number of subindex - 1*/
+00167                     UNS32 TestSlave_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x601;        /* 1537 */
+00168                     UNS32 TestSlave_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x581;       /* 1409 */
+00169                     subindex TestSlave_Index1200[] = 
+00170                      {
+00171                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1200 },
+00172                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1200_COB_ID_Client_to_Server_Receive_SDO },
+00173                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1200_COB_ID_Server_to_Client_Transmit_SDO }
+00174                      };
+00175 
+00176 /* index 0x1800 :   Transmit PDO 1 Parameter. */
+00177                     UNS8 TestSlave_highestSubIndex_obj1800 = 5; /* number of subindex - 1*/
+00178                     UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182; /* 386 */
+00179                     UNS8 TestSlave_obj1800_Transmission_Type = 0x0;     /* 0 */
+00180                     UNS16 TestSlave_obj1800_Inhibit_Time = 0x0; /* 0 */
+00181                     UNS8 TestSlave_obj1800_Compatibility_Entry = 0x0;   /* 0 */
+00182                     UNS16 TestSlave_obj1800_Event_Timer = 0x0;  /* 0 */
+00183                     subindex TestSlave_Index1800[] = 
+00184                      {
+00185                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1800 },
+00186                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1800_COB_ID_used_by_PDO },
+00187                        { RW|TO_BE_SAVE, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Transmission_Type },
+00188                        { RW|TO_BE_SAVE, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Inhibit_Time },
+00189                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Compatibility_Entry },
+00190                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Event_Timer }
+00191                      };
+00192 
+00193 /* index 0x1801 :   Transmit PDO 2 Parameter. */
+00194                     UNS8 TestSlave_highestSubIndex_obj1801 = 5; /* number of subindex - 1*/
+00195                     UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x0;   /* 0 */
+00196                     UNS8 TestSlave_obj1801_Transmission_Type = 0x0;     /* 0 */
+00197                     UNS16 TestSlave_obj1801_Inhibit_Time = 0x0; /* 0 */
+00198                     UNS8 TestSlave_obj1801_Compatibility_Entry = 0x0;   /* 0 */
+00199                     UNS16 TestSlave_obj1801_Event_Timer = 0x0;  /* 0 */
+00200                     subindex TestSlave_Index1801[] = 
+00201                      {
+00202                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1801 },
+00203                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1801_COB_ID_used_by_PDO },
+00204                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Transmission_Type },
+00205                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Inhibit_Time },
+00206                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Compatibility_Entry },
+00207                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Event_Timer }
+00208                      };
+00209 
+00210 /* index 0x1A00 :   Transmit PDO 1 Mapping. */
+00211                     UNS8 TestSlave_highestSubIndex_obj1A00 = 10; /* number of subindex - 1*/
+00212                     UNS32 TestSlave_obj1A00[] = 
+00213                     {
+00214                       0x20000001,       /* 536870913 */
+00215                       0x20010001,       /* 536936449 */
+00216                       0x20020001,       /* 537001985 */
+00217                       0x20030001,       /* 537067521 */
+00218                       0x20040001,       /* 537133057 */
+00219                       0x20050001,       /* 537198593 */
+00220                       0x20060001,       /* 537264129 */
+00221                       0x20070001,       /* 537329665 */
+00222                       0x20080008,       /* 537395208 */
+00223                       0x20090020        /* 537460768 */
+00224                     };
+00225                     subindex TestSlave_Index1A00[] = 
+00226                      {
+00227                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A00 },
+00228                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[0] },
+00229                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[1] },
+00230                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[2] },
+00231                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[3] },
+00232                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[4] },
+00233                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[5] },
+00234                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[6] },
+00235                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[7] },
+00236                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[8] },
+00237                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[9] }
+00238                      };
+00239 
+00240 /* index 0x1A01 :   Transmit PDO 2 Mapping. */
+00241                     UNS8 TestSlave_highestSubIndex_obj1A01 = 1; /* number of subindex - 1*/
+00242                     UNS32 TestSlave_obj1A01[] = 
+00243                     {
+00244                       0x200A0010        /* 537526288 */
+00245                     };
+00246                     subindex TestSlave_Index1A01[] = 
+00247                      {
+00248                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A01 },
+00249                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A01[0] }
+00250                      };
+00251 
+00252 /* index 0x2000 :   Mapped variable SlaveMap1 */
+00253                     subindex TestSlave_Index2000[] = 
+00254                      {
+00255                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap1 }
+00256                      };
+00257 
+00258 /* index 0x2001 :   Mapped variable SlaveMap2 */
+00259                     subindex TestSlave_Index2001[] = 
+00260                      {
+00261                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap2 }
+00262                      };
+00263 
+00264 /* index 0x2002 :   Mapped variable SlaveMap3 */
+00265                     subindex TestSlave_Index2002[] = 
+00266                      {
+00267                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap3 }
+00268                      };
+00269 
+00270 /* index 0x2003 :   Mapped variable SlaveMap4 */
+00271                     subindex TestSlave_Index2003[] = 
+00272                      {
+00273                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap4 }
+00274                      };
+00275 
+00276 /* index 0x2004 :   Mapped variable SlaveMap5 */
+00277                     subindex TestSlave_Index2004[] = 
+00278                      {
+00279                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap5 }
+00280                      };
+00281 
+00282 /* index 0x2005 :   Mapped variable SlaveMap6 */
+00283                     subindex TestSlave_Index2005[] = 
+00284                      {
+00285                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap6 }
+00286                      };
+00287 
+00288 /* index 0x2006 :   Mapped variable SlaveMap7 */
+00289                     subindex TestSlave_Index2006[] = 
+00290                      {
+00291                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap7 }
+00292                      };
+00293 
+00294 /* index 0x2007 :   Mapped variable SlaveMap8 */
+00295                     subindex TestSlave_Index2007[] = 
+00296                      {
+00297                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap8 }
+00298                      };
+00299 
+00300 /* index 0x2008 :   Mapped variable SlaveMap9 */
+00301                     subindex TestSlave_Index2008[] = 
+00302                      {
+00303                        { RW, uint8, sizeof (UNS8), (void*)&SlaveMap9 }
+00304                      };
+00305 
+00306 /* index 0x2009 :   Mapped variable SlaveMap10 */
+00307                     subindex TestSlave_Index2009[] = 
+00308                      {
+00309                        { RW, uint32, sizeof (UNS32), (void*)&SlaveMap10 }
+00310                      };
+00311 
+00312 /* index 0x200A :   Mapped variable SlaveMap11 */
+00313                     subindex TestSlave_Index200A[] = 
+00314                      {
+00315                        { RW, uint16, sizeof (UNS16), (void*)&SlaveMap11 }
+00316                      };
+00317 
+00318 const indextable TestSlave_objdict[] = 
+00319 {
+00320   { (subindex*)TestSlave_Index1000,sizeof(TestSlave_Index1000)/sizeof(TestSlave_Index1000[0]), 0x1000},
+00321   { (subindex*)TestSlave_Index1001,sizeof(TestSlave_Index1001)/sizeof(TestSlave_Index1001[0]), 0x1001},
+00322   { (subindex*)TestSlave_Index1005,sizeof(TestSlave_Index1005)/sizeof(TestSlave_Index1005[0]), 0x1005},
+00323   { (subindex*)TestSlave_Index1006,sizeof(TestSlave_Index1006)/sizeof(TestSlave_Index1006[0]), 0x1006},
+00324   { (subindex*)TestSlave_Index1010,sizeof(TestSlave_Index1010)/sizeof(TestSlave_Index1010[0]), 0x1010},
+00325   { (subindex*)TestSlave_Index1011,sizeof(TestSlave_Index1011)/sizeof(TestSlave_Index1011[0]), 0x1011},
+00326   { (subindex*)TestSlave_Index1017,sizeof(TestSlave_Index1017)/sizeof(TestSlave_Index1017[0]), 0x1017},
+00327   { (subindex*)TestSlave_Index1018,sizeof(TestSlave_Index1018)/sizeof(TestSlave_Index1018[0]), 0x1018},
+00328   { (subindex*)TestSlave_Index1200,sizeof(TestSlave_Index1200)/sizeof(TestSlave_Index1200[0]), 0x1200},
+00329   { (subindex*)TestSlave_Index1800,sizeof(TestSlave_Index1800)/sizeof(TestSlave_Index1800[0]), 0x1800},
+00330   { (subindex*)TestSlave_Index1801,sizeof(TestSlave_Index1801)/sizeof(TestSlave_Index1801[0]), 0x1801},
+00331   { (subindex*)TestSlave_Index1A00,sizeof(TestSlave_Index1A00)/sizeof(TestSlave_Index1A00[0]), 0x1A00},
+00332   { (subindex*)TestSlave_Index1A01,sizeof(TestSlave_Index1A01)/sizeof(TestSlave_Index1A01[0]), 0x1A01},
+00333   { (subindex*)TestSlave_Index2000,sizeof(TestSlave_Index2000)/sizeof(TestSlave_Index2000[0]), 0x2000},
+00334   { (subindex*)TestSlave_Index2001,sizeof(TestSlave_Index2001)/sizeof(TestSlave_Index2001[0]), 0x2001},
+00335   { (subindex*)TestSlave_Index2002,sizeof(TestSlave_Index2002)/sizeof(TestSlave_Index2002[0]), 0x2002},
+00336   { (subindex*)TestSlave_Index2003,sizeof(TestSlave_Index2003)/sizeof(TestSlave_Index2003[0]), 0x2003},
+00337   { (subindex*)TestSlave_Index2004,sizeof(TestSlave_Index2004)/sizeof(TestSlave_Index2004[0]), 0x2004},
+00338   { (subindex*)TestSlave_Index2005,sizeof(TestSlave_Index2005)/sizeof(TestSlave_Index2005[0]), 0x2005},
+00339   { (subindex*)TestSlave_Index2006,sizeof(TestSlave_Index2006)/sizeof(TestSlave_Index2006[0]), 0x2006},
+00340   { (subindex*)TestSlave_Index2007,sizeof(TestSlave_Index2007)/sizeof(TestSlave_Index2007[0]), 0x2007},
+00341   { (subindex*)TestSlave_Index2008,sizeof(TestSlave_Index2008)/sizeof(TestSlave_Index2008[0]), 0x2008},
+00342   { (subindex*)TestSlave_Index2009,sizeof(TestSlave_Index2009)/sizeof(TestSlave_Index2009[0]), 0x2009},
+00343   { (subindex*)TestSlave_Index200A,sizeof(TestSlave_Index200A)/sizeof(TestSlave_Index200A[0]), 0x200A},
+00344 };
+00345 
+00346 const indextable * TestSlave_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
+00347 {
+00348         int i;
+00349         *callbacks = NULL;
+00350         switch(wIndex){
+00351                 case 0x1000: i = 0;break;
+00352                 case 0x1001: i = 1;break;
+00353                 case 0x1005: i = 2;*callbacks = TestSlave_Index1005_callbacks; break;
+00354                 case 0x1006: i = 3;*callbacks = TestSlave_Index1006_callbacks; break;
+00355                 case 0x1010: i = 4;*callbacks = TestSlave_Index1010_callbacks; break;
+00356                 case 0x1011: i = 5;*callbacks = TestSlave_Index1011_callbacks; break;
+00357                 case 0x1017: i = 6;*callbacks = TestSlave_Index1017_callbacks; break;
+00358                 case 0x1018: i = 7;break;
+00359                 case 0x1200: i = 8;break;
+00360                 case 0x1800: i = 9;break;
+00361                 case 0x1801: i = 10;break;
+00362                 case 0x1A00: i = 11;break;
+00363                 case 0x1A01: i = 12;break;
+00364                 case 0x2000: i = 13;break;
+00365                 case 0x2001: i = 14;break;
+00366                 case 0x2002: i = 15;break;
+00367                 case 0x2003: i = 16;break;
+00368                 case 0x2004: i = 17;break;
+00369                 case 0x2005: i = 18;break;
+00370                 case 0x2006: i = 19;break;
+00371                 case 0x2007: i = 20;break;
+00372                 case 0x2008: i = 21;break;
+00373                 case 0x2009: i = 22;break;
+00374                 case 0x200A: i = 23;break;
+00375                 default:
+00376                         *errorCode = OD_NO_SUCH_OBJECT;
+00377                         return NULL;
+00378         }
+00379         *errorCode = OD_SUCCESSFUL;
+00380         return &TestSlave_objdict[i];
+00381 }
+00382 
+00383 /* To count at which received SYNC a PDO must be sent.
+00384  * Even if no pdoTransmit are defined, at least one entry is computed
+00385  * for compilations issues.
+00386  */
+00387 UNS8 TestSlave_count_sync[2] = {0,};
+00388 
+00389 quick_index TestSlave_firstIndex = {
+00390   8, /* SDO_SVR */
+00391   0, /* SDO_CLT */
+00392   0, /* PDO_RCV */
+00393   0, /* PDO_RCV_MAP */
+00394   9, /* PDO_TRS */
+00395   11 /* PDO_TRS_MAP */
+00396 };
+00397 
+00398 quick_index TestSlave_lastIndex = {
+00399   8, /* SDO_SVR */
+00400   0, /* SDO_CLT */
+00401   0, /* PDO_RCV */
+00402   0, /* PDO_RCV_MAP */
+00403   10, /* PDO_TRS */
+00404   12 /* PDO_TRS_MAP */
+00405 };
+00406 
+00407 UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0]); 
+00408 
+00409 CO_Data TestSlave_Data = CANOPEN_NODE_DATA_INITIALIZER(TestSlave);
+00410 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2093 @@ + + +CanFestival: examples/TestMasterSlave/TestSlave.c File Reference + + + + +
+
+
+
+ +

TestSlave.c File Reference

#include "TestSlave.h"
+ +

+Include dependency graph for TestSlave.c:

+ + + + + + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

UNS32 TestSlave_valueRangeTest (UNS8 typeValue, void *value)
const indextableTestSlave_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

Variables

UNS8 SlaveMap1 = 0x0
UNS8 SlaveMap2 = 0x0
UNS8 SlaveMap3 = 0x0
UNS8 SlaveMap4 = 0x0
UNS8 SlaveMap5 = 0x0
UNS8 SlaveMap6 = 0x0
UNS8 SlaveMap7 = 0x0
UNS8 SlaveMap8 = 0x0
UNS8 SlaveMap9 = 0x0
UNS32 SlaveMap10 = 0x0
UNS16 SlaveMap11 = 0x0
UNS8 TestSlave_bDeviceNodeId = 0x00
const UNS8 TestSlave_iam_a_slave = 1
TIMER_HANDLE TestSlave_heartBeatTimers [1]
UNS32 TestSlave_obj1000 = 0x12D
subindex TestSlave_Index1000 []
UNS8 TestSlave_obj1001 = 0x0
subindex TestSlave_Index1001 []
UNS32 TestSlave_obj1005 = 0x80
ODCallback_t TestSlave_Index1005_callbacks []
subindex TestSlave_Index1005 []
UNS32 TestSlave_obj1006 = 0x0
ODCallback_t TestSlave_Index1006_callbacks []
subindex TestSlave_Index1006 []
UNS8 TestSlave_highestSubIndex_obj1010 = 4
UNS32 TestSlave_obj1010_Save_All_Parameters = 0x0
UNS32 TestSlave_obj1010_Save_Communication_Parameters = 0x0
UNS32 TestSlave_obj1010_Save_Application_Parameters = 0x0
UNS32 TestSlave_obj1010_Save_Manufacturer_Parameters = 0x0
ODCallback_t TestSlave_Index1010_callbacks []
subindex TestSlave_Index1010 []
UNS8 TestSlave_highestSubIndex_obj1011 = 4
UNS32 TestSlave_obj1011_Restore_All_Default_Parameters = 0x0
UNS32 TestSlave_obj1011_Restore_Communication_Default_Parameters = 0x0
UNS32 TestSlave_obj1011_Restore_Application_Default_Parameters = 0x0
UNS32 TestSlave_obj1011_Restore_Manufacturer_Default_Parameters = 0x0
ODCallback_t TestSlave_Index1011_callbacks []
subindex TestSlave_Index1011 []
UNS8 TestSlave_highestSubIndex_obj1016 = 0
UNS32 TestSlave_obj1016 [] = {0}
UNS16 TestSlave_obj1017 = 0x0
ODCallback_t TestSlave_Index1017_callbacks []
subindex TestSlave_Index1017 []
UNS8 TestSlave_highestSubIndex_obj1018 = 4
UNS32 TestSlave_obj1018_Vendor_ID = 0x0
UNS32 TestSlave_obj1018_Product_Code = 0x0
UNS32 TestSlave_obj1018_Revision_Number = 0x0
UNS32 TestSlave_obj1018_Serial_Number = 0x0
subindex TestSlave_Index1018 []
UNS8 TestSlave_highestSubIndex_obj1200 = 2
UNS32 TestSlave_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x601
UNS32 TestSlave_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x581
subindex TestSlave_Index1200 []
UNS8 TestSlave_highestSubIndex_obj1800 = 5
UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182
UNS8 TestSlave_obj1800_Transmission_Type = 0x0
UNS16 TestSlave_obj1800_Inhibit_Time = 0x0
UNS8 TestSlave_obj1800_Compatibility_Entry = 0x0
UNS16 TestSlave_obj1800_Event_Timer = 0x0
subindex TestSlave_Index1800 []
UNS8 TestSlave_highestSubIndex_obj1801 = 5
UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x0
UNS8 TestSlave_obj1801_Transmission_Type = 0x0
UNS16 TestSlave_obj1801_Inhibit_Time = 0x0
UNS8 TestSlave_obj1801_Compatibility_Entry = 0x0
UNS16 TestSlave_obj1801_Event_Timer = 0x0
subindex TestSlave_Index1801 []
UNS8 TestSlave_highestSubIndex_obj1A00 = 10
UNS32 TestSlave_obj1A00 []
subindex TestSlave_Index1A00 []
UNS8 TestSlave_highestSubIndex_obj1A01 = 1
UNS32 TestSlave_obj1A01 []
subindex TestSlave_Index1A01 []
subindex TestSlave_Index2000 []
subindex TestSlave_Index2001 []
subindex TestSlave_Index2002 []
subindex TestSlave_Index2003 []
subindex TestSlave_Index2004 []
subindex TestSlave_Index2005 []
subindex TestSlave_Index2006 []
subindex TestSlave_Index2007 []
subindex TestSlave_Index2008 []
subindex TestSlave_Index2009 []
subindex TestSlave_Index200A []
const indextable TestSlave_objdict []
UNS8 TestSlave_count_sync [2] = {0,}
quick_index TestSlave_firstIndex
quick_index TestSlave_lastIndex
UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0])
CO_Data TestSlave_Data = CANOPEN_NODE_DATA_INITIALIZER(TestSlave)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const indextable* TestSlave_scanIndexOD (UNS16  wIndex,
UNS32 *  errorCode,
ODCallback_t **  callbacks 
)
+
+
+ +

+ +

+Definition at line 346 of file TestSlave.c. +

+References OD_NO_SUCH_OBJECT, OD_SUCCESSFUL, TestSlave_Index1005_callbacks, TestSlave_Index1006_callbacks, TestSlave_Index1010_callbacks, TestSlave_Index1011_callbacks, TestSlave_Index1017_callbacks, and TestSlave_objdict. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS32 TestSlave_valueRangeTest (UNS8  typeValue,
void *  value 
)
+
+
+ +

+ +

+Definition at line 25 of file TestSlave.c. +

+

+


Variable Documentation

+ +
+
+ + + + +
UNS8 SlaveMap1 = 0x0
+
+
+ +

+ +

+Definition at line 9 of file TestSlave.c. +

+Referenced by OnMasterMap1Update(), and TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS32 SlaveMap10 = 0x0
+
+
+ +

+ +

+Definition at line 18 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS16 SlaveMap11 = 0x0
+
+
+ +

+ +

+Definition at line 19 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap2 = 0x0
+
+
+ +

+ +

+Definition at line 10 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap3 = 0x0
+
+
+ +

+ +

+Definition at line 11 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap4 = 0x0
+
+
+ +

+ +

+Definition at line 12 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap5 = 0x0
+
+
+ +

+ +

+Definition at line 13 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap6 = 0x0
+
+
+ +

+ +

+Definition at line 14 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap7 = 0x0
+
+
+ +

+ +

+Definition at line 15 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap8 = 0x0
+
+
+ +

+ +

+Definition at line 16 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap9 = 0x0
+
+
+ +

+ +

+Definition at line 17 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 TestSlave_bDeviceNodeId = 0x00
+
+
+ +

+ +

+Definition at line 36 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_count_sync[2] = {0,}
+
+
+ +

+ +

+Definition at line 387 of file TestSlave.c. +

+

+ +

+
+ + + + +
CO_Data TestSlave_Data = CANOPEN_NODE_DATA_INITIALIZER(TestSlave)
+
+
+ +

+ +

+Definition at line 409 of file TestSlave.c. +

+Referenced by InitNodes(), and main(). +

+

+ +

+
+ + + + +
quick_index TestSlave_firstIndex
+
+
+ +

+Initial value:

 {
+  8, 
+  0, 
+  0, 
+  0, 
+  9, 
+  11 
+}
+
+

+Definition at line 389 of file TestSlave.c. +

+

+ +

+
+ + + + +
TIMER_HANDLE TestSlave_heartBeatTimers[1]
+
+
+ +

+ +

+Definition at line 43 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1010 = 4
+
+
+ +

+ +

+Definition at line 90 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1011 = 4
+
+
+ +

+ +

+Definition at line 113 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1016 = 0
+
+
+ +

+ +

+Definition at line 136 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1018 = 4
+
+
+ +

+ +

+Definition at line 151 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1200 = 2
+
+
+ +

+ +

+Definition at line 166 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1800 = 5
+
+
+ +

+ +

+Definition at line 177 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1801 = 5
+
+
+ +

+ +

+Definition at line 194 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1A00 = 10
+
+
+ +

+ +

+Definition at line 211 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_highestSubIndex_obj1A01 = 1
+
+
+ +

+ +

+Definition at line 241 of file TestSlave.c. +

+

+ +

+
+ + + + +
const UNS8 TestSlave_iam_a_slave = 1
+
+
+ +

+ +

+Definition at line 41 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1000[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1000 }
+                     }
+
+

+Definition at line 55 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1001[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_obj1001 }
+                     }
+
+

+Definition at line 62 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1005[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1005 }
+                     }
+
+

+Definition at line 73 of file TestSlave.c. +

+

+ +

+
+ + + + +
ODCallback_t TestSlave_Index1005_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 69 of file TestSlave.c. +

+Referenced by TestSlave_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestSlave_Index1006[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1006 }
+                     }
+
+

+Definition at line 84 of file TestSlave.c. +

+

+ +

+
+ + + + +
ODCallback_t TestSlave_Index1006_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 80 of file TestSlave.c. +

+Referenced by TestSlave_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestSlave_Index1010[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1010 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_All_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Communication_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Application_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Manufacturer_Parameters }
+                     }
+
+

+Definition at line 103 of file TestSlave.c. +

+

+ +

+
+ + + + +
ODCallback_t TestSlave_Index1010_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                     }
+
+

+Definition at line 95 of file TestSlave.c. +

+Referenced by TestSlave_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestSlave_Index1011[]
+
+
+ +

+Initial value:

+

+Definition at line 126 of file TestSlave.c. +

+

+ +

+
+ + + + +
ODCallback_t TestSlave_Index1011_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                     }
+
+

+Definition at line 118 of file TestSlave.c. +

+Referenced by TestSlave_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestSlave_Index1017[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1017 }
+                     }
+
+

+Definition at line 145 of file TestSlave.c. +

+

+ +

+
+ + + + +
ODCallback_t TestSlave_Index1017_callbacks[]
+
+
+ +

+Initial value:

 
+                     {
+                       NULL,
+                     }
+
+

+Definition at line 141 of file TestSlave.c. +

+Referenced by TestSlave_scanIndexOD(). +

+

+ +

+
+ + + + +
subindex TestSlave_Index1018[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1018 },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Vendor_ID },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Product_Code },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Revision_Number },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1018_Serial_Number }
+                     }
+
+

+Definition at line 156 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1200[]
+
+
+ +

+Initial value:

+

+Definition at line 169 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1800[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1800 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1800_COB_ID_used_by_PDO },
+                       { RW|TO_BE_SAVE, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Transmission_Type },
+                       { RW|TO_BE_SAVE, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Inhibit_Time },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Compatibility_Entry },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Event_Timer }
+                     }
+
+

+Definition at line 183 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1801[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1801 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1801_COB_ID_used_by_PDO },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Transmission_Type },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Inhibit_Time },
+                       { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Compatibility_Entry },
+                       { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Event_Timer }
+                     }
+
+

+Definition at line 200 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1A00[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A00 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[0] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[1] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[2] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[3] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[4] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[5] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[6] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[7] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[8] },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[9] }
+                     }
+
+

+Definition at line 225 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index1A01[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A01 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A01[0] }
+                     }
+
+

+Definition at line 246 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2000[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap1 }
+                     }
+
+

+Definition at line 253 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2001[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap2 }
+                     }
+
+

+Definition at line 259 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2002[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap3 }
+                     }
+
+

+Definition at line 265 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2003[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap4 }
+                     }
+
+

+Definition at line 271 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2004[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap5 }
+                     }
+
+

+Definition at line 277 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2005[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap6 }
+                     }
+
+

+Definition at line 283 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2006[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap7 }
+                     }
+
+

+Definition at line 289 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2007[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, boolean, sizeof (UNS8), (void*)&SlaveMap8 }
+                     }
+
+

+Definition at line 295 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2008[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&SlaveMap9 }
+                     }
+
+

+Definition at line 301 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index2009[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint32, sizeof (UNS32), (void*)&SlaveMap10 }
+                     }
+
+

+Definition at line 307 of file TestSlave.c. +

+

+ +

+
+ + + + +
subindex TestSlave_Index200A[]
+
+
+ +

+Initial value:

 
+                     {
+                       { RW, uint16, sizeof (UNS16), (void*)&SlaveMap11 }
+                     }
+
+

+Definition at line 313 of file TestSlave.c. +

+

+ +

+
+ + + + +
quick_index TestSlave_lastIndex
+
+
+ +

+Initial value:

 {
+  8, 
+  0, 
+  0, 
+  0, 
+  10, 
+  12 
+}
+
+

+Definition at line 398 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1000 = 0x12D
+
+
+ +

+ +

+Definition at line 54 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_obj1001 = 0x0
+
+
+ +

+ +

+Definition at line 61 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1005 = 0x80
+
+
+ +

+ +

+Definition at line 68 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1006 = 0x0
+
+
+ +

+ +

+Definition at line 79 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1010_Save_All_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 91 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1010_Save_Application_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 93 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1010_Save_Communication_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 92 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1010_Save_Manufacturer_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 94 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1011_Restore_All_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 114 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1011_Restore_Application_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 116 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1011_Restore_Communication_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 115 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1011_Restore_Manufacturer_Default_Parameters = 0x0
+
+
+ +

+ +

+Definition at line 117 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1016[] = {0}
+
+
+ +

+ +

+Definition at line 137 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS16 TestSlave_obj1017 = 0x0
+
+
+ +

+ +

+Definition at line 140 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1018_Product_Code = 0x0
+
+
+ +

+ +

+Definition at line 153 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1018_Revision_Number = 0x0
+
+
+ +

+ +

+Definition at line 154 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1018_Serial_Number = 0x0
+
+
+ +

+ +

+Definition at line 155 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1018_Vendor_ID = 0x0
+
+
+ +

+ +

+Definition at line 152 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x601
+
+
+ +

+ +

+Definition at line 167 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x581
+
+
+ +

+ +

+Definition at line 168 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182
+
+
+ +

+ +

+Definition at line 178 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_obj1800_Compatibility_Entry = 0x0
+
+
+ +

+ +

+Definition at line 181 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS16 TestSlave_obj1800_Event_Timer = 0x0
+
+
+ +

+ +

+Definition at line 182 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS16 TestSlave_obj1800_Inhibit_Time = 0x0
+
+
+ +

+ +

+Definition at line 180 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_obj1800_Transmission_Type = 0x0
+
+
+ +

+ +

+Definition at line 179 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x0
+
+
+ +

+ +

+Definition at line 195 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_obj1801_Compatibility_Entry = 0x0
+
+
+ +

+ +

+Definition at line 198 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS16 TestSlave_obj1801_Event_Timer = 0x0
+
+
+ +

+ +

+Definition at line 199 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS16 TestSlave_obj1801_Inhibit_Time = 0x0
+
+
+ +

+ +

+Definition at line 197 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS8 TestSlave_obj1801_Transmission_Type = 0x0
+
+
+ +

+ +

+Definition at line 196 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1A00[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x20000001,       
+                      0x20010001,       
+                      0x20020001,       
+                      0x20030001,       
+                      0x20040001,       
+                      0x20050001,       
+                      0x20060001,       
+                      0x20070001,       
+                      0x20080008,       
+                      0x20090020        
+                    }
+
+

+Definition at line 212 of file TestSlave.c. +

+

+ +

+
+ + + + +
UNS32 TestSlave_obj1A01[]
+
+
+ +

+Initial value:

 
+                    {
+                      0x200A0010        
+                    }
+
+

+Definition at line 242 of file TestSlave.c. +

+

+ +

+
+ + + + +
const indextable TestSlave_objdict[]
+
+
+ +

+Initial value:

 
+{
+  { (subindex*)TestSlave_Index1000,sizeof(TestSlave_Index1000)/sizeof(TestSlave_Index1000[0]), 0x1000},
+  { (subindex*)TestSlave_Index1001,sizeof(TestSlave_Index1001)/sizeof(TestSlave_Index1001[0]), 0x1001},
+  { (subindex*)TestSlave_Index1005,sizeof(TestSlave_Index1005)/sizeof(TestSlave_Index1005[0]), 0x1005},
+  { (subindex*)TestSlave_Index1006,sizeof(TestSlave_Index1006)/sizeof(TestSlave_Index1006[0]), 0x1006},
+  { (subindex*)TestSlave_Index1010,sizeof(TestSlave_Index1010)/sizeof(TestSlave_Index1010[0]), 0x1010},
+  { (subindex*)TestSlave_Index1011,sizeof(TestSlave_Index1011)/sizeof(TestSlave_Index1011[0]), 0x1011},
+  { (subindex*)TestSlave_Index1017,sizeof(TestSlave_Index1017)/sizeof(TestSlave_Index1017[0]), 0x1017},
+  { (subindex*)TestSlave_Index1018,sizeof(TestSlave_Index1018)/sizeof(TestSlave_Index1018[0]), 0x1018},
+  { (subindex*)TestSlave_Index1200,sizeof(TestSlave_Index1200)/sizeof(TestSlave_Index1200[0]), 0x1200},
+  { (subindex*)TestSlave_Index1800,sizeof(TestSlave_Index1800)/sizeof(TestSlave_Index1800[0]), 0x1800},
+  { (subindex*)TestSlave_Index1801,sizeof(TestSlave_Index1801)/sizeof(TestSlave_Index1801[0]), 0x1801},
+  { (subindex*)TestSlave_Index1A00,sizeof(TestSlave_Index1A00)/sizeof(TestSlave_Index1A00[0]), 0x1A00},
+  { (subindex*)TestSlave_Index1A01,sizeof(TestSlave_Index1A01)/sizeof(TestSlave_Index1A01[0]), 0x1A01},
+  { (subindex*)TestSlave_Index2000,sizeof(TestSlave_Index2000)/sizeof(TestSlave_Index2000[0]), 0x2000},
+  { (subindex*)TestSlave_Index2001,sizeof(TestSlave_Index2001)/sizeof(TestSlave_Index2001[0]), 0x2001},
+  { (subindex*)TestSlave_Index2002,sizeof(TestSlave_Index2002)/sizeof(TestSlave_Index2002[0]), 0x2002},
+  { (subindex*)TestSlave_Index2003,sizeof(TestSlave_Index2003)/sizeof(TestSlave_Index2003[0]), 0x2003},
+  { (subindex*)TestSlave_Index2004,sizeof(TestSlave_Index2004)/sizeof(TestSlave_Index2004[0]), 0x2004},
+  { (subindex*)TestSlave_Index2005,sizeof(TestSlave_Index2005)/sizeof(TestSlave_Index2005[0]), 0x2005},
+  { (subindex*)TestSlave_Index2006,sizeof(TestSlave_Index2006)/sizeof(TestSlave_Index2006[0]), 0x2006},
+  { (subindex*)TestSlave_Index2007,sizeof(TestSlave_Index2007)/sizeof(TestSlave_Index2007[0]), 0x2007},
+  { (subindex*)TestSlave_Index2008,sizeof(TestSlave_Index2008)/sizeof(TestSlave_Index2008[0]), 0x2008},
+  { (subindex*)TestSlave_Index2009,sizeof(TestSlave_Index2009)/sizeof(TestSlave_Index2009[0]), 0x2009},
+  { (subindex*)TestSlave_Index200A,sizeof(TestSlave_Index200A)/sizeof(TestSlave_Index200A[0]), 0x200A},
+}
+
+

+Definition at line 318 of file TestSlave.c. +

+Referenced by TestSlave_scanIndexOD(). +

+

+ +

+
+ + + + +
UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0])
+
+
+ +

+ +

+Definition at line 407 of file TestSlave.c. +

+

+


Generated on Fri Jun 8 08:51:53 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $TestSlave_8h.html 338,299 436,323 +rect $data_8h.html 487,299 551,323 +rect $win32_2applicfg_8h.html 756,251 844,275 +rect $def_8h.html 772,32 828,56 +rect $can_8h.html 624,203 683,227 +rect $objdictdef_8h.html 603,155 704,179 +rect $objacces_8h.html 607,299 700,323 +rect $sdo_8h.html 624,251 683,275 +rect $pdo_8h.html 624,56 683,80 +rect $states_8h.html 616,395 691,419 +rect $lifegrd_8h.html 615,347 692,371 +rect $sync_8h.html 620,443 687,467 +rect $nmtMaster_8h.html 600,491 707,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +be0433d705d00a3b7d6a1c693ce2d4d5 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8c__incl.png Binary file doc/doxygen/html/TestSlave_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,51 @@ + + +CanFestival: examples/TestMasterSlave/TestSlave.h Source File + + + + +
+
+
+
+ +

TestSlave.h

Go to the documentation of this file.
00001 
+00002 /* File generated by gen_cfile.py. Should not be modified. */
+00003 
+00004 #include "data.h"
+00005 
+00006 /* Prototypes of function provided by object dictionnary */
+00007 UNS32 TestSlave_valueRangeTest (UNS8 typeValue, void * value);
+00008 const indextable * TestSlave_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks);
+00009 
+00010 /* Master node data struct */
+00011 extern CO_Data TestSlave_Data;
+00012 
+00013 extern ODCallback_t Store_parameters_callbacks[];               /* Callbacks of index0x1010 */
+00014 extern ODCallback_t Restore_Default_Parameters_callbacks[];             /* Callbacks of index0x1011 */
+00015 extern UNS8 SlaveMap1;          /* Mapped at index 0x2000, subindex 0x00*/
+00016 extern UNS8 SlaveMap2;          /* Mapped at index 0x2001, subindex 0x00*/
+00017 extern UNS8 SlaveMap3;          /* Mapped at index 0x2002, subindex 0x00*/
+00018 extern UNS8 SlaveMap4;          /* Mapped at index 0x2003, subindex 0x00*/
+00019 extern UNS8 SlaveMap5;          /* Mapped at index 0x2004, subindex 0x00*/
+00020 extern UNS8 SlaveMap6;          /* Mapped at index 0x2005, subindex 0x00*/
+00021 extern UNS8 SlaveMap7;          /* Mapped at index 0x2006, subindex 0x00*/
+00022 extern UNS8 SlaveMap8;          /* Mapped at index 0x2007, subindex 0x00*/
+00023 extern UNS8 SlaveMap9;          /* Mapped at index 0x2008, subindex 0x00*/
+00024 extern UNS32 SlaveMap10;                /* Mapped at index 0x2009, subindex 0x00*/
+00025 extern UNS16 SlaveMap11;                /* Mapped at index 0x200A, subindex 0x00*/
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,426 @@ + + +CanFestival: examples/TestMasterSlave/TestSlave.h File Reference + + + + +
+
+
+
+ +

TestSlave.h File Reference

#include "data.h"
+ +

+Include dependency graph for TestSlave.h:

+ + + + + + + + + + + + + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

UNS32 TestSlave_valueRangeTest (UNS8 typeValue, void *value)
const indextableTestSlave_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

Variables

CO_Data TestSlave_Data
ODCallback_t Store_parameters_callbacks []
ODCallback_t Restore_Default_Parameters_callbacks []
UNS8 SlaveMap1
UNS8 SlaveMap2
UNS8 SlaveMap3
UNS8 SlaveMap4
UNS8 SlaveMap5
UNS8 SlaveMap6
UNS8 SlaveMap7
UNS8 SlaveMap8
UNS8 SlaveMap9
UNS32 SlaveMap10
UNS16 SlaveMap11
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const indextable* TestSlave_scanIndexOD (UNS16  wIndex,
UNS32 *  errorCode,
ODCallback_t **  callbacks 
)
+
+
+ +

+ +

+Definition at line 346 of file TestSlave.c. +

+References OD_NO_SUCH_OBJECT, OD_SUCCESSFUL, TestSlave_Index1005_callbacks, TestSlave_Index1006_callbacks, TestSlave_Index1010_callbacks, TestSlave_Index1011_callbacks, TestSlave_Index1017_callbacks, and TestSlave_objdict. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS32 TestSlave_valueRangeTest (UNS8  typeValue,
void *  value 
)
+
+
+ +

+ +

+Definition at line 25 of file TestSlave.c. +

+

+


Variable Documentation

+ +
+
+ + + + +
ODCallback_t Restore_Default_Parameters_callbacks[]
+
+
+ +

+ +

+

+ +

+
+ + + + +
UNS8 SlaveMap1
+
+
+ +

+ +

+Definition at line 9 of file TestSlave.c. +

+Referenced by OnMasterMap1Update(), and TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS32 SlaveMap10
+
+
+ +

+ +

+Definition at line 18 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS16 SlaveMap11
+
+
+ +

+ +

+Definition at line 19 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap2
+
+
+ +

+ +

+Definition at line 10 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap3
+
+
+ +

+ +

+Definition at line 11 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap4
+
+
+ +

+ +

+Definition at line 12 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap5
+
+
+ +

+ +

+Definition at line 13 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap6
+
+
+ +

+ +

+Definition at line 14 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap7
+
+
+ +

+ +

+Definition at line 15 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap8
+
+
+ +

+ +

+Definition at line 16 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
UNS8 SlaveMap9
+
+
+ +

+ +

+Definition at line 17 of file TestSlave.c. +

+Referenced by TestSlave_post_sync(). +

+

+ +

+
+ + + + +
ODCallback_t Store_parameters_callbacks[]
+
+
+ +

+ +

+

+ +

+
+ + + + +
CO_Data TestSlave_Data
+
+
+ +

+ +

+Definition at line 409 of file TestSlave.c. +

+Referenced by InitNodes(), and main(). +

+

+


Generated on Fri Jun 8 08:51:53 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $Slave_8h.html 349,54 605,78 +rect $TestSlave_8c.html 337,102 617,126 +rect $Master_8c.html 700,6 961,30 +rect $Slave_8c.html 704,54 957,78 +rect $TestMasterSlave_8c.html 668,102 993,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +870b0cc04b15349c4e62b2dd7b6f6a2b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h__dep__incl.png Binary file doc/doxygen/html/TestSlave_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $data_8h.html 337,301 401,325 +rect $win32_2applicfg_8h.html 728,276 816,300 +rect $def_8h.html 612,13 668,37 +rect $can_8h.html 611,251 669,275 +rect $objdictdef_8h.html 453,152 555,176 +rect $objacces_8h.html 457,349 551,373 +rect $sdo_8h.html 475,397 533,421 +rect $pdo_8h.html 475,56 533,80 +rect $states_8h.html 467,104 541,128 +rect $lifegrd_8h.html 465,301 543,325 +rect $sync_8h.html 471,445 537,469 +rect $nmtMaster_8h.html 451,493 557,517 +rect $config_8h.html 735,13 809,37 +rect $timer_8h.html 605,400 675,424 +rect $win32_2timerscfg_8h.html 723,368 821,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/TestSlave_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8cdf2448474c6467f1c5ee3207f0ee65 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/TestSlave_8h__incl.png Binary file doc/doxygen/html/TestSlave_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/annotated.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/annotated.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,56 @@ + + +CanFestival: Data Structures + + + + +
+
+
+
+

CanFestival Data Structures

Here are the data structures with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BODY
can_baudparams_t
can_uvccm_win32
can_uvccm_win32::error
canBusFilterInit
canBusInit
canBusTime
canfilt_t
canmsg_t
CANPipe
CANPort
ccritical_section
class_timers
driver_data
driver_procs
Message
option
s_quick_index
s_state_communication
SHORT_CAN
struct_CO_Data
struct_s_BOARD
struct_s_PDO
struct_s_process_var
struct_s_SDO
struct_s_timer_entry
struct_s_transfer
t_pointerStack
td_indextable
td_subindex
+
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,445 @@ + + +CanFestival: examples/gene_SYNC_HCS12/appli.c Source File + + + + +
+
+
+
+ +

appli.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 // Uncomment if you don't need console informations.
+00024 #define DEBUG_WAR_CONSOLE_ON
+00025 #define DEBUG_ERR_CONSOLE_ON
+00026 
+00027 #include <stddef.h> /* for NULL */
+00028 
+00029 #include <asm-m68hc12/portsaccess.h>
+00030 #include <asm-m68hc12/ports_def.h>
+00031 #include <asm-m68hc12/ports.h>
+00032 #include  <interrupt.h>
+00033 
+00034 #include "../include/data.h"
+00035 #include <applicfg.h>
+00036 
+00037 
+00038 
+00039 #include "../include/hcs12/candriver.h"
+00040 #include "../include/hcs12/canOpenDriver.h"
+00041 #include "../include/def.h"
+00042 #include "../include/can.h"
+00043 #include "../include/objdictdef.h"
+00044 #include "../include/objacces.h"
+00045 #include "../include/sdo.h"
+00046 #include "../include/pdo.h"
+00047 #include "../include/timer.h"
+00048 #include "../include/lifegrd.h"
+00049 #include "../include/sync.h"
+00050 
+00051 #include "../include/nmtSlave.h"
+00052 
+00053 // File created by the GUI 
+00054 #include "objdict.h"
+00055 
+00056 
+00057 
+00058 
+00059 
+00060 // HCS12 configuration
+00061 // -----------------------------------------------------
+00062 
+00063 enum E_CanBaudrate 
+00064 {
+00065    CAN_BAUDRATE_250K,
+00066    CAN_BAUDRATE_500K,
+00067    CAN_BAUDRATE_1M,
+00068 };
+00069 
+00070 
+00071 const canBusTime CAN_Baudrates[] =
+00072 {
+00073    {
+00074       1,  /* clksrc: Use the bus clock : 16 MHz, the freq. of the quartz's board        */
+00075       3,  /* brp :  chose btw 0 and 63 (6 bits).  freq time quantum = 16MHz / (brp + 1) */
+00076       0,  /* sjw : chose btw 0 and 3 (2 bits). Sync on (sjw + 1 ) time quantum          */
+00077       0,  /* samp : chose btw 0 and 3 (2 bits) (samp + 1 ) samples per bit              */
+00078       1,  /* tseg2 : chose btw 0 and 7 (3 bits) Segment 2 width = (tseg2 + 1)  tq       */
+00079      12,  /* tseg1 : chose btw 0 and 15 (4 bits) Segment 1 width = (tseg1 + 1)  tq      */
+00080 
+00081       /*
+00082       With these values, 
+00083       - The width of the bit time is 16 time quantum :
+00084           - 1 tq for the SYNC segment (could not be modified)
+00085           - 13 tq for the TIME 1 segment (tseg1 = 12)
+00086           - 2 tq for the TIME 2 segment (tseg2 = 1)
+00087       - Because the bus clock of the MSCAN is 16 MHZ, and the 
+00088         freq of the time quantum is 4 MHZ (brp = 3+1), and  there are 16 tq in the bit time,
+00089         so the freq of the bit time is 250 kHz.
+00090       */
+00091    },
+00092 
+00093    {
+00094       1,  /* clksrc: Use the bus clock : 16 MHz, the freq. of the quartz's board        */
+00095       1,  /* brp :  chose btw 0 and 63 (6 bits).  freq time quantum = 16MHz / (brp + 1) */
+00096       0,  /* sjw : chose btw 0 and 3 (2 bits). Sync on (sjw + 1 ) time quantum          */
+00097       0,  /* samp : chose btw 0 and 3 (2 bits) (samp + 1 ) samples per bit              */
+00098       1,  /* tseg2 : chose btw 0 and 7 (3 bits) Segment 2 width = (tseg2 + 1)  tq       */
+00099      12,  /* tseg1 : chose btw 0 and 15 (4 bits) Segment 1 width = (tseg1 + 1)  tq      */
+00100 
+00101       /*
+00102       With these values, 
+00103       - The width of the bit time is 16 time quantum :
+00104           - 1 tq for the SYNC segment (could not be modified)
+00105           - 13 tq for the TIME 1 segment (tseg1 = 12)
+00106           - 2 tq for the TIME 2 segment (tseg2 = 1)
+00107       - Because the bus clock of the MSCAN is 16 MHZ, and the 
+00108         freq of the time quantum is 8 MHZ (brp = 1+1), and  there are 16 tq in the bit time,
+00109         so the freq of the bit time is 500 kHz.
+00110       */
+00111     },
+00112 
+00113         {
+00114       1,  /* clksrc: Use the bus clock : 16 MHz, the freq. of the quartz's board        */
+00115       1,  /* brp :  chose btw 0 and 63 (6 bits).  freq time quantum = 16MHz / (brp + 1) */
+00116       0,  /* sjw : chose btw 0 and 3 (2 bits). Sync on (sjw + 1 ) time quantum          */
+00117       0,  /* samp : chose btw 0 and 3 (2 bits) (samp +MSG_WAR(0x3F33, "Je suis le noeud ", getNodeId());    1 ) samples per bit              */
+00118       1,  /* tseg2 : chose btw 0 and 7 (3 bits) Segment 2 width = (tseg2 + 1)  tq       */
+00119       4,  /* tseg1 : chose btw 0 and 15 (4 bits) Segment 1 width = (tseg1 + 1)  tq      */
+00120 
+00121       /*
+00122       With these values, 
+00123       - The width of the bit time is 16 time quantum :
+00124           - 1 tq for the SYNC segment (could not be modified)
+00125           - 5 tq for the TIME 1 segment (tseg1 = 4)
+00126           - 2 tq for the TIME 2 segment (tseg2 = 1)
+00127       - Because the bus clock of the MSCAN is 16 MHZ, and the 
+00128         freq of the time quantum is 8 MHZ (brp = 1+1), and  there are 8 tq in the bit time,
+00129         so the freq of the bit time is 1 MHz.
+00130       */
+00131     }
+00132 };
+00133 
+00134 
+00135 
+00136 
+00137 /**************************prototypes*****************************************/
+00138 
+00139 //Init can bus and Canopen
+00140 void initCanopencapteur (void);
+00141 // Init the sensor
+00142 void initSensor(void);
+00143 void initPortB(void);
+00144 void initPortH(void);
+00145 
+00146 
+00147 //------------------------------------------------------------------------------
+00148 //Initialisation of the port B for the leds.
+00149 void initPortB(void)
+00150 {
+00151   // Port B is output
+00152   IO_PORTS_8(DDRB)= 0XFF;
+00153   // RAZ
+00154   IO_PORTS_8(PORTB) = 0xFF;
+00155 }
+00156 
+00157 //------------------------------------------------------------------------------
+00158 // Init of port H to choose the CAN rate by switch, and the nodeId
+00159 void initPortH(void)
+00160 {
+00161   // Port H is input
+00162   IO_PORTS_8(DDRH)= 0X00;
+00163   // Enable pull device
+00164   IO_PORTS_8(PERH) = 0XFF;
+00165   // Choose the pull-up device
+00166   IO_PORTS_8(PPSH) = 0X00;
+00167 }
+00168 
+00169 //------------------------------------------------------------------------------
+00170 void initSensor(void)
+00171 { 
+00172   UNS8 baudrate = 0; 
+00173   UNS8 nodeId = 0; 
+00174   // Init led control
+00175   initPortB(); 
+00176   IO_PORTS_8(PORTB) &= ~ 0x01; //One led ON
+00177   initPortH();
+00178   
+00179     /* Defining the node Id */
+00180   // Uncomment to have a fixed nodeId
+00181   //setNodeId(&gene_SYNC_Data, 0x03);
+00182   
+00183   // Comment below to have a fixed nodeId
+00184   nodeId = ~(IO_PORTS_8(PTH)) & 0x3F;
+00185   if (nodeId == 0) {
+00186         MSG_WAR(0x3F33, "Using default nodeId :  ", getNodeId(&gene_SYNC_Data));
+00187   }
+00188   else  
+00189     setNodeId(&gene_SYNC_Data, nodeId);
+00190   
+00191   MSG_WAR(0x3F33, "My nodeId is :  ", getNodeId(&gene_SYNC_Data));
+00192   
+00193   canBusInit bi0 = {
+00194     0,    /* no low power                 */ 
+00195     0,    /* no time stamp                */
+00196     1,    /* enable MSCAN                 */
+00197     0,    /* clock source : oscillator (In fact, it is not used)   */
+00198     0,    /* no loop back                 */
+00199     0,    /* no listen only               */
+00200     0,    /* no low pass filter for wk up */
+00201         CAN_Baudrates[CAN_BAUDRATE_250K],
+00202     {
+00203       0x00,    /* Filter on 16 bits. See Motorola Block Guide V02.14 fig 4-3 */
+00204       0x00, 0xFF, /* filter 0 hight accept all msg      */
+00205       0x00, 0xFF, /* filter 0 low accept all msg        */
+00206       0x00, 0xFF, /* filter 1 hight filter all of  msg  */
+00207       0x00, 0xFF, /* filter 1 low filter all of  msg    */
+00208       0x00, 0xFF, /* filter 2 hight filter most of  msg */
+00209       0x00, 0xFF, /* filter 2 low filter most of  msg   */
+00210       0x00, 0xFF, /* filter 3 hight filter most of  msg */
+00211       0x00, 0xFF, /* filter 3 low filter most of  msg   */
+00212     }
+00213   };
+00214   
+00215   //Init the HCS12 microcontroler for CanOpen 
+00216   initHCS12();
+00217    
+00218   // Chose the CAN rate (On our board, whe have switch for all purpose)
+00219   //  7    8
+00220   //  ON   ON   => 1000 kpbs
+00221   //  OFF  ON   =>  500 kpbs
+00222   //  ON   OFF  =>  250 kpbs
+00223   
+00224   baudrate = ~(IO_PORTS_8(PTH)) & 0xC0;
+00225   
+00226   // Uncomment to have a fixed baudrate of 250 kbps
+00227   //baudrate = 1;
+00228   
+00229   switch (baudrate) {
+00230   case 0x40:
+00231     bi0.clk = CAN_Baudrates[CAN_BAUDRATE_250K];
+00232     MSG_WAR(0x3F30, "CAN 250 kbps ", 0);
+00233     break;
+00234   case 0x80:
+00235     bi0.clk = CAN_Baudrates[CAN_BAUDRATE_500K];
+00236     MSG_WAR(0x3F31, "CAN 500 kbps ", 0);
+00237     break;
+00238   case 0xC0:
+00239     bi0.clk = CAN_Baudrates[CAN_BAUDRATE_1M];
+00240     MSG_WAR(0x3F31, "CAN 1000 kbps ", 0);
+00241     break;   
+00242   default:
+00243     bi0.clk = CAN_Baudrates[CAN_BAUDRATE_250K];
+00244     MSG_WAR(0x2F32, "CAN BAUD RATE NOT DEFINED => 250 kbps ", 0);
+00245   }
+00246 
+00247    
+00248 
+00249   MSG_WAR(0x3F33, "SYNC signal generator ", 0);
+00250 
+00251   canInit(CANOPEN_LINE_NUMBER_USED, bi0);  //initialize filters...
+00252   initTimer(); // Init hcs12 timer used by CanFestival. (see timerhw.c)
+00253   unlock(); // Allow interruptions  
+00254 }
+00255 
+00256 
+00257 
+00258 
+00259 
+00260 
+00261 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00262 // FUNCTIONS WHICH ARE PART OF CANFESTIVAL and *must* be implemented here.
+00263 
+00264 //------------------------------------------------------------------------------
+00265 void gene_SYNC_heartbeatError( UNS8 heartbeatID )
+00266 {
+00267   
+00268   MSG_ERR(0x1F00, "HeartBeat not received from node : ", heartbeatID);
+00269 }
+00270 
+00271 //------------------------------------------------------------------------------
+00272 void gene_SYNC_initialisation()
+00273 {  
+00274   MSG_WAR (0x3F00, "Entering in INIT ", 0); 
+00275   initSensor();  
+00276 
+00277   IO_PORTS_8(PORTB) &= ~ 0x01; // led  0         : ON
+00278   IO_PORTS_8(PORTB) |=   0x0E; // leds 1, 2, 3   : OFF
+00279   
+00280 }
+00281 
+00282 
+00283 //------------------------------------------------------------------------------
+00284 void gene_SYNC_preOperational()
+00285 {
+00286   MSG_WAR (0x3F01, "Entering in PRE-OPERATIONAL ", 0); 
+00287   IO_PORTS_8(PORTB) &= ~ 0x03; // leds 0, 1      : ON
+00288   IO_PORTS_8(PORTB) |=   0x0C; // leds 2, 3      : OFF
+00289     /* default values for the msg CAN filters */
+00290   /* Accept all */
+00291     {
+00292           canBusFilterInit filterConfiguration = 
+00293           {
+00294           0x01,  /* Filter on 16 bits. See Motorola Block Guide V02.14 */
+00295       /*canidarx, canidmrx */                        
+00296       0x00, 0xFF,          /* filter 0 */
+00297       0x00, 0xFF,                  /* filter 0 */
+00298       0x00, 0xFF,          /* filter 1 */
+00299       0x00, 0xFF,                  /* filter 1 */
+00300       0x00, 0xFF,          /* filter 2 */
+00301       0x00, 0xFF,                  /* filter 2 */
+00302       0x00, 0xFF,          /* filter 3 */
+00303       0x00, 0xFF,              /* filter 3 */
+00304          };
+00305          canChangeFilter(CANOPEN_LINE_NUMBER_USED, filterConfiguration);
+00306    } 
+00307    // Reset the automatic change by SDO
+00308    applyDownloadedFilters = 0;
+00309    
+00310 }
+00311 
+00312 
+00313 //------------------------------------------------------------------------------
+00314 void gene_SYNC_operational()
+00315 { 
+00316    MSG_WAR (0x3F02, "Entering in OPERATIONAL ", 0); 
+00317    IO_PORTS_8(PORTB) &= ~ 0x07; // leds 0, 1, 2   : ON
+00318    IO_PORTS_8(PORTB) |=   0x08; // leds 3         : OFF
+00319    
+00320    // Filtering the CAN received msgs.
+00321    // 2 ways
+00322    // First :applying an automatic filter
+00323    // Second : The values of the filtering registers are mapped in the object dictionary,
+00324    // So that a filtering configuration can be downloaded by SDO in pre-operational mode
+00325         
+00326         if (applyDownloadedFilters == 0) {// No downloaded configuration to apply
+00327                 UNS16 accept1 = 0x0000; // Accept NMT
+00328                 UNS16 mask1 = 0x0FFF;   // Mask NMT
+00329                 UNS16 accept2 = 0xE000; // Accept NMT error control (heartbeat, nodeguard)
+00330                 UNS16 mask2 = 0x0FFF;   // Mask NMT error control (heartbeat, nodeguard)
+00331                 
+00332                 canBusFilterInit filterConfiguration = 
+00333                                 {// filters 3 and 4 not used, so configured like filter 1.
+00334                         0x01,  /* Filter on 16 bits. See Motorola Block Guide V02.14 */
+00335             /*canidarx, canidmrx */                        
+00336                 (UNS8)(accept1 >> 8), (UNS8)(mask1 >> 8),    /* filter 1 id10...3*/
+00337                 (UNS8)accept1       , (UNS8)mask1,                     /* filter 1 id2 ... */
+00338                 (UNS8)(accept2 >> 8), (UNS8)(mask2 >> 8),    /* filter 2 id10...3*/
+00339                 (UNS8)accept2       , (UNS8)mask2,                     /* filter 2 id2 ... */
+00340                 (UNS8)(accept1 >> 8), (UNS8)(mask1 >> 8),    /* filter 3 id10...3*/
+00341                 (UNS8)accept1       , (UNS8)mask1,                     /* filter 3 id2 ... */
+00342                 (UNS8)(accept1 >> 8), (UNS8)(mask1 >> 8),    /* filter 4 id10...3*/
+00343                 (UNS8)accept1       , (UNS8)mask1                      /* filter 4 id2 ... */           
+00344                         };
+00345                         canChangeFilter(CANOPEN_LINE_NUMBER_USED, filterConfiguration);
+00346                         MSG_WAR (0x3F03, "Internal CAN Rcv filter applied ", 0); 
+00347         } 
+00348           else { // Apply filters downnloaded
+00349                         canBusFilterInit filterConfiguration = 
+00350                                 {// filters 3 and 4 not used, so configured like filter 1.
+00351                         0x01,  /* Filter on 16 bits. See Motorola Block Guide V02.14 */
+00352             /*canidarx, canidmrx */                        
+00353                 (UNS8)( acceptanceFilter1>> 8), (UNS8)(mask1 >> 8),    /* filter 1 id10...3*/
+00354                 (UNS8)acceptanceFilter1       , (UNS8)mask1,                   /* filter 1 id2 ... */
+00355                 (UNS8)(acceptanceFilter2 >> 8), (UNS8)(mask2 >> 8),     /* filter 2 id10...3*/
+00356                 (UNS8)acceptanceFilter2       , (UNS8)mask2,                   /* filter 2 id2 ... */
+00357                 (UNS8)(acceptanceFilter3 >> 8), (UNS8)(mask3 >> 8),    /* filter 3 id10...3*/
+00358                 (UNS8)acceptanceFilter3       , (UNS8)mask3,                   /* filter 3 id2 ... */
+00359                 (UNS8)(acceptanceFilter4 >> 8), (UNS8)(mask4 >> 8),    /* filter 4 id10...3*/
+00360                 (UNS8)acceptanceFilter4       , (UNS8)mask4                    /* filter 4 id2 ... */           
+00361                         };
+00362                         canChangeFilter(CANOPEN_LINE_NUMBER_USED, filterConfiguration);                 
+00363                         MSG_WAR (0x3F04, "Downloaded CAN Rcv filter applied ", 0); 
+00364         }
+00365 }
+00366 
+00367 //------------------------------------------------------------------------------
+00368 void gene_SYNC_stopped()
+00369 {
+00370   MSG_WAR (0x3F02, "Entering in STOPPED ", 0); 
+00371   IO_PORTS_8(PORTB) |=   0x0E; // leds 1, 2, 3, 4   : OFF
+00372 }
+00373 
+00374 // End functions which are part of Canfestival
+00375 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+00376 
+00377 
+00378 /******************************************************************************/
+00379 /********************************* MAIN ***************************************/
+00380 /******************************************************************************/
+00381 
+00382  
+00383 UNS8 main (void)
+00384 {
+00385 
+00386   MSG_WAR(0x3F34, "Entering in the main ", 0);
+00387   //----------------------------- INITIALISATION --------------------------------
+00388   gene_SYNC_Data.heartbeatError = gene_SYNC_heartbeatError;
+00389   gene_SYNC_Data.initialisation = gene_SYNC_initialisation;
+00390   gene_SYNC_Data.preOperational = gene_SYNC_preOperational;
+00391   gene_SYNC_Data.preOperational = gene_SYNC_operational;
+00392   gene_SYNC_Data.stopped = gene_SYNC_stopped;
+00393 
+00394   
+00395   /* Put the node in Initialisation mode */
+00396   MSG_WAR(0x3F35, "Will entering in INIT ", 0);
+00397   setState(&gene_SYNC_Data, Initialisation);
+00398 
+00399   //----------------------------- START -----------------------------------------
+00400   /* Put the node in pre-operational mode */
+00401   //MSG_WAR(0x3F36, "va passer en pre-op", 0);
+00402   //setState(&gene_SYNC_Data, Pre_operational);
+00403 
+00404         // Loop of receiving messages
+00405   while (1) {
+00406         Message m;
+00407         if (f_can_receive(0, &m)) {
+00408           //MSG_WAR(0x3F36, "Msg received", m.cob_id.w);
+00409           lock(); // Not to have interruptions by timer, which can corrupt the data
+00410           canDispatch(&gene_SYNC_Data, &m);
+00411           unlock();
+00412         }  
+00413         }
+00414 
+00415   return (0); 
+00416 }
+00417 
+00418 
+00419 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,517 @@ + + +CanFestival: examples/gene_SYNC_HCS12/appli.c File Reference + + + + +
+
+
+
+ +

appli.c File Reference

#include <stddef.h>
+#include <asm-m68hc12/portsaccess.h>
+#include <asm-m68hc12/ports_def.h>
+#include <asm-m68hc12/ports.h>
+#include <interrupt.h>
+#include "../include/data.h"
+#include <applicfg.h>
+#include "../include/hcs12/candriver.h"
+#include "../include/hcs12/canOpenDriver.h"
+#include "../include/def.h"
+#include "../include/can.h"
+#include "../include/objdictdef.h"
+#include "../include/objacces.h"
+#include "../include/sdo.h"
+#include "../include/pdo.h"
+#include "../include/timer.h"
+#include "../include/lifegrd.h"
+#include "../include/sync.h"
+#include "../include/nmtSlave.h"
+#include "objdict.h"
+ +

+Include dependency graph for appli.c:

+ + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Defines

#define DEBUG_WAR_CONSOLE_ON
#define DEBUG_ERR_CONSOLE_ON

Enumerations

enum  E_CanBaudrate { CAN_BAUDRATE_250K, +CAN_BAUDRATE_500K, +CAN_BAUDRATE_1M + }

Functions

void initCanopencapteur (void)
void initSensor (void)
void initPortB (void)
void initPortH (void)
void gene_SYNC_heartbeatError (UNS8 heartbeatID)
void gene_SYNC_initialisation ()
void gene_SYNC_preOperational ()
void gene_SYNC_operational ()
void gene_SYNC_stopped ()
UNS8 main (void)

Variables

const canBusTime CAN_Baudrates []
+


Define Documentation

+ +
+
+ + + + +
#define DEBUG_ERR_CONSOLE_ON
+
+
+ +

+ +

+Definition at line 25 of file appli.c. +

+

+ +

+
+ + + + +
#define DEBUG_WAR_CONSOLE_ON
+
+
+ +

+ +

+Definition at line 24 of file appli.c. +

+

+


Enumeration Type Documentation

+ +
+
+ + + + +
enum E_CanBaudrate
+
+
+ +

+

Enumerator:
+ + + + +
CAN_BAUDRATE_250K  +
CAN_BAUDRATE_500K  +
CAN_BAUDRATE_1M  +
+
+ +

+Definition at line 63 of file appli.c. +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
void gene_SYNC_heartbeatError (UNS8  heartbeatID  ) 
+
+
+ +

+ +

+Definition at line 265 of file appli.c. +

+References MSG_ERR. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void gene_SYNC_initialisation (void   ) 
+
+
+ +

+ +

+Definition at line 272 of file appli.c. +

+References initSensor(), IO_PORTS_8, MSG_WAR, and PORTB. +

+Referenced by main(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void gene_SYNC_operational (void   ) 
+
+
+ +

+ +

+Definition at line 314 of file appli.c. +

+References acceptanceFilter1, acceptanceFilter2, acceptanceFilter3, acceptanceFilter4, applyDownloadedFilters, canChangeFilter(), CANOPEN_LINE_NUMBER_USED, IO_PORTS_8, mask1, mask2, mask3, mask4, MSG_WAR, PORTB, UNS16, and UNS8. +

+Referenced by main(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void gene_SYNC_preOperational (void   ) 
+
+
+ +

+ +

+Definition at line 284 of file appli.c. +

+References applyDownloadedFilters, canChangeFilter(), CANOPEN_LINE_NUMBER_USED, IO_PORTS_8, MSG_WAR, and PORTB. +

+Referenced by main(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void gene_SYNC_stopped (void   ) 
+
+
+ +

+ +

+Definition at line 368 of file appli.c. +

+References IO_PORTS_8, MSG_WAR, and PORTB. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
void initCanopencapteur (void   ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
void initPortB (void   ) 
+
+
+ +

+ +

+Definition at line 149 of file appli.c. +

+References DDRB, IO_PORTS_8, and PORTB. +

+Referenced by initSensor(). +

+

+ +

+
+ + + + + + + + + +
void initPortH (void   ) 
+
+
+ +

+ +

+Definition at line 159 of file appli.c. +

+References DDRH, IO_PORTS_8, PERH, and PPSH. +

+Referenced by initSensor(). +

+

+ +

+
+ + + + + + + + + +
void initSensor (void   ) 
+
+
+ +

+ +

+Definition at line 170 of file appli.c. +

+References CAN_BAUDRATE_1M, CAN_BAUDRATE_250K, CAN_BAUDRATE_500K, CAN_Baudrates, canInit(), CANOPEN_LINE_NUMBER_USED, canBusInit::clk, gene_SYNC_Data, getNodeId(), initHCS12(), initPortB(), initPortH(), initTimer(), IO_PORTS_8, MSG_WAR, PORTB, PTH, setNodeId(), unlock(), and UNS8. +

+Referenced by gene_SYNC_initialisation(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
UNS8 main (void   ) 
+
+
+ +

+ +

+Definition at line 383 of file appli.c. +

+References canDispatch(), f_can_receive(), gene_SYNC_Data, gene_SYNC_heartbeatError(), gene_SYNC_initialisation(), gene_SYNC_operational(), gene_SYNC_preOperational(), gene_SYNC_stopped(), struct_CO_Data::heartbeatError, Initialisation, struct_CO_Data::initialisation, lock(), MSG_WAR, struct_CO_Data::preOperational, setState(), struct_CO_Data::stopped, and unlock(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + + + + + + + + + + +
+

+


Variable Documentation

+ +
+
+ + + + +
const canBusTime CAN_Baudrates[]
+
+
+ +

+ +

+Definition at line 71 of file appli.c. +

+Referenced by initSensor(). +

+

+


Generated on Fri Jun 8 08:51:46 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_5249682c125c7e4ad9583bf63c20b5fa_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_5249682c125c7e4ad9583bf63c20b5fa_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,13 @@ +base referer +rect $appli_8c.html#ff8c2bab7ede63d3529f62b4fa3aca8c 243,174 333,198 +rect $can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57 395,6 461,30 +rect $states_8c.html#3020f2e5762f6e389a21382ec827b6a6 383,54 473,78 +rect $canOpenDriver_8c.html#c71399958d35a7f703416f025603ee26 384,102 472,126 +rect $appli_8c.html#c17a18fa3b7965bf6e850effaba7179a 388,150 468,174 +rect $appli_8c.html#b7c33a91e5101b8d7371482fcfd6111d 388,198 468,222 +rect $canOpenDriver_8c.html#02922529b60419a94afe8f369dda070b 387,246 469,270 +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 383,294 473,318 +rect $interrupt_8c.html#987ce601d6d4c8eedd68b58db3b7811a 395,342 461,366 +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 524,6 681,30 +rect $canOpenDriver_8c.html#51e71c727eb7a49e2fde962a3d190a6b 569,102 636,126 +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 564,342 641,366 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_5249682c125c7e4ad9583bf63c20b5fa_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_5249682c125c7e4ad9583bf63c20b5fa_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eed662c703e4c65a37eba8b54fd71ae4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_5249682c125c7e4ad9583bf63c20b5fa_cgraph.png Binary file doc/doxygen/html/appli_8c_5249682c125c7e4ad9583bf63c20b5fa_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_688e52d5ec8da35ad5c61b4337df495d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_688e52d5ec8da35ad5c61b4337df495d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $canOpenDriver_8c.html#751a41c9747b96ab400b5599370cea83 239,152 370,176 +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 435,5 536,29 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 610,104 740,128 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 434,104 538,128 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 428,152 543,176 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 422,200 550,224 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 426,296 546,320 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 420,248 551,272 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 602,272 748,296 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_688e52d5ec8da35ad5c61b4337df495d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_688e52d5ec8da35ad5c61b4337df495d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +043b00f6839442aa3685c7bbfcba511c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_688e52d5ec8da35ad5c61b4337df495d_cgraph.png Binary file doc/doxygen/html/appli_8c_688e52d5ec8da35ad5c61b4337df495d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,7 @@ +base referer +rect $portsaccess_8h.html 342,53 558,77 +rect $ports__def_8h.html 623,128 820,152 +rect $ports_8h.html 364,152 535,176 +rect $interrupt_8h.html 403,200 496,224 +rect $win32_2applicfg_8h.html 406,296 494,320 +rect $objdict_8h.html 410,920 490,944 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +ae5b76d1677e686c48c9e97268d76f7a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c__incl.png Binary file doc/doxygen/html/appli_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ccd49c1b2614c38aeac93733ede6cd91_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_ccd49c1b2614c38aeac93733ede6cd91_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $canOpenDriver_8c.html#751a41c9747b96ab400b5599370cea83 263,152 394,176 +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 459,5 560,29 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 634,104 764,128 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 458,104 562,128 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 452,152 567,176 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 446,200 574,224 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 450,296 570,320 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 444,248 575,272 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 626,272 772,296 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ccd49c1b2614c38aeac93733ede6cd91_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_ccd49c1b2614c38aeac93733ede6cd91_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7939b39099479462cdb3fa89e358295e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ccd49c1b2614c38aeac93733ede6cd91_cgraph.png Binary file doc/doxygen/html/appli_8c_ccd49c1b2614c38aeac93733ede6cd91_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ef83014be811ae964a5ef7f0af7b46a2_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_ef83014be811ae964a5ef7f0af7b46a2_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,19 @@ +base referer +rect $states_8c.html#3f8975650604cc23582f19a43fd4e518 162,125 266,149 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 607,127 684,151 +rect $canOpenDriver_8c.html#0bf58f014d47581c9ffd1b2db9a858d7 156,296 271,320 +rect $appli_8c.html#07f58b5c2d6a07142f3e6e695798646b 112,344 315,368 +rect $appli_8c.html#5249682c125c7e4ad9583bf63c20b5fa 120,392 307,416 +rect $interrupt_8c.html#987ce601d6d4c8eedd68b58db3b7811a 612,441 679,465 +rect $appli_8c.html#688e52d5ec8da35ad5c61b4337df495d 123,491 304,515 +rect $appli_8c.html#ccd49c1b2614c38aeac93733ede6cd91 111,539 316,563 +rect $appli_8c.html#00e6a6d0f2186f329263023a7f1de155 134,587 294,611 +rect $interrupt_8c.html#eb99ff49b4a6d5157416f9b5bd0d9c2c 622,563 670,587 +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 367,5 556,29 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 376,53 547,77 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 410,101 514,125 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 408,149 515,173 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 406,197 518,221 +rect $appli_8c.html#ff8c2bab7ede63d3529f62b4fa3aca8c 416,392 507,416 +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 735,503 812,527 +rect $canOpenDriver_8c.html#751a41c9747b96ab400b5599370cea83 396,515 527,539 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ef83014be811ae964a5ef7f0af7b46a2_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_ef83014be811ae964a5ef7f0af7b46a2_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7b8f6407540e3b20bed5d5e3466a4f8f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ef83014be811ae964a5ef7f0af7b46a2_cgraph.png Binary file doc/doxygen/html/appli_8c_ef83014be811ae964a5ef7f0af7b46a2_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ff8c2bab7ede63d3529f62b4fa3aca8c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_ff8c2bab7ede63d3529f62b4fa3aca8c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,12 @@ +base referer +rect $can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57 158,6 224,30 +rect $states_8c.html#3020f2e5762f6e389a21382ec827b6a6 146,54 236,78 +rect $canOpenDriver_8c.html#c71399958d35a7f703416f025603ee26 147,102 235,126 +rect $appli_8c.html#c17a18fa3b7965bf6e850effaba7179a 151,150 231,174 +rect $appli_8c.html#b7c33a91e5101b8d7371482fcfd6111d 151,198 231,222 +rect $canOpenDriver_8c.html#02922529b60419a94afe8f369dda070b 150,246 232,270 +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 146,294 236,318 +rect $interrupt_8c.html#987ce601d6d4c8eedd68b58db3b7811a 158,342 224,366 +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 287,6 444,30 +rect $canOpenDriver_8c.html#51e71c727eb7a49e2fde962a3d190a6b 332,102 399,126 +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 327,342 404,366 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ff8c2bab7ede63d3529f62b4fa3aca8c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/appli_8c_ff8c2bab7ede63d3529f62b4fa3aca8c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +cf6b47f89516ad0e65e64f4fe3253339 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/appli_8c_ff8c2bab7ede63d3529f62b4fa3aca8c_cgraph.png Binary file doc/doxygen/html/appli_8c_ff8c2bab7ede63d3529f62b4fa3aca8c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,738 @@ + + +CanFestival: drivers/hcs12/canOpenDriver.c Source File + + + + +
+
+
+
+ +

canOpenDriver.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #define DEBUG_WAR_CONSOLE_ON
+00024 #define DEBUG_ERR_CONSOLE_ON
+00025 
+00026 #include <stddef.h> /* for NULL */
+00027 
+00028 #include "../include/hcs12/asm-m68hc12/portsaccess.h"
+00029 #include "../include/hcs12/asm-m68hc12/ports_def.h"
+00030 #include "../include/hcs12/asm-m68hc12/ports.h"
+00031 #include "../include/data.h"
+00032 #include "../include/hcs12/applicfg.h"
+00033 #include "../include/hcs12/candriver.h"
+00034 #include "../include/hcs12/interrupt.h"
+00035 #include "../include/hcs12/canOpenDriver.h"
+00036 #include "../include/can.h"
+00037 #include "../include/objdictdef.h"
+00038 #include "../include/timer.h"
+00039 
+00040 
+00041 
+00042 
+00043 
+00044 
+00045 volatile static Message stackMsgRcv[NB_LINE_CAN][MAX_STACK_MSG_RCV]; 
+00046 volatile static t_pointerStack ptrMsgRcv[NB_LINE_CAN];
+00047  
+00048 volatile static TIMEVAL last_time_set = TIMEVAL_MAX;
+00049 static UNS8 timer_is_set = 0;
+00050 
+00051 /* Prototypes */
+00052 UNS8 f_can_receive(UNS8 notused, Message *m);
+00053 UNS8 canSend(UNS8 notused, Message *m);
+00054 void __attribute__((interrupt)) timer4Hdl (void);
+00055 
+00056 #define max(a,b) a>b?a:b
+00057 
+00058 /******************************************************************************/
+00059 void setTimer(TIMEVAL value)
+00060 {
+00061   IO_PORTS_16(TC4H) += value;
+00062   timer_is_set = 1; 
+00063 }
+00064 
+00065 /******************************************************************************/
+00066 TIMEVAL getElapsedTime()
+00067 {
+00068   return (IO_PORTS_16(TC4H) > last_time_set ? IO_PORTS_16(TC4H) - last_time_set : last_time_set - IO_PORTS_16(TC4H));
+00069 }
+00070 
+00071 
+00072 /******************************************************************************/
+00073 void resetTimer(void)
+00074 {
+00075 
+00076 }
+00077 
+00078 /******************************************************************************/
+00079 void initTimer(void)
+00080 {
+00081   lock();   // Inhibition of interruptions
+00082  
+00083   // Configure the timer channel 4
+00084   IO_PORTS_8(TIOS) |= 0x10; // Canal 4 in output
+00085   IO_PORTS_8(TCTL1) &= ~(0x01 + 0x02); // Canal 4 unconnected to pin output
+00086   IO_PORTS_8(TIE) |= 0x10; // allow interruption channel 4
+00087   IO_PORTS_8(TSCR2) |= 0X05; // Pre-scaler = 32 
+00088                              // If this value is changed, change must be done also
+00089                              // in void __attribute__((interrupt)) timer4Hdl (void)
+00090 
+00091   IO_PORTS_8(TSCR1) |= 0x80; // Start timer
+00092   unlock(); // Allow interruptions
+00093 }
+00094 
+00095 /******************************************************************************/
+00096 void __attribute__((interrupt)) timer4Hdl (void)
+00097 {
+00098   lock();
+00099   last_time_set = IO_PORTS_16(TC4H);
+00100   IO_PORTS_8(TFLG1) = 0x10; // RAZ flag interruption timer channel 4
+00101   // Compute the next event : When the timer reach the value of TC4, an interrupt is
+00102   // started 
+00103   //IO_PORTS_16(TC4H) += 250; // To have an interruption every 1 ms
+00104   //timerInterrupt(0);
+00105   //MSG_WAR(0xFFFF, "timer4 IT", 0);
+00106   {
+00107     //MSG_WAR(0xFFFF, "t4 ", IO_PORTS_16(TCNTH) - IO_PORTS_16(TC4H));
+00108   }
+00109   TimeDispatch();
+00110   unlock();
+00111 }
+00112 
+00113 
+00114 /******************************************************************************/
+00115 void initSCI_0(void)
+00116 {
+00117   IO_PORTS_16(SCI0 + SCIBDH) = 
+00118     ((1000000 / SERIAL_SCI0_BAUD_RATE) * BUS_CLOCK) >> 4 ;  
+00119   IO_PORTS_8(SCI0  + SCICR1) = 0;    // format 8N1
+00120   IO_PORTS_8(SCI0  + SCICR2) = 0x08; // Transmit enable only
+00121 }
+00122 
+00123 /******************************************************************************/
+00124 void initSCI_1(void)
+00125 {
+00126   IO_PORTS_16(SCI1 + SCIBDH) = 
+00127     ((1000000 / SERIAL_SCI1_BAUD_RATE) * BUS_CLOCK) >> 4 ;  
+00128   IO_PORTS_8(SCI1  + SCICR1) = 0;    // format 8N1
+00129   IO_PORTS_8(SCI1  + SCICR2) = 0x08; // Transmit enable only
+00130 }
+00131 
+00132 
+00133 /******************************************************************************/
+00134 char *
+00135 hex_convert (char *buf, unsigned long value, char lastCar)
+00136 {
+00137   //Thanks to Stéphane Carrez for this function
+00138   char num[32];
+00139   int pos;
+00140 
+00141   *buf++ = '0';
+00142   *buf++ = 'x';
+00143 
+00144   pos = 0;
+00145   while (value != 0) {
+00146     char c = value & 0x0F;
+00147     num[pos++] = "0123456789ABCDEF"[(unsigned) c];
+00148     value = (value >> 4) & (0x0fffffffL);
+00149     }
+00150   if (pos == 0)
+00151     num[pos++] = '0';
+00152 
+00153   while (--pos >= 0)
+00154     *buf++ = num[pos];
+00155 
+00156   *buf++ = lastCar;
+00157   *buf = 0;
+00158   return buf;
+00159 }
+00160 
+00161 /******************************************************************************/
+00162 void printSCI_str(char sci, const char * str) 
+00163 {
+00164   char i = 0;
+00165   
+00166   while ((*(str + i) != 0) && (i < 0xFF)) {
+00167     if (*(str + i) == '\n')
+00168       {
+00169         while ((IO_PORTS_8(sci + SCISR1) & 0X80) == 0); // wait if buffer not empty     
+00170         IO_PORTS_8(sci + SCIDRL) = 13; // return to start of line
+00171       }
+00172     while ((IO_PORTS_8(sci + SCISR1) & 0X80) == 0); // wait if buffer not empty
+00173     IO_PORTS_8(sci + SCIDRL) = *(str + i++);
+00174   }
+00175 
+00176 }
+00177 
+00178 /******************************************************************************/
+00179 void printSCI_nbr(char sci, unsigned long nbr, char lastCar) 
+00180 {
+00181   char strNbr[12];
+00182   hex_convert(strNbr, nbr, lastCar);
+00183   printSCI_str(sci, strNbr);
+00184 }
+00185 
+00186 /******************************************************************************/
+00187 // PLL 24 MHZ if quartz on board is 16 MHZ
+00188 void initPLL(void)
+00189 {
+00190   IO_PORTS_8(CLKSEL) &= ~0x80; // unselect the PLL
+00191   IO_PORTS_8(PLLCTL) |= 0X60;  // PLL ON and bandwidth auto
+00192   IO_PORTS_8(SYNR) = 0x02;
+00193   IO_PORTS_8(REFDV) = 0x01;
+00194   while ((IO_PORTS_8(CRGFLG) & 0x08) == 0);
+00195   IO_PORTS_8(CLKSEL) |= 0x80;
+00196 }
+00197 
+00198 /******************************************************************************/
+00199 void initHCS12(void)
+00200 {
+00201 
+00202 # ifdef USE_PLL
+00203   MSG_WAR(0x3620, "Use the PLL ", 0);
+00204   initPLL();
+00205 # endif
+00206 
+00207 }
+00208 
+00209 /***************************************************************************/
+00210 char canAddIdToFilter(UNS16 adrCAN, UNS8 nFilter, UNS16 id)
+00211 {
+00212   UNS8 fiMsb;
+00213   UNS8 fiLsb;
+00214   UNS8 idMsb = (UNS8) (id >> 3);
+00215   UNS8 idLsb = (UNS8) (id << 5);
+00216 
+00217   if (! canTestInitMode(adrCAN)) {
+00218     /* Error because not init mode */
+00219     MSG_WAR(0X2600, "Not in init mode ", 0);
+00220     return 1;   
+00221   }
+00222   switch (nFilter) {
+00223     case 0:
+00224       nFilter = CANIDAR0; /* First  bank */
+00225       break;
+00226     case 1:
+00227       nFilter = CANIDAR2; /* First  bank */
+00228       break;
+00229     case 2:
+00230       nFilter = CANIDAR4; /* Second bank */
+00231       break;
+00232     case 3:
+00233       nFilter = CANIDAR6; /* Second bank */   
+00234   }
+00235   if (! IO_PORTS_16(adrCAN + nFilter)) {
+00236     /* if CANIDARx = 0 */
+00237     IO_PORTS_8(adrCAN + nFilter) = idMsb;
+00238     IO_PORTS_8(adrCAN + nFilter + 1) = idLsb;
+00239   }
+00240   fiMsb = IO_PORTS_8(adrCAN + nFilter) ^ idMsb;
+00241   fiLsb = IO_PORTS_8(adrCAN + nFilter + 1) ^ idLsb;
+00242   /* address of CANIDMRx */
+00243   IO_PORTS_8(adrCAN + nFilter + 4) = IO_PORTS_8(adrCAN + nFilter + 4) | fiMsb;
+00244   IO_PORTS_8(adrCAN + nFilter + 5) = IO_PORTS_8(adrCAN + nFilter + 5) | fiLsb;
+00245   IO_PORTS_8(adrCAN + nFilter + 5) |= 0x10; /* Not filtering on rtr value */
+00246   return 0;
+00247 }
+00248 
+00249 /***************************************************************************/
+00250 char canChangeFilter(UNS16 adrCAN, canBusFilterInit fi)
+00251 {
+00252   /* If not in init mode, go to sleep before going in init mode*/
+00253   if (! canTestInitMode(adrCAN)) {
+00254     canSleepMode(adrCAN);
+00255     canInitMode(adrCAN); 
+00256   }
+00257   //update the filters configuration
+00258   canInitFilter(adrCAN, fi);
+00259   canInitModeQ(adrCAN);
+00260   canSleepModeQ(adrCAN);
+00261   canSetInterrupt(adrCAN);
+00262   return 0;
+00263 }
+00264 
+00265 /***************************************************************************/
+00266 char canEnable(UNS16 adrCAN)
+00267 {
+00268   /* Register CANCTL1
+00269   bit 7 : 1 MSCAN enabled
+00270   Other bits : default reset values
+00271   */
+00272   IO_PORTS_8(adrCAN + CANCTL1) = 0X80;
+00273   return 0;
+00274 }
+00275 
+00276 /***************************************************************************/
+00277 char canInit(UNS16 adrCAN, canBusInit bi)
+00278 {
+00279   /* If not in init mode, go to sleep before going in init mode*/
+00280   if (! canTestInitMode(adrCAN)) {
+00281     canSleepMode(adrCAN);
+00282     canInitMode(adrCAN); 
+00283   }
+00284   
+00285   canEnable(adrCAN);                  /* Does nothing if already enable */
+00286      /* The most secure way to go in init mode : put before MSCAN in sleep mode */
+00287       //canSleepMode(adrCAN);
+00288      /* Put MSCAN in Init mode */ 
+00289      //canInitMode(adrCAN);
+00290   canInitClock(adrCAN, bi.clk); 
+00291   /* Init CANCTL1 register. Must be in init mode */
+00292   IO_PORTS_8(adrCAN + CANCTL1) &=0xC4;// 0xCB; /* Clr the bits that may be modified */
+00293   IO_PORTS_8(adrCAN + CANCTL1) = (bi.cane << 7) | (bi.loopb << 5 ) | 
+00294     (bi.listen << 4) | (bi.wupm << 2);
+00295   /* Initialize the filters for received msgs */
+00296   /* We should decide to accept all the msgs  */
+00297   canInitFilter(adrCAN, bi.fi);
+00298   /* Before to modify CANCTL0, we must leave the init mode */
+00299   canInitModeQ(adrCAN);
+00300   /* Init CANCTL0 register. MSCAN must not be in init mode */
+00301   /* Do not change the value of wupe (should be 0) and slprq (should be 1) */
+00302   /* Do not change the value of initrq (should be 0) */ 
+00303   /* rxfrm is cleared, mupe also (should be before)*/
+00304     IO_PORTS_8(adrCAN + CANCTL0) &= 0x53; /* Clr the bits that may be modified */
+00305     IO_PORTS_8(adrCAN + CANCTL0) = (bi.cswai << 5) | (bi.time << 3);
+00306     canSetInterrupt(adrCAN);
+00307     canInitModeQ(adrCAN); /* Leave the init mode */
+00308     canSleepModeQ(adrCAN); /* Leave the sleep mode */    
+00309   return 0;
+00310 }
+00311 
+00312 /***************************************************************************/
+00313 char canInitClock(UNS16 adrCAN, canBusTime clk)
+00314 {
+00315   if (! canTestInitMode(adrCAN)) {
+00316     /* Not in Init mode */
+00317     MSG_WAR(0X2601, "not in init mode ", 0);
+00318     return 1;   
+00319   }
+00320   /* Set or reset CLKSRC (register CANCTL1). Does not change the other bits*/
+00321   clk.clksrc = clk.clksrc << 6;
+00322   IO_PORTS_8(adrCAN + CANCTL1) &= 0xBF;
+00323   IO_PORTS_8(adrCAN + CANCTL1) |= clk.clksrc;
+00324   /* Build the CANBTR0 register */
+00325   IO_PORTS_8(adrCAN + CANBTR0) = 0x00;        /* Clear before changes */
+00326   IO_PORTS_8(adrCAN + CANBTR0) = (clk.sjw << 6) | (clk.brp);
+00327   /* Build the CANBTR1 register */
+00328   IO_PORTS_8(adrCAN + CANBTR1) = 0x00;        /* Clear before changes */
+00329   IO_PORTS_8(adrCAN + CANBTR1) = (clk.samp << 7) | (clk.tseg2 << 4) | 
+00330     (clk.tseg1);  
+00331   return 0;
+00332 }
+00333 
+00334 /***************************************************************************/
+00335 char canInit1Filter(UNS16 adrCAN, UNS8 nFilter, UNS16 ar, UNS16 mr)
+00336 {
+00337   if (! canTestInitMode(adrCAN)) {
+00338     /* Error because not init mode */
+00339     MSG_WAR(0X2602, "not in init mode ", 0);
+00340     return 1;   
+00341   }
+00342   switch (nFilter) {
+00343     case 0:
+00344       nFilter = CANIDAR0; /* First  bank */
+00345       break; 
+00346     case 1:
+00347       nFilter = CANIDAR2; /* First  bank */
+00348       break;
+00349     case 2:
+00350       nFilter = CANIDAR4; /* Second bank */
+00351       break;
+00352     case 3:
+00353       nFilter = CANIDAR6; /* Second bank */   
+00354   }
+00355   /* address of CANIDARx */
+00356   IO_PORTS_8(adrCAN + nFilter)     = (UNS8) (ar >> 8);
+00357   IO_PORTS_8(adrCAN + nFilter + 1) = (UNS8) (ar);
+00358   IO_PORTS_8(adrCAN + nFilter + 4) = (UNS8) (mr >> 8);
+00359   IO_PORTS_8(adrCAN + nFilter + 5) = (UNS8) (mr);
+00360   return 0;
+00361 }
+00362 
+00363 /***************************************************************************/
+00364 char canInitFilter(UNS16 adrCAN, canBusFilterInit fi)
+00365 {
+00366 if (! canTestInitMode(adrCAN)) {
+00367     /* Error because not init mode */
+00368     MSG_WAR(0X2603, "not in init mode ", 0);
+00369     return 1;   
+00370   }
+00371   IO_PORTS_8(adrCAN + CANIDAC)  = fi.idam << 4;
+00372   IO_PORTS_8(adrCAN + CANIDAR0) = fi.canidar0;
+00373   IO_PORTS_8(adrCAN + CANIDMR0) = fi.canidmr0;
+00374   IO_PORTS_8(adrCAN + CANIDAR1) = fi.canidar1;
+00375   IO_PORTS_8(adrCAN + CANIDMR1) = fi.canidmr1;
+00376   IO_PORTS_8(adrCAN + CANIDAR2) = fi.canidar2;
+00377   IO_PORTS_8(adrCAN + CANIDMR2) = fi.canidmr2;
+00378   IO_PORTS_8(adrCAN + CANIDAR3) = fi.canidar3;
+00379   IO_PORTS_8(adrCAN + CANIDMR3) = fi.canidmr3;
+00380   IO_PORTS_8(adrCAN + CANIDAR4) = fi.canidar4;
+00381   IO_PORTS_8(adrCAN + CANIDMR4) = fi.canidmr4;
+00382   IO_PORTS_8(adrCAN + CANIDAR5) = fi.canidar5;
+00383   IO_PORTS_8(adrCAN + CANIDMR5) = fi.canidmr5;
+00384   IO_PORTS_8(adrCAN + CANIDAR6) = fi.canidar6;
+00385   IO_PORTS_8(adrCAN + CANIDMR6) = fi.canidmr6;
+00386   IO_PORTS_8(adrCAN + CANIDAR7) = fi.canidar7;
+00387   IO_PORTS_8(adrCAN + CANIDMR7) = fi.canidmr7;
+00388   return 0;
+00389 }
+00390 
+00391 /***************************************************************************/
+00392 char canInitMode(UNS16 adrCAN)
+00393 {
+00394   IO_PORTS_8(adrCAN + CANCTL0) |= 0x01; /* Set the bit INITRQ */ 
+00395   while (! canTestInitMode(adrCAN)) {
+00396   }
+00397   return 0;
+00398 }
+00399 
+00400 /***************************************************************************/
+00401 char canInitModeQ(UNS16 adrCAN)
+00402 {
+00403   IO_PORTS_8(adrCAN + CANCTL0) &= 0xFE; /* Clear the bit INITRQ */ 
+00404   while (canTestInitMode(adrCAN)) {
+00405   }
+00406   return 0;
+00407 }
+00408 
+00409 /***************************************************************************/
+00410 char canMsgTransmit(UNS16 adrCAN, Message msg)
+00411 {
+00412   /* Remind : only CAN A msg implemented. ie id on 11 bits, not 29 */
+00413   UNS8 cantflg;
+00414   UNS8 i;
+00415   /* Looking for a free buffer */
+00416   cantflg = IO_PORTS_8(adrCAN + CANTFLG);
+00417   if ( cantflg == 0) { /* all the TXEx are set */
+00418     MSG_WAR(0X2604, "No buffer free. Msg to transmit is losted ", 0);
+00419     return 1; /* No buffer free */
+00420   }
+00421   else{
+00422     /* Selecting a buffer */
+00423     IO_PORTS_8(adrCAN + CANTBSEL) = cantflg;
+00424     /* We put ide = 0 because id is on 11 bits only */
+00425      IO_PORTS_8(adrCAN + CANTRSID) = (UNS8)(msg.cob_id.w >> 3);
+00426     IO_PORTS_8(adrCAN + CANTRSID + 1) = (UNS8)((msg.cob_id.w << 5)|
+00427     (msg.rtr << 4));
+00428    
+00429     IO_PORTS_8(adrCAN + CANTRSLEN) = msg.len & 0X0F;
+00430     /* For the priority, we put the highter bits of the cob_id */
+00431     IO_PORTS_8(adrCAN + CANTRSPRI) = IO_PORTS_8(adrCAN + CANTRSID);
+00432     for (i = 0 ; i < msg.len ; i++) {
+00433       IO_PORTS_8(adrCAN + CANTRSDTA + i) = msg.data[i];
+00434     } 
+00435     /* Transmitting the message */ 
+00436     cantflg = IO_PORTS_8(adrCAN + CANTBSEL);/* to know which buf is selected */
+00437     IO_PORTS_8(adrCAN + CANTBSEL) = 0x00;  
+00438     IO_PORTS_8(adrCAN + CANTFLG) = cantflg;  /* Ready to transmit ! */  
+00439   
+00440  }
+00441   return 0;
+00442 }
+00443 
+00444 /***************************************************************************/
+00445 char canSetInterrupt(UNS16 adrCAN) 
+00446 {
+00447   IO_PORTS_8(adrCAN + CANRIER) = 0X01; /* Allow interruptions on receive */
+00448   IO_PORTS_8(adrCAN + CANTIER) = 0X00; /* disallow  interruptions on transmit */
+00449   return 0;  
+00450 }
+00451 /***************************************************************************/
+00452 char canSleepMode(UNS16 adrCAN)
+00453 {
+00454   IO_PORTS_8(adrCAN + CANCTL0) &= 0xFB;   /* clr the bit WUPE  to avoid a wake-up*/ 
+00455   IO_PORTS_8(adrCAN + CANCTL0) |= 0x02;   /* Set the bit SLPRQ. go to Sleep !*/ 
+00456 
+00457    // IO_PORTS_8(adrCAN + CANCTL1) |= 0x04;
+00458    // IO_PORTS_8(adrCAN + CANCTL0) |= 0x02;   /* Set the bit SLPRQ */ 
+00459    while ( ! canTestSleepMode(adrCAN)) {
+00460      }
+00461 
+00462   return 0;
+00463 }
+00464 
+00465 /***************************************************************************/
+00466 char canSleepModeQ(UNS16 adrCAN)
+00467 {
+00468   if (canTestInitMode(adrCAN)) {
+00469     /* Error because in init mode */
+00470     MSG_WAR(0X2606, "not in init mode ", 0);
+00471     return 1;   
+00472   }
+00473   IO_PORTS_8(adrCAN + CANCTL0) &= 0xFD;   /* clr the bit SLPRQ */ 
+00474     while ( canTestSleepMode(adrCAN)) {
+00475     }
+00476   return 0;
+00477 }
+00478  
+00479 /***************************************************************************/
+00480 char canSleepWupMode(UNS16 adrCAN)
+00481 {
+00482   if (canTestInitMode(adrCAN)) {
+00483     MSG_WAR(0X2607, "not in init mode ", 0);
+00484     return 1;   
+00485   }
+00486   IO_PORTS_8(adrCAN + CANCTL0) |= 0x06;   /* Set the bits WUPE & SLPRQ */ 
+00487   while ( ! canTestSleepMode(adrCAN)) {
+00488   }
+00489   return 0;
+00490 }
+00491 
+00492 /***************************************************************************/
+00493 char canTestInitMode(UNS16 adrCAN)
+00494 {
+00495   return IO_PORTS_8(adrCAN + CANCTL1) & 0x01; /* Test the bit INITAK */
+00496 }
+00497 
+00498 /***************************************************************************/
+00499 char canTestSleepMode(UNS16 adrCAN)
+00500 {
+00501   return IO_PORTS_8(adrCAN + CANCTL1) & 0x02; /* Test the bit SLPAK */
+00502 }
+00503 
+00504 /***************************************************************************/
+00505 UNS8 canSend(UNS8 notused, Message *m)
+00506 {
+00507   canMsgTransmit(CANOPEN_LINE_NUMBER_USED, *m);
+00508   return 0;
+00509 }
+00510 
+00511 
+00512 /**************************************************************************/
+00513 UNS8 f_can_receive(UNS8 notused, Message *msgRcv)
+00514 { 
+00515   UNS8 i, j;
+00516 
+00517   switch (CANOPEN_LINE_NUMBER_USED) {
+00518   case CAN0 : j = 0; break;
+00519   case CAN1 : j = 1; break;
+00520   case CAN2 : j = 2; break;
+00521   case CAN3 : j = 3; break;
+00522   case CAN4 : j = 4; break;
+00523   }
+00524 
+00525   /* See if a message is pending in the stack */
+00526   if (ptrMsgRcv[j].r == ptrMsgRcv[j].w)
+00527     return 0x0; // No new message
+00528 
+00529   /* Increment the reading pointer of the stack */
+00530   if (ptrMsgRcv[j].r == (MAX_STACK_MSG_RCV - 1)) 
+00531      ptrMsgRcv[j].r = 0;
+00532   else
+00533     ptrMsgRcv[j].r ++;
+00534 
+00535   /* Store the message from the stack*/
+00536   msgRcv->cob_id.w = stackMsgRcv[j][ptrMsgRcv[j].r].cob_id.w;
+00537   msgRcv->len = stackMsgRcv[j][ptrMsgRcv[j].r].len;
+00538   msgRcv->rtr = stackMsgRcv[j][ptrMsgRcv[j].r].rtr;
+00539   for (i = 0 ; i < stackMsgRcv[j][ptrMsgRcv[j].r].len ; i++)
+00540     msgRcv->data[i] = stackMsgRcv[j][ptrMsgRcv[j].r].data[i];
+00541   return 0xFF;
+00542 }
+00543 
+00544 
+00545 /******************************************************************************
+00546  ******************************* CAN INTERRUPT  *******************************/
+00547 
+00548 void __attribute__((interrupt)) can0HdlTra (void)
+00549 {
+00550  
+00551 }
+00552 
+00553 void __attribute__((interrupt)) can0HdlRcv (void)
+00554 { 
+00555   UNS8 i;
+00556   lock();
+00557   IO_PORTS_8(PORTB) &= ~ 0x40; // led 6 port B : ON
+00558   UNS8 NewPtrW; 
+00559   /* We are obliged to save the message while the interruption is pending */
+00560   /* Increment the writing stack pointer before writing the msg */
+00561   if (ptrMsgRcv[0].w == (MAX_STACK_MSG_RCV - 1)) 
+00562     NewPtrW = 0;
+00563   else
+00564     NewPtrW = ptrMsgRcv[0].w + 1;
+00565   
+00566   if (NewPtrW == ptrMsgRcv[0].r) {
+00567     /* The stack is full. The last msg received before this one is lost */
+00568     MSG_WAR(0X1620, "Stack for received msg is full", 0);
+00569     //IO_PORTS_8(PORTB) &= ~0x40; // led  6         : ON (for debogue)
+00570   }
+00571   else
+00572     ptrMsgRcv[0].w = NewPtrW;
+00573   
+00574   /* Store the message */
+00575   stackMsgRcv[0][ptrMsgRcv[0].w].cob_id.w = IO_PORTS_16(CAN0 + CANRCVID) >> 5;
+00576   stackMsgRcv[0][ptrMsgRcv[0].w].len = IO_PORTS_8(CAN0 + CANRCVLEN) & 0x0F;
+00577   stackMsgRcv[0][ptrMsgRcv[0].w].rtr = (IO_PORTS_8(CAN0 + CANRCVID + 1) >> 4) & 0x01;
+00578   for (i = 0 ; i < stackMsgRcv[0][ptrMsgRcv[0].w].len ; i++)
+00579     stackMsgRcv[0][ptrMsgRcv[0].w].data[i] = IO_PORTS_8(CAN0 + CANRCVDTA + i);
+00580   
+00581   // The message is stored , so
+00582   // we can now release the receive foreground buffer
+00583   // and acknowledge the interruption
+00584   IO_PORTS_8(CAN0 + CANRFLG) |= 0x01;
+00585   // Not very usefull
+00586   IO_PORTS_8(CAN0 + CANCTL0) |= 0x80;
+00587   IO_PORTS_8(PORTB) |= 0x40; // led 6 port B : OFF
+00588   unlock();
+00589 }
+00590 
+00591 void __attribute__((interrupt)) can0HdlWup (void)
+00592 {
+00593 
+00594 }
+00595 
+00596 void __attribute__((interrupt)) can0HdlErr (void)
+00597 {
+00598 
+00599 }
+00600 
+00601 void __attribute__((interrupt)) can1HdlTra (void)
+00602 {
+00603  
+00604 }
+00605 
+00606 void __attribute__((interrupt)) can1HdlRcv (void)
+00607 {
+00608   UNS8 i;
+00609   lock();
+00610   UNS8 NewPtrW; 
+00611   /* We are obliged to save the message while the interruption is pending */
+00612   /* Increment the writing stack pointer before writing the msg */
+00613   if (ptrMsgRcv[1].w == (MAX_STACK_MSG_RCV - 1)) 
+00614     NewPtrW = 0;
+00615   else
+00616     NewPtrW = ptrMsgRcv[1].w + 1;
+00617   
+00618   if (NewPtrW == ptrMsgRcv[1].r) {
+00619     /* The stack is full. The last msg received before this one is lost */
+00620     MSG_WAR(0X2620, "Stack for received msg is full", 0);
+00621   }
+00622   else
+00623     ptrMsgRcv[1].w = NewPtrW;
+00624   
+00625   /* Store the message */
+00626   stackMsgRcv[1][ptrMsgRcv[1].w].cob_id.w = IO_PORTS_16(CAN1 + CANRCVID) >> 5;
+00627   stackMsgRcv[1][ptrMsgRcv[1].w].len = IO_PORTS_8(CAN1 + CANRCVLEN) & 0x0F;
+00628   stackMsgRcv[0][ptrMsgRcv[0].w].rtr = (IO_PORTS_8(CAN1 + CANRCVID + 1) >> 4) & 0x01;
+00629   for (i = 0 ; i < stackMsgRcv[1][ptrMsgRcv[1].w].len ; i++)
+00630     stackMsgRcv[1][ptrMsgRcv[1].w].data[i] = IO_PORTS_8(CAN1 + CANRCVDTA + i);
+00631   
+00632   // The message is stored , so
+00633   // we can now release the receive foreground buffer
+00634   // and acknowledge the interruption
+00635   IO_PORTS_8(CAN1 + CANRFLG) |= 0x01;
+00636   // Not very usefull
+00637   IO_PORTS_8(CAN1 + CANCTL0) |= 0x80;
+00638   unlock();
+00639 }
+00640 
+00641 void __attribute__((interrupt)) can1HdlWup (void)
+00642 {
+00643 
+00644 }
+00645 
+00646 void __attribute__((interrupt)) can1HdlErr (void)
+00647 {
+00648 
+00649 }
+00650 
+00651 void __attribute__((interrupt)) can2HdlTra (void)
+00652 {
+00653 
+00654 }
+00655 
+00656 void __attribute__((interrupt)) can2HdlRcv (void)
+00657 {
+00658 
+00659 }
+00660 
+00661 void __attribute__((interrupt)) can2HdlWup (void)
+00662 {
+00663 
+00664 }
+00665 
+00666 void __attribute__((interrupt)) can2HdlErr (void)
+00667 {
+00668 
+00669 }
+00670 
+00671 void __attribute__((interrupt)) can3HdlTra (void)
+00672 {
+00673 
+00674 }
+00675 
+00676 void __attribute__((interrupt)) can3HdlRcv (void)
+00677 {
+00678 
+00679 }
+00680 
+00681 void __attribute__((interrupt)) can3HdlWup (void)
+00682 {
+00683 
+00684 }
+00685 
+00686 void __attribute__((interrupt)) can3HdlErr (void)
+00687 {
+00688 
+00689 }
+00690 
+00691 void __attribute__((interrupt)) can4HdlTra (void)
+00692 {
+00693 
+00694 }
+00695 
+00696 void __attribute__((interrupt)) can4HdlRcv (void)
+00697 {
+00698 
+00699 }
+00700 
+00701 void __attribute__((interrupt)) can4HdlWup (void)
+00702 {
+00703 
+00704 }
+00705 
+00706 void __attribute__((interrupt)) can4HdlErr (void)
+00707 {
+00708 
+00709 }
+00710 
+00711 
+00712 
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1151 @@ + + +CanFestival: drivers/hcs12/canOpenDriver.c File Reference + + + + +
+
+
+
+ +

canOpenDriver.c File Reference

#include <stddef.h>
+#include "../include/hcs12/asm-m68hc12/portsaccess.h"
+#include "../include/hcs12/asm-m68hc12/ports_def.h"
+#include "../include/hcs12/asm-m68hc12/ports.h"
+#include "../include/data.h"
+#include "../include/hcs12/applicfg.h"
+#include "../include/hcs12/candriver.h"
+#include "../include/hcs12/interrupt.h"
+#include "../include/hcs12/canOpenDriver.h"
+#include "../include/can.h"
+#include "../include/objdictdef.h"
+#include "../include/timer.h"
+ +

+Include dependency graph for canOpenDriver.c:

+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Defines

#define DEBUG_WAR_CONSOLE_ON
#define DEBUG_ERR_CONSOLE_ON
#define max(a, b)   a>b?a:b

Functions

UNS8 f_can_receive (UNS8 notused, Message *m)
UNS8 canSend (UNS8 notused, Message *m)
void __attribute__ ((interrupt))
TIMEVAL getElapsedTime ()
void resetTimer (void)
void initTimer (void)
void initSCI_0 (void)
 Initialisation of the serial port 0.
void initSCI_1 (void)
 Initialisation of the serial port 1.
char * hex_convert (char *buf, unsigned long value, char lastCar)
void printSCI_str (char sci, const char *str)
void printSCI_nbr (char sci, unsigned long nbr, char lastCar)
void initPLL (void)
void initHCS12 (void)
 Put here all the code to init the HCS12.
char canAddIdToFilter (UNS16 adrCAN, UNS8 nFilter, UNS16 id)
char canChangeFilter (UNS16 adrCAN, canBusFilterInit fi)
char canEnable (UNS16 adrCAN)
char canInit (UNS16 adrCAN, canBusInit bi)
char canInitClock (UNS16 adrCAN, canBusTime clk)
char canInit1Filter (UNS16 adrCAN, UNS8 nFilter, UNS16 ar, UNS16 mr)
char canInitFilter (UNS16 adrCAN, canBusFilterInit fi)
char canInitMode (UNS16 adrCAN)
char canInitModeQ (UNS16 adrCAN)
char canMsgTransmit (UNS16 adrCAN, Message msg)
char canSetInterrupt (UNS16 adrCAN)
char canSleepMode (UNS16 adrCAN)
char canSleepModeQ (UNS16 adrCAN)
char canSleepWupMode (UNS16 adrCAN)
char canTestInitMode (UNS16 adrCAN)
char canTestSleepMode (UNS16 adrCAN)
+


Define Documentation

+ +
+
+ + + + +
#define DEBUG_ERR_CONSOLE_ON
+
+
+ +

+ +

+Definition at line 24 of file canOpenDriver.c. +

+

+ +

+
+ + + + +
#define DEBUG_WAR_CONSOLE_ON
+
+
+ +

+ +

+Definition at line 23 of file canOpenDriver.c. +

+

+ +

+
+ + + + + + + + + + + + +
#define max (a,
 )    a>b?a:b
+
+
+ +

+ +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
void __attribute__ ((interrupt)   ) 
+
+
+ +

+Message transmitted on MSCAN 0 +

+Definition at line 54 of file canOpenDriver.c. +

+References IO_PORTS_16, and TC4H. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char canAddIdToFilter (UNS16  adrCAN,
UNS8  nFilter,
UNS16  id 
)
+
+
+ +

+ +

+Definition at line 210 of file canOpenDriver.c. +

+References CANIDAR0, CANIDAR2, CANIDAR4, CANIDAR6, canTestInitMode(), IO_PORTS_16, IO_PORTS_8, MSG_WAR, and UNS8. +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canChangeFilter (UNS16  adrCAN,
canBusFilterInit  fi 
)
+
+
+ +

+ +

+Definition at line 250 of file canOpenDriver.c. +

+References canInitFilter(), canInitMode(), canInitModeQ(), canSetInterrupt(), canSleepMode(), canSleepModeQ(), and canTestInitMode(). +

+Referenced by gene_SYNC_operational(), and gene_SYNC_preOperational(). +

+Here is the call graph for this function:

+ + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
char canEnable (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 266 of file canOpenDriver.c. +

+References CANCTL1, and IO_PORTS_8. +

+Referenced by canInit(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canInit (UNS16  adrCAN,
canBusInit  bi 
)
+
+
+ +

+ +

+Definition at line 277 of file canOpenDriver.c. +

+References CANCTL0, CANCTL1, canBusInit::cane, canEnable(), canInitClock(), canInitFilter(), canInitMode(), canInitModeQ(), canSetInterrupt(), canSleepMode(), canSleepModeQ(), canTestInitMode(), canBusInit::clk, canBusInit::cswai, canBusInit::fi, IO_PORTS_8, canBusInit::listen, canBusInit::loopb, canBusInit::time, and canBusInit::wupm. +

+Here is the call graph for this function:

+ + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
char canInit1Filter (UNS16  adrCAN,
UNS8  nFilter,
UNS16  ar,
UNS16  mr 
)
+
+
+ +

+ +

+Definition at line 335 of file canOpenDriver.c. +

+References CANIDAR0, CANIDAR2, CANIDAR4, CANIDAR6, canTestInitMode(), IO_PORTS_8, MSG_WAR, and UNS8. +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canInitClock (UNS16  adrCAN,
canBusTime  clk 
)
+
+
+ +

+ +

+Definition at line 313 of file canOpenDriver.c. +

+References canBusTime::brp, CANBTR0, CANBTR1, CANCTL1, canTestInitMode(), canBusTime::clksrc, IO_PORTS_8, MSG_WAR, canBusTime::samp, canBusTime::sjw, canBusTime::tseg1, and canBusTime::tseg2. +

+Referenced by canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canInitFilter (UNS16  adrCAN,
canBusFilterInit  fi 
)
+
+
+ +

+ +

+Definition at line 364 of file canOpenDriver.c. +

+References CANIDAC, CANIDAR0, canBusFilterInit::canidar0, CANIDAR1, canBusFilterInit::canidar1, CANIDAR2, canBusFilterInit::canidar2, CANIDAR3, canBusFilterInit::canidar3, CANIDAR4, canBusFilterInit::canidar4, CANIDAR5, canBusFilterInit::canidar5, CANIDAR6, canBusFilterInit::canidar6, CANIDAR7, canBusFilterInit::canidar7, CANIDMR0, canBusFilterInit::canidmr0, CANIDMR1, canBusFilterInit::canidmr1, CANIDMR2, canBusFilterInit::canidmr2, CANIDMR3, canBusFilterInit::canidmr3, CANIDMR4, canBusFilterInit::canidmr4, CANIDMR5, canBusFilterInit::canidmr5, CANIDMR6, canBusFilterInit::canidmr6, CANIDMR7, canBusFilterInit::canidmr7, canTestInitMode(), canBusFilterInit::idam, IO_PORTS_8, and MSG_WAR. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canInitMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 392 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canInitModeQ (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 401 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canMsgTransmit (UNS16  adrCAN,
Message  msg 
)
+
+
+ +

+ +

+Definition at line 410 of file canOpenDriver.c. +

+References CANTBSEL, CANTFLG, CANTRSDTA, CANTRSID, CANTRSLEN, CANTRSPRI, Message::cob_id, Message::data, IO_PORTS_8, Message::len, MSG_WAR, Message::rtr, UNS8, and SHORT_CAN::w. +

+Referenced by canSend(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend (UNS8  notused,
Message m 
)
+
+
+ +

+ +

+Definition at line 505 of file canOpenDriver.c. +

+References canMsgTransmit(), and CANOPEN_LINE_NUMBER_USED. +

+Referenced by canSend(), LoadCanDriver(), masterSendNMTnodeguard(), masterSendNMTstateChange(), proceedNODE_GUARD(), ProducerHearbeatAlarm(), sendPDO(), sendSDO(), sendSYNC(), and slaveSendBootUp(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canSetInterrupt (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 445 of file canOpenDriver.c. +

+References CANRIER, CANTIER, and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+

+ +

+
+ + + + + + + + + +
char canSleepMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 452 of file canOpenDriver.c. +

+References CANCTL0, canTestSleepMode(), and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canSleepModeQ (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 466 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), canTestSleepMode(), IO_PORTS_8, and MSG_WAR. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + +
char canSleepWupMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 480 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), canTestSleepMode(), IO_PORTS_8, and MSG_WAR. +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + +
char canTestInitMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 493 of file canOpenDriver.c. +

+References CANCTL1, and IO_PORTS_8. +

+Referenced by canAddIdToFilter(), canChangeFilter(), canInit(), canInit1Filter(), canInitClock(), canInitFilter(), canInitMode(), canInitModeQ(), canSleepModeQ(), and canSleepWupMode(). +

+

+ +

+
+ + + + + + + + + +
char canTestSleepMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 499 of file canOpenDriver.c. +

+References CANCTL1, and IO_PORTS_8. +

+Referenced by canSleepMode(), canSleepModeQ(), and canSleepWupMode(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 f_can_receive (UNS8  notused,
Message m 
)
+
+
+ +

+ +

+Definition at line 513 of file canOpenDriver.c. +

+References CAN0, CAN1, CAN2, CAN3, CAN4, CANOPEN_LINE_NUMBER_USED, Message::cob_id, Message::data, Message::len, MAX_STACK_MSG_RCV, t_pointerStack::r, Message::rtr, UNS8, and SHORT_CAN::w. +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
TIMEVAL getElapsedTime (void   ) 
+
+
+ +

+ +

+Definition at line 66 of file canOpenDriver.c. +

+Referenced by StartTimerLoop(), and TimeDispatch(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char* hex_convert (char *  buf,
unsigned long  value,
char  lastCar 
)
+
+
+ +

+Convert an integer to a string in hexadecimal format If you do not wants to use a lastCar, put lastCar = '' (end of string) ex : value = 0XABCDEF and lastCar = '
+' buf[0] = '0' buf[1] = 'X' buf[2] = 'A' .... buf[7] = 'F' buf[8] = '
+' buf[9] = '' +

+Definition at line 135 of file canOpenDriver.c. +

+Referenced by printSCI_nbr(). +

+

+ +

+
+ + + + + + + + + +
void initHCS12 (void   ) 
+
+
+ +

+Put here all the code to init the HCS12. +

+ +

+Definition at line 199 of file canOpenDriver.c. +

+References initPLL(), and MSG_WAR. +

+Referenced by initSensor(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
void initPLL (void   ) 
+
+
+ +

+to start using the PLL. Bus clock becomes 24 MHz if the quartz on the board is at 16 MHz +

+Definition at line 188 of file canOpenDriver.c. +

+References CLKSEL, CRGFLG, IO_PORTS_8, PLLCTL, REFDV, and SYNR. +

+Referenced by initHCS12(). +

+

+ +

+
+ + + + + + + + + +
void initSCI_0 (void   ) 
+
+
+ +

+Initialisation of the serial port 0. +

+ +

+Definition at line 115 of file canOpenDriver.c. +

+References BUS_CLOCK, IO_PORTS_16, IO_PORTS_8, SCI0, SCIBDH, SCICR1, SCICR2, and SERIAL_SCI0_BAUD_RATE. +

+

+ +

+
+ + + + + + + + + +
void initSCI_1 (void   ) 
+
+
+ +

+Initialisation of the serial port 1. +

+ +

+Definition at line 124 of file canOpenDriver.c. +

+References BUS_CLOCK, IO_PORTS_16, IO_PORTS_8, SCI1, SCIBDH, SCICR1, SCICR2, and SERIAL_SCI1_BAUD_RATE. +

+

+ +

+
+ + + + + + + + + +
void initTimer (void   ) 
+
+
+ +

+ +

+Definition at line 79 of file canOpenDriver.c. +

+Referenced by initSensor(), and StartTimerLoop(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void printSCI_nbr (char  sci,
unsigned long  nbr,
char  lastCar 
)
+
+
+ +

+Print the number in hexadecimal to the serial port sci (sci takes the values SCI0 or SCI1) +

+Definition at line 179 of file canOpenDriver.c. +

+References hex_convert(), and printSCI_str(). +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void printSCI_str (char  sci,
const char *  str 
)
+
+
+ +

+Print the string to the serial port sci (sci takes the values SCI0 or SCI1) +

+Definition at line 162 of file canOpenDriver.c. +

+References IO_PORTS_8, SCIDRL, and SCISR1. +

+Referenced by printSCI_nbr(). +

+

+ +

+
+ + + + + + + + + +
void resetTimer (void   ) 
+
+
+ +

+ +

+Definition at line 73 of file canOpenDriver.c. +

+

+


Generated on Fri Jun 8 08:51:42 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_00ffb46abacfdfa56ebc70e15164113e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_00ffb46abacfdfa56ebc70e15164113e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 168,6 299,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_00ffb46abacfdfa56ebc70e15164113e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_00ffb46abacfdfa56ebc70e15164113e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +15e4cc731a43ed7c22fd0600a2b0ab82 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_00ffb46abacfdfa56ebc70e15164113e_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_00ffb46abacfdfa56ebc70e15164113e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_0b98e4800c82d99981833aa4207f1eb9_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_0b98e4800c82d99981833aa4207f1eb9_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 160,6 291,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_0b98e4800c82d99981833aa4207f1eb9_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_0b98e4800c82d99981833aa4207f1eb9_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e1e5e93debe4e9347aafce187b5afb9b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_0b98e4800c82d99981833aa4207f1eb9_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_0b98e4800c82d99981833aa4207f1eb9_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 215,6 345,30 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 207,54 353,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +593b79c5a3e41a49044f9a2ee6a71cc4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_3c4f7a31d94e5e7c7322535467b806de_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_3c4f7a31d94e5e7c7322535467b806de_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $canOpenDriver_8c.html#5a53a89d2e348d70331e6ebe269d155a 143,5 236,29 +rect $canOpenDriver_8c.html#6ec3ce6d79012dd8a08fa5aeb6a0489f 138,53 242,77 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 314,176 444,200 +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 139,152 240,176 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 138,200 242,224 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 132,248 247,272 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 126,296 254,320 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 130,392 250,416 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 124,344 255,368 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 306,368 452,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_3c4f7a31d94e5e7c7322535467b806de_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_3c4f7a31d94e5e7c7322535467b806de_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eaf42e75d81535bb7d7802575f8555eb \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_3c4f7a31d94e5e7c7322535467b806de_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_3c4f7a31d94e5e7c7322535467b806de_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_5fb549697afb7918607aa113e01c543d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_5fb549697afb7918607aa113e01c543d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 163,6 294,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_5fb549697afb7918607aa113e01c543d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_5fb549697afb7918607aa113e01c543d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e0c4d7aaa6c96bb9fe16a0312c1a66e0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_5fb549697afb7918607aa113e01c543d_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_5fb549697afb7918607aa113e01c543d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 157,6 288,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9df8993328a87e7c855980db51c97e22 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_751a41c9747b96ab400b5599370cea83_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_751a41c9747b96ab400b5599370cea83_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 203,5 304,29 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 378,104 508,128 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 202,104 306,128 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 196,152 311,176 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 190,200 318,224 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 194,296 314,320 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 188,248 319,272 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 370,272 516,296 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_751a41c9747b96ab400b5599370cea83_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_751a41c9747b96ab400b5599370cea83_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +36d7fa098d3453676b40c7405fda0fb9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_751a41c9747b96ab400b5599370cea83_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_751a41c9747b96ab400b5599370cea83_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#2a9aef0efc98c5b41ef97ef91ad403e5 161,6 265,30 +rect $canOpenDriver_8c.html#6e3075ae435e83aefc018e5218c197d0 164,54 263,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +241a10a9d178261b752c3cf8ffe2a6a4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +461c553d2c9dfc886a9708ddc0b4737e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c__incl.png Binary file doc/doxygen/html/canOpenDriver_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_a89f28005eea54f5b216eb72a18d45f3_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_a89f28005eea54f5b216eb72a18d45f3_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 196,6 327,30 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 188,54 335,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_a89f28005eea54f5b216eb72a18d45f3_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_a89f28005eea54f5b216eb72a18d45f3_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2f5b91891ce149e651cbc7ae3ea3020b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_a89f28005eea54f5b216eb72a18d45f3_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_a89f28005eea54f5b216eb72a18d45f3_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_acfd181d5b055d1403930442e28ac643_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_acfd181d5b055d1403930442e28ac643_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 187,6 318,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_acfd181d5b055d1403930442e28ac643_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_acfd181d5b055d1403930442e28ac643_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1d3d0701f56786bd979a2f849234a8d0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_acfd181d5b055d1403930442e28ac643_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_acfd181d5b055d1403930442e28ac643_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_b4502eef7616b25c74b1ac5a2245b085_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_b4502eef7616b25c74b1ac5a2245b085_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 155,6 286,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_b4502eef7616b25c74b1ac5a2245b085_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_b4502eef7616b25c74b1ac5a2245b085_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fa6f7870e48fe919849408dbdaf2e012 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_b4502eef7616b25c74b1ac5a2245b085_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_b4502eef7616b25c74b1ac5a2245b085_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_b57b4b3c000e9f61135175495e874977_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_b57b4b3c000e9f61135175495e874977_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 138,6 268,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_b57b4b3c000e9f61135175495e874977_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_b57b4b3c000e9f61135175495e874977_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a088a2e574dc6a1aafbb44d1c30aec07 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_b57b4b3c000e9f61135175495e874977_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_b57b4b3c000e9f61135175495e874977_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_c71399958d35a7f703416f025603ee26_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_c71399958d35a7f703416f025603ee26_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#51e71c727eb7a49e2fde962a3d190a6b 144,6 211,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_c71399958d35a7f703416f025603ee26_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_c71399958d35a7f703416f025603ee26_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1248692d1f0171cec055d6d2c2b2efd7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_c71399958d35a7f703416f025603ee26_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_c71399958d35a7f703416f025603ee26_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_c7773223579ec7e0fab5238df214da89_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_c7773223579ec7e0fab5238df214da89_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 178,6 324,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_c7773223579ec7e0fab5238df214da89_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8c_c7773223579ec7e0fab5238df214da89_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +3cc04932ec091ce0a5b2d2fd99eaad2a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8c_c7773223579ec7e0fab5238df214da89_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8c_c7773223579ec7e0fab5238df214da89_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,63 @@ + + +CanFestival: include/hcs12/canOpenDriver.h Source File + + + + +
+
+
+
+ +

canOpenDriver.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 
+00024 #ifndef __CANOPENDRIVER__
+00025 #define __CANOPENDRIVER__
+00026 
+00027 
+00028 
+00029 // ---------  to be called by user app ---------
+00030 
+00031 void initTimer(void);
+00032 void resetTimer(void);
+00033 void TimerLoop(void);
+00034 
+00041 UNS8 f_can_receive(UNS8 notused, Message *m);
+00042 
+00043 #endif
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,149 @@ + + +CanFestival: include/hcs12/canOpenDriver.h File Reference + + + + +
+
+
+
+ +

canOpenDriver.h File Reference

+

+Go to the source code of this file. + + + + + + + + + + +

Functions

void initTimer (void)
void resetTimer (void)
void TimerLoop (void)
UNS8 f_can_receive (UNS8 notused, Message *m)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
UNS8 f_can_receive (UNS8  notused,
Message m 
)
+
+
+ +

+Returns 0 if no message received, 0xFF if the receiving stack is not empty. May be call in polling. You can also call canDispatch(...) in void __attribute__((interrupt)) can0HdlRcv (void) (see include/hcs12/canOpenDriver.c) +

+

+ +

+
+ + + + + + + + + +
void initTimer (void   ) 
+
+
+ +

+ +

+Definition at line 79 of file canOpenDriver.c. +

+References IO_PORTS_8, last_sig, lock(), TCTL1, TIE, timer, timer_notify(), TIOS, TSCR1, TSCR2, and unlock(). +

+Here is the call graph for this function:

+ + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
void resetTimer (void   ) 
+
+
+ +

+ +

+Definition at line 73 of file canOpenDriver.c. +

+

+ +

+
+ + + + + + + + + +
void TimerLoop (void   ) 
+
+
+ +

+ +

+

+


Generated on Fri Jun 8 08:51:58 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8h_02922529b60419a94afe8f369dda070b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8h_02922529b60419a94afe8f369dda070b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $interrupt_8c.html#eb99ff49b4a6d5157416f9b5bd0d9c2c 164,6 212,30 +rect $timers__unix_8c.html#4cd19302f57b08fc0403a05017332735 137,102 239,126 +rect $interrupt_8c.html#987ce601d6d4c8eedd68b58db3b7811a 155,54 221,78 +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 308,6 385,30 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 297,54 396,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 295,102 399,126 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 289,150 404,174 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 453,150 584,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8h_02922529b60419a94afe8f369dda070b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canOpenDriver_8h_02922529b60419a94afe8f369dda070b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d3f5b0b3a454ba461e5304d4352f268a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canOpenDriver_8h_02922529b60419a94afe8f369dda070b_cgraph.png Binary file doc/doxygen/html/canOpenDriver_8h_02922529b60419a94afe8f369dda070b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,76 @@ + + +CanFestival: include/can.h Source File + + + + +
+
+
+
+ +

can.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #ifndef __can_h__
+00024 #define __can_h__
+00025 
+00026 #include "applicfg.h"
+00028 /*
+00029 union SHORT_CAN {
+00030   struct { UNS8 b0,b1; } b;
+00031   UNS32 w;
+00032 };
+00033 */
+00034 
+00035 typedef struct {
+00036   UNS32 w; /* 32 bits */
+00037 } SHORT_CAN;
+00038 
+00039 
+00041 typedef struct {
+00042   SHORT_CAN cob_id;     /* l'ID du mesg */
+00043   UNS8 rtr;                     /* remote transmission request. 0 if not rtr, 
+00044                    1 for a rtr message */
+00045   UNS8 len;                     /* message length (0 to 8) */
+00046   UNS8 data[8]; /* data */
+00047 } Message;
+00048 
+00049 
+00050 typedef UNS8 (*canSend_t)(Message *);
+00051 
+00052 #endif /* __can_h__ */
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,73 @@ + + +CanFestival: include/can.h File Reference + + + + +
+
+
+
+ +

can.h File Reference

#include "applicfg.h"
+ +

+Include dependency graph for can.h:

+ + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + + +

+Go to the source code of this file. + + + + + + + + + +

Data Structures

struct  SHORT_CAN
struct  Message

Typedefs

typedef UNS8(*) canSend_t (Message *)
+


Typedef Documentation

+ +
+
+ + + + +
typedef UNS8(*) canSend_t(Message *)
+
+
+ +

+ +

+Definition at line 50 of file can.h. +

+

+


Generated on Fri Jun 8 08:51:55 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $can__driver_8h.html 188,6 346,30 +rect $data_8h.html 208,54 326,78 +rect $hcs12_2applicfg_8h.html 174,102 360,126 +rect $candriver_8h.html 170,150 364,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +4856e4898055c6b51e7fca060c7a2c27 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h__dep__incl.png Binary file doc/doxygen/html/can_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $win32_2applicfg_8h.html 169,54 257,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f1f556df4a3605e40c0f21ee4253a5a8 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can_8h__incl.png Binary file doc/doxygen/html/can_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__driver_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,78 @@ + + +CanFestival: include/can_driver.h Source File + + + + +
+
+
+
+ +

can_driver.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #ifndef __can_driver_h__
+00024 #define __can_driver_h__
+00025 
+00026 struct struct_s_BOARD;
+00027 
+00028 typedef struct struct_s_BOARD s_BOARD;
+00029 
+00030 #include "applicfg.h"
+00031 #include "can.h"
+00032 
+00033 struct struct_s_BOARD {
+00034   char * busname;
+00035   char * baudrate;
+00036 };
+00037 
+00038 #ifndef DLL_CALL
+00039 #define DLL_CALL(funcname) funcname##_driver
+00040 #endif
+00041 
+00042 #ifndef FCT_PTR_INIT
+00043 #define FCT_PTR_INIT
+00044 #endif
+00045 
+00046 
+00047 UNS8 DLL_CALL(canReceive)(CAN_HANDLE, Message *)FCT_PTR_INIT;
+00048 UNS8 DLL_CALL(canSend)(CAN_HANDLE, Message *)FCT_PTR_INIT;
+00049 CAN_HANDLE DLL_CALL(canOpen)(s_BOARD *)FCT_PTR_INIT;
+00050 int DLL_CALL(canClose)(CAN_HANDLE)FCT_PTR_INIT;
+00051 
+00052 #endif
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__driver_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,222 @@ + + +CanFestival: include/can_driver.h File Reference + + + + +
+
+
+
+ +

can_driver.h File Reference

#include "applicfg.h"
+#include "can.h"
+ +

+Include dependency graph for can_driver.h:

+ + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + +

Data Structures

struct  struct_s_BOARD

Defines

#define DLL_CALL(funcname)   funcname##_driver

Typedefs

typedef struct_s_BOARD s_BOARD

Functions

UNS8 DLL_CALL() canReceive (CAN_HANDLE, Message *) FCT_PTR_INIT
UNS8 DLL_CALL() canSend (CAN_HANDLE, Message *) FCT_PTR_INIT
CAN_HANDLE DLL_CALL() canOpen (s_BOARD *) FCT_PTR_INIT
int DLL_CALL() canClose (CAN_HANDLE) FCT_PTR_INIT
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define DLL_CALL (funcname   )    funcname##_driver
+
+
+ +

+ +

+Definition at line 39 of file can_driver.h. +

+

+


Typedef Documentation

+ +
+
+ + + + +
typedef struct struct_s_BOARD s_BOARD
+
+
+ +

+ +

+Definition at line 28 of file can_driver.h. +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
int DLL_CALL() canClose (CAN_HANDLE   ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + +
CAN_HANDLE DLL_CALL() canOpen (s_BOARD  ) 
+
+
+ +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 DLL_CALL() canReceive (CAN_HANDLE ,
Message 
)
+
+
+ +

+ +

+Definition at line 124 of file drivers_win32.cpp. +

+References driver_data::inst, driver_procs::m_canReceive, and s_driver_procs. +

+Referenced by canReceiveLoop(), and LoadCanDriver(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 DLL_CALL() canSend (CAN_HANDLE ,
Message 
)
+
+
+ +

+ +

+Definition at line 120 of file unix.c. +

+

+


Generated on Fri Jun 8 08:51:55 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__driver_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,12 @@ +base referer +rect $can__lincan_8c.html 273,5 505,29 +rect $can__peak__linux_8c.html 241,53 537,77 +rect $can__peak__win32_8c.html 233,101 545,125 +rect $can__socket_8c.html 271,149 508,173 +rect $can__uvccm__win32_8cpp.html 213,197 565,221 +rect $can__virtual_8c.html 271,245 508,269 +rect $timers__xeno_8c.html 263,293 516,317 +rect $unix_8c.html 615,416 761,440 +rect $timers__win32_8cpp.html 271,392 508,416 +rect $unix_2canfestival_8h.html 292,440 487,464 +rect $win32_2canfestival_8h.html 285,488 493,512 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__driver_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7d6b627afa0c41ce00a4670c88dca90b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h__dep__incl.png Binary file doc/doxygen/html/can__driver_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__driver_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $win32_2applicfg_8h.html 321,54 409,78 +rect $can_8h.html 213,78 272,102 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__driver_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +c1b1684e38d222da0e24bc3fc2013d74 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__driver_8h__incl.png Binary file doc/doxygen/html/can__driver_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__lincan_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__lincan_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,159 @@ + + +CanFestival: drivers/can_lincan/can_lincan.c Source File + + + + +
+
+
+
+ +

can_lincan.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack.
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #include <stdio.h>
+00024 #include <string.h>
+00025 #include <errno.h>
+00026 #include <fcntl.h>
+00027 
+00028 #include "canmsg.h"
+00029 #include "lincan.h"
+00030 
+00031 #include "can_driver.h"
+00032 
+00033 /*********functions which permit to communicate with the board****************/
+00034 UNS8 canReceive_driver(CAN_HANDLE fd0, Message *m)
+00035 {
+00036   int res;
+00037   struct canmsg_t canmsg;
+00038 
+00039   canmsg.flags = 0; /* Ensure standard receive, not required for LinCAN>=0.3.1 */
+00040 
+00041   do{
+00042     res = read(fd0,&canmsg,sizeof(canmsg_t));
+00043     if((res<0)&&(errno == -EAGAIN)) res = 0;
+00044   }while(res==0);
+00045 
+00046   if(res != sizeof(canmsg_t)) // No new message
+00047     return 1;
+00048 
+00049   if(canmsg.flags&MSG_EXT){
+00050     /* There is no mark for extended messages in CanFestival */;
+00051   }
+00052 
+00053   m->cob_id.w = canmsg.id;
+00054   m->len = canmsg.length;
+00055   if(canmsg.flags&MSG_RTR){
+00056     m->rtr = 1;
+00057   }else{
+00058     m->rtr = 0;
+00059     memcpy(m->data,canmsg.data,8);
+00060   }
+00061 
+00062   return 0;
+00063 }
+00064 
+00065 /***************************************************************************/
+00066 UNS8 canSend_driver(CAN_HANDLE fd0, Message *m)
+00067 {
+00068   int res;
+00069   struct canmsg_t canmsg;
+00070 
+00071 
+00072   canmsg.flags = 0;
+00073   canmsg.id = m->cob_id.w;
+00074   canmsg.length = m->len;
+00075   if(m->rtr){
+00076     canmsg.flags |= MSG_RTR;
+00077   }else{
+00078     memcpy(canmsg.data,m->data,8);
+00079   }
+00080 
+00081   if(canmsg.id >= 0x800){
+00082     canmsg.flags |= MSG_EXT;
+00083   }
+00084 
+00085   res = write(fd0,&canmsg,sizeof(canmsg_t));
+00086   if(res!=sizeof(canmsg_t))
+00087     return 1;
+00088 
+00089   return 0;
+00090 }
+00091 
+00092 /***************************************************************************/
+00093 static const char lnx_can_dev_prefix[] = "/dev/can";
+00094 
+00095 CAN_HANDLE canOpen_driver(s_BOARD *board)
+00096 {
+00097   int name_len = strlen(board->busname);
+00098   int prefix_len = strlen(lnx_can_dev_prefix);
+00099   char dev_name[prefix_len+name_len+1];
+00100   int o_flags = 0;
+00101   CAN_HANDLE fd0;
+00102 
+00103   fd0=malloc(sizeof(*fd0));
+00104   if(fd0==NULL)
+00105     return NULL;
+00106 
+00107   /*o_flags = O_NONBLOCK;*/
+00108 
+00109   memcpy(dev_name,lnx_can_dev_prefix,prefix_len);
+00110   memcpy(dev_name+prefix_len,board->busname,name_len);
+00111   dev_name[prefix_len+name_len] = 0;
+00112 
+00113   fd0 = open(dev_name, O_RDWR|o_flags);
+00114   if(fd0 < 0){
+00115     fprintf(stderr,"!!! Board %s is unknown. See can_lincan.c\n", board->busname);
+00116     goto error_ret;
+00117   }
+00118 
+00119   return fd0;
+00120 
+00121  error_ret:
+00122   free(fd0);
+00123   return NULL;
+00124 }
+00125 
+00126 /***************************************************************************/
+00127 int canClose_driver(CAN_HANDLE fd0)
+00128 {
+00129   if(!fd0)
+00130     return 0;
+00131   close(fd0);
+00132   return 0;
+00133 }
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__lincan_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__lincan_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,170 @@ + + +CanFestival: drivers/can_lincan/can_lincan.c File Reference + + + + +
+
+
+
+ +

can_lincan.c File Reference

#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include "canmsg.h"
+#include "lincan.h"
+#include "can_driver.h"
+ +

+Include dependency graph for can_lincan.c:

+ + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + +

Functions

UNS8 canReceive_driver (CAN_HANDLE fd0, Message *m)
UNS8 canSend_driver (CAN_HANDLE fd0, Message *m)
CAN_HANDLE canOpen_driver (s_BOARD *board)
int canClose_driver (CAN_HANDLE fd0)
+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose_driver (CAN_HANDLE  fd0  ) 
+
+
+ +

+ +

+Definition at line 127 of file can_lincan.c. +

+

+ +

+
+ + + + + + + + + +
CAN_HANDLE canOpen_driver (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 95 of file can_lincan.c. +

+References struct_s_BOARD::busname. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 34 of file can_lincan.c. +

+References Message::cob_id, canmsg_t::data, Message::data, canmsg_t::flags, canmsg_t::id, Message::len, canmsg_t::length, MSG_EXT, MSG_RTR, Message::rtr, and SHORT_CAN::w. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 66 of file can_lincan.c. +

+References Message::cob_id, Message::data, canmsg_t::data, canmsg_t::flags, canmsg_t::id, Message::len, canmsg_t::length, MSG_EXT, MSG_RTR, Message::rtr, and SHORT_CAN::w. +

+

+


Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__lincan_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__lincan_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $canmsg_8h.html 441,355 529,379 +rect $lincan_8h.html 303,301 377,325 +rect $can__driver_8h.html 288,107 392,131 +rect $win32_2applicfg_8h.html 584,83 672,107 +rect $can_8h.html 456,107 515,131 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__lincan_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__lincan_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0382ee6a849e72e17d7f9619afb8681f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__lincan_8c__incl.png Binary file doc/doxygen/html/can__lincan_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__linux_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,159 @@ + + +CanFestival: drivers/can_peak_linux/can_peak_linux.c Source File + + + + +
+
+
+
+ +

can_peak_linux.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #include <stdio.h>
+00024 #include <string.h>
+00025 #include <errno.h>
+00026 #include <fcntl.h>
+00027 
+00028 /* driver pcan pci for Peak board */
+00029 //#include "libpcan.h"
+00030 //#include "pcan.h"
+00031 
+00032 #include "libpcan.h" // for CAN_HANDLE
+00033 
+00034 #include "can_driver.h"
+00035 
+00036 // Define for rtr CAN message
+00037 #define CAN_INIT_TYPE_ST_RTR MSGTYPE_STANDARD | MSGTYPE_RTR 
+00038 
+00039 /*********functions which permit to communicate with the board****************/
+00040 UNS8 canReceive_driver(CAN_HANDLE fd0, Message *m)
+00041 {
+00042   UNS8 data; 
+00043   TPCANMsg peakMsg;
+00044   if ((errno = CAN_Read(fd0, & peakMsg))) {             // Blocks until no new message or error.
+00045     if(errno != -EIDRM && errno != -EPERM) // error is not "Can Port closed while reading" 
+00046     {
+00047         perror("canReceive_driver (Peak_Linux) : error of reading.\n");
+00048     }
+00049     return 1;
+00050   }
+00051   m->cob_id.w = peakMsg.ID;   
+00052   if (peakMsg.MSGTYPE == CAN_INIT_TYPE_ST)              /* bits of MSGTYPE_*/
+00053     m->rtr = 0;
+00054   else 
+00055     m->rtr = 1;
+00056   m->len = peakMsg.LEN;                                 /* count of data bytes (0..8) */
+00057   for(data = 0  ; data < peakMsg.LEN ; data++)                                  
+00058     m->data[data] = peakMsg.DATA[data];                 /* data bytes, up to 8 */
+00059   
+00060   return 0;
+00061 }
+00062 
+00063 /***************************************************************************/
+00064 UNS8 canSend_driver(CAN_HANDLE fd0, Message *m)
+00065 {
+00066   UNS8 data;
+00067   TPCANMsg peakMsg;
+00068   peakMsg.ID=m -> cob_id.w;                                     /* 11/29 bit code */
+00069   if(m->rtr == 0)       
+00070     peakMsg.MSGTYPE = CAN_INIT_TYPE_ST;       /* bits of MSGTYPE_*/
+00071   else {
+00072     peakMsg.MSGTYPE = CAN_INIT_TYPE_ST_RTR;       /* bits of MSGTYPE_*/
+00073   }
+00074   peakMsg.LEN = m->len;   
+00075                                 /* count of data bytes (0..8) */
+00076   for(data = 0 ; data <  m->len; data ++)
+00077         peakMsg.DATA[data] = m->data[data];             /* data bytes, up to 8 */
+00078   
+00079   if((errno = CAN_Write(fd0, & peakMsg))) {
+00080     perror("canSend_driver (Peak_Linux) : error of writing.\n");
+00081     return 1;
+00082   }
+00083   return 0;
+00084 
+00085 }
+00086 
+00087 
+00088 /***************************************************************************/
+00089 int TranslateBaudeRate(char* optarg){
+00090         if(!strcmp( optarg, "1M")) return CAN_BAUD_1M;
+00091         if(!strcmp( optarg, "500K")) return CAN_BAUD_500K;
+00092         if(!strcmp( optarg, "250K")) return CAN_BAUD_250K;
+00093         if(!strcmp( optarg, "125K")) return CAN_BAUD_125K;
+00094         if(!strcmp( optarg, "100K")) return CAN_BAUD_100K;
+00095         if(!strcmp( optarg, "50K")) return CAN_BAUD_50K;
+00096         if(!strcmp( optarg, "20K")) return CAN_BAUD_20K;
+00097         if(!strcmp( optarg, "10K")) return CAN_BAUD_10K;
+00098         if(!strcmp( optarg, "5K")) return CAN_BAUD_5K;
+00099         if(!strcmp( optarg, "none")) return 0;
+00100         return 0x0000;
+00101 }
+00102 
+00103 /***************************************************************************/
+00104 CAN_HANDLE canOpen_driver(s_BOARD *board)
+00105 {
+00106   HANDLE fd0 = NULL;
+00107   char busname[64];
+00108   char* pEnd;
+00109   int i;  
+00110   int baudrate;
+00111   
+00112   if(strtol(board->busname, &pEnd,0) >= 0)
+00113   {
+00114     sprintf(busname,"/dev/pcan%s",board->busname);
+00115     fd0 = LINUX_CAN_Open(busname, O_RDWR);
+00116   }
+00117 
+00118   if(fd0 && (baudrate = TranslateBaudeRate(board->baudrate)))
+00119   {
+00120         CAN_Init(fd0, baudrate, CAN_INIT_TYPE_ST);
+00121   }else{
+00122         fprintf(stderr, "canOpen_driver (Peak_Linux) : error opening %s\n", busname);
+00123   }
+00124 
+00125    return (CAN_HANDLE)fd0;
+00126 }
+00127 
+00128 /***************************************************************************/
+00129 int canClose_driver(CAN_HANDLE fd0)
+00130 {
+00131   CAN_Close(fd0);
+00132   return 0;
+00133 }
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__linux_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,222 @@ + + +CanFestival: drivers/can_peak_linux/can_peak_linux.c File Reference + + + + +
+
+
+
+ +

can_peak_linux.c File Reference

#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include "libpcan.h"
+#include "can_driver.h"
+ +

+Include dependency graph for can_peak_linux.c:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + +

Defines

#define CAN_INIT_TYPE_ST_RTR   MSGTYPE_STANDARD | MSGTYPE_RTR

Functions

UNS8 canReceive_driver (CAN_HANDLE fd0, Message *m)
UNS8 canSend_driver (CAN_HANDLE fd0, Message *m)
int TranslateBaudeRate (char *optarg)
CAN_HANDLE canOpen_driver (s_BOARD *board)
int canClose_driver (CAN_HANDLE fd0)
+


Define Documentation

+ +
+
+ + + + +
#define CAN_INIT_TYPE_ST_RTR   MSGTYPE_STANDARD | MSGTYPE_RTR
+
+
+ +

+ +

+Definition at line 37 of file can_peak_linux.c. +

+Referenced by canSend_driver(). +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose_driver (CAN_HANDLE  fd0  ) 
+
+
+ +

+ +

+Definition at line 129 of file can_peak_linux.c. +

+

+ +

+
+ + + + + + + + + +
CAN_HANDLE canOpen_driver (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 104 of file can_peak_linux.c. +

+References struct_s_BOARD::baudrate, struct_s_BOARD::busname, and TranslateBaudeRate(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 40 of file can_peak_linux.c. +

+References Message::cob_id, Message::data, Message::len, Message::rtr, UNS8, and SHORT_CAN::w. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 64 of file can_peak_linux.c. +

+References CAN_INIT_TYPE_ST_RTR, Message::data, Message::len, Message::rtr, and UNS8. +

+

+ +

+
+ + + + + + + + + +
int TranslateBaudeRate (char *  optarg  ) 
+
+
+ +

+ +

+Definition at line 89 of file can_peak_linux.c. +

+Referenced by canInit(), and canOpen_driver(). +

+

+


Generated on Fri Jun 8 08:51:40 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c_945403aba7f36acbd2e7160ade361bab_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__linux_8c_945403aba7f36acbd2e7160ade361bab_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 185,6 343,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c_945403aba7f36acbd2e7160ade361bab_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__linux_8c_945403aba7f36acbd2e7160ade361bab_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b5d7bd998e2330da722909845e38d666 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c_945403aba7f36acbd2e7160ade361bab_cgraph.png Binary file doc/doxygen/html/can__peak__linux_8c_945403aba7f36acbd2e7160ade361bab_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__linux_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $can__driver_8h.html 352,56 456,80 +rect $win32_2applicfg_8h.html 612,83 700,107 +rect $can_8h.html 504,107 563,131 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__linux_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +afa29ac11539cf071a4d4cc54951b9a0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__linux_8c__incl.png Binary file doc/doxygen/html/can__peak__linux_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,279 @@ + + +CanFestival: drivers/can_peak_win32/can_peak_win32.c Source File + + + + +
+
+
+
+ +

can_peak_win32.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #if defined(WIN32) && !defined(__CYGWIN__)
+00024 #define usleep(micro) Sleep(micro%1000 ? (micro/1000) + 1 : (micro/1000))
+00025 #else
+00026 #include <stdio.h>
+00027 #include <string.h>
+00028 #include <errno.h>
+00029 #include <fcntl.h>
+00030 #endif
+00031 
+00032 #include "cancfg.h"
+00033 #include "can_driver.h"
+00034 
+00035 #ifndef extra_PCAN_init_params
+00036         #define extra_PCAN_init_params 
+00037 #else
+00038         #define extra_PCAN_init_params\
+00039                 ,getenv("PCANHwType") ? strtol(getenv("PCANHwType"),NULL,0):0\
+00040                 ,getenv("PCANIO_Port") ? strtol(getenv("PCANIO_Port"),NULL,0):0\
+00041                 ,getenv("PCANInterupt") ? strtol(getenv("PCANInterupt"),NULL,0):0
+00042 #endif
+00043 
+00044 static s_BOARD *first_board = NULL;
+00045 #ifdef PCAN2_HEADER_
+00046 static s_BOARD *second_board = NULL;
+00047 #endif
+00048 
+00049 //pthread_mutex_t PeakCan_mutex = PTHREAD_MUTEX_INITIALIZER;
+00050 
+00051 // Define for rtr CAN message
+00052 #define CAN_INIT_TYPE_ST_RTR MSGTYPE_STANDARD | MSGTYPE_RTR
+00053 
+00054 /***************************************************************************/
+00055 int TranslateBaudeRate(char* optarg){
+00056         if(!strcmp( optarg, "1M")) return CAN_BAUD_1M;
+00057         if(!strcmp( optarg, "500K")) return CAN_BAUD_500K;
+00058         if(!strcmp( optarg, "250K")) return CAN_BAUD_250K;
+00059         if(!strcmp( optarg, "125K")) return CAN_BAUD_125K;
+00060         if(!strcmp( optarg, "100K")) return CAN_BAUD_100K;
+00061         if(!strcmp( optarg, "50K")) return CAN_BAUD_50K;
+00062         if(!strcmp( optarg, "20K")) return CAN_BAUD_20K;
+00063         if(!strcmp( optarg, "10K")) return CAN_BAUD_10K;
+00064         if(!strcmp( optarg, "5K")) return CAN_BAUD_5K;
+00065         if(!strcmp( optarg, "none")) return 0;
+00066         return 0x0000;
+00067 }
+00068 
+00069 void
+00070 canInit (s_BOARD *board)
+00071 {
+00072         int baudrate;
+00073         
+00074 #ifdef PCAN2_HEADER_
+00075         // if not the first handler
+00076         if(second_board == (s_BOARD *)board)
+00077                 if(baudrate = TranslateBaudeRate(board->baudrate))
+00078                         CAN2_Init (baudrate,
+00079                           CAN_INIT_TYPE_ST extra_PCAN_init_params);
+00080 #endif
+00081         if(first_board == (s_BOARD *)board)
+00082                 if(baudrate = TranslateBaudeRate(board->baudrate))
+00083                         CAN_Init (baudrate,
+00084                           CAN_INIT_TYPE_ST extra_PCAN_init_params);
+00085 }
+00086 
+00087 /*********functions which permit to communicate with the board****************/
+00088 UNS8
+00089 canReceive_driver (CAN_HANDLE fd0, Message * m)
+00090 {
+00091         UNS8 data;
+00092         TPCANMsg peakMsg;
+00093 
+00094         DWORD Res;
+00095 
+00096         do{
+00097                 // We read the queue looking for messages.
+00098                 // 
+00099                 //pthread_mutex_lock (&PeakCan_mutex);
+00100 #ifdef PCAN2_HEADER_
+00101                 // if not the first handler
+00102                 if(second_board == (s_BOARD *)fd0)
+00103                         Res = CAN2_Read (&peakMsg);
+00104                 else
+00105 #endif
+00106                 if(first_board == (s_BOARD *)fd0)
+00107                         Res = CAN_Read (&peakMsg);
+00108                 else
+00109                         Res = CAN_ERR_BUSOFF;
+00110         
+00111                 // A message was received
+00112                 // We process the message(s)
+00113                 // 
+00114                 if (Res == CAN_ERR_OK)
+00115                 {
+00116                         // if something different that 11bit or rtr... problem
+00117                         if (peakMsg.MSGTYPE & ~(MSGTYPE_STANDARD | MSGTYPE_RTR))
+00118                         {
+00119                                 if (peakMsg.MSGTYPE == CAN_ERR_BUSOFF)
+00120                                 {
+00121                                         printf ("!!! Peak board read : re-init\n");
+00122                                         canInit((s_BOARD*) fd0);
+00123                                         usleep (10000);
+00124                                 }
+00125         
+00126                                 // If status, return status if 29bit, return overrun
+00127                                 //pthread_mutex_unlock (&PeakCan_mutex);
+00128                                 return peakMsg.MSGTYPE ==
+00129                                         MSGTYPE_STATUS ? peakMsg.DATA[2] : CAN_ERR_OVERRUN;
+00130                         }
+00131                         m->cob_id.w = peakMsg.ID;
+00132                         if (peakMsg.MSGTYPE == CAN_INIT_TYPE_ST)        /* bits of MSGTYPE_ */
+00133                                 m->rtr = 0;
+00134                         else
+00135                                 m->rtr = 1;
+00136                         m->len = peakMsg.LEN;   /* count of data bytes (0..8) */
+00137                         for (data = 0; data < peakMsg.LEN; data++)
+00138                                 m->data[data] = peakMsg.DATA[data];     /* data bytes, up to 8 */
+00139         
+00140                 }else{
+00141                 //pthread_mutex_unlock (&PeakCan_mutex);
+00142                 //if (Res != CAN_ERR_OK)
+00143                 //{
+00144                         if (!
+00145                                 (Res & CAN_ERR_QRCVEMPTY || Res & CAN_ERR_BUSLIGHT
+00146                                  || Res & CAN_ERR_BUSHEAVY))
+00147                         {
+00148                                 printf ("canReceive returned error (%d)\n", Res);
+00149                                 return 1;
+00150                         }
+00151                         usleep (1000);          
+00152                 }
+00153         }while(Res != CAN_ERR_OK);
+00154         return 0;
+00155 }
+00156 
+00157 /***************************************************************************/
+00158 UNS8
+00159 canSend_driver (CAN_HANDLE fd0, Message * m)
+00160 {
+00161         UNS8 data;
+00162         TPCANMsg peakMsg;
+00163         peakMsg.ID = m->cob_id.w;       /* 11/29 bit code */
+00164         if (m->rtr == 0)
+00165                 peakMsg.MSGTYPE = CAN_INIT_TYPE_ST;     /* bits of MSGTYPE_ */
+00166         else
+00167         {
+00168                 peakMsg.MSGTYPE = CAN_INIT_TYPE_ST_RTR; /* bits of MSGTYPE_ */
+00169         }
+00170         peakMsg.LEN = m->len;
+00171         /* count of data bytes (0..8) */
+00172         for (data = 0; data < m->len; data++)
+00173                 peakMsg.DATA[data] = m->data[data];     /* data bytes, up to 8 */
+00174         do
+00175         {
+00176 #ifdef PCAN2_HEADER_
+00177                 // if not the first handler
+00178                 if(second_board == (s_BOARD *)fd0)
+00179                         errno = CAN2_Write (&peakMsg);
+00180                 else 
+00181 #endif
+00182                 if(first_board == (s_BOARD *)fd0)
+00183                         errno = CAN_Write (&peakMsg);
+00184                 else 
+00185                         goto fail;
+00186                 if (errno)
+00187                 {
+00188                         if (errno == CAN_ERR_BUSOFF)
+00189                         {
+00190                                 printf ("!!! Peak board write : re-init\n");
+00191                                 canInit((s_BOARD*)fd0);
+00192                                 usleep (10000);
+00193                         }
+00194                         usleep (1000);
+00195                 }
+00196         }
+00197         while (errno != CAN_ERR_OK);
+00198         return 0;
+00199 fail:
+00200         return 1;
+00201 }
+00202 
+00203 /***************************************************************************/
+00204 CAN_HANDLE
+00205 canOpen_driver (s_BOARD * board)
+00206 {
+00207 #ifdef PCAN2_HEADER_
+00208         if(first_board != NULL && second_board != NULL)
+00209 #else
+00210         if(first_board != NULL)
+00211 #endif
+00212         {
+00213                 fprintf (stderr, "Open failed.\n");
+00214                 fprintf (stderr,
+00215                                  "can_peak_win32.c: no more can port available with this pcan library\n");
+00216                 fprintf (stderr,
+00217                                  "can_peak_win32.c: please link another executable with another pcan lib\n");
+00218                 return NULL;
+00219         }
+00220 
+00221 #ifdef PCAN2_HEADER_
+00222         if(first_board == NULL)
+00223                 first_board = board;
+00224         else
+00225                 second_board = board; 
+00226 #else
+00227         first_board = board;
+00228 #endif
+00229 
+00230         canInit(board);
+00231         
+00232         return (CAN_HANDLE)board;
+00233 }
+00234 
+00235 /***************************************************************************/
+00236 int
+00237 canClose_driver (CAN_HANDLE fd0)
+00238 {
+00239 #ifdef PCAN2_HEADER_
+00240         // if not the first handler
+00241         if(second_board == (s_BOARD *)fd0)
+00242         {
+00243                 CAN2_Close ();
+00244                 second_board = (s_BOARD *)NULL;
+00245         }else   
+00246 #endif
+00247         if(first_board == (s_BOARD *)fd0)
+00248         {
+00249                 CAN_Close ();
+00250                 first_board = (s_BOARD *)NULL;
+00251         }
+00252         return 0;
+00253 }
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,288 @@ + + +CanFestival: drivers/can_peak_win32/can_peak_win32.c File Reference + + + + +
+
+
+
+ +

can_peak_win32.c File Reference

#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include "cancfg.h"
+#include "can_driver.h"
+ +

+Include dependency graph for can_peak_win32.c:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + +

Defines

#define extra_PCAN_init_params
#define CAN_INIT_TYPE_ST_RTR   MSGTYPE_STANDARD | MSGTYPE_RTR

Functions

int TranslateBaudeRate (char *optarg)
void canInit (s_BOARD *board)
UNS8 canReceive_driver (CAN_HANDLE fd0, Message *m)
UNS8 canSend_driver (CAN_HANDLE fd0, Message *m)
CAN_HANDLE canOpen_driver (s_BOARD *board)
int canClose_driver (CAN_HANDLE fd0)
+


Define Documentation

+ +
+
+ + + + +
#define CAN_INIT_TYPE_ST_RTR   MSGTYPE_STANDARD | MSGTYPE_RTR
+
+
+ +

+ +

+Definition at line 52 of file can_peak_win32.c. +

+

+ +

+
+ + + + +
#define extra_PCAN_init_params
+
+
+ +

+ +

+Definition at line 36 of file can_peak_win32.c. +

+Referenced by canInit(). +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose_driver (CAN_HANDLE  fd0  ) 
+
+
+ +

+ +

+Definition at line 237 of file can_peak_win32.c. +

+

+ +

+
+ + + + + + + + + +
void canInit (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 70 of file can_peak_win32.c. +

+References struct_s_BOARD::baudrate, extra_PCAN_init_params, and TranslateBaudeRate(). +

+Referenced by canOpen_driver(), canReceive_driver(), canSend_driver(), and initSensor(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
CAN_HANDLE canOpen_driver (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 205 of file can_peak_win32.c. +

+References canInit(). +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 89 of file can_peak_win32.c. +

+References canInit(), Message::cob_id, Message::data, Message::len, Message::rtr, UNS8, and SHORT_CAN::w. +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 159 of file can_peak_win32.c. +

+References CAN_INIT_TYPE_ST_RTR, canInit(), Message::cob_id, Message::data, Message::len, Message::rtr, UNS8, and SHORT_CAN::w. +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + +
int TranslateBaudeRate (char *  optarg  ) 
+
+
+ +

+ +

+Definition at line 55 of file can_peak_win32.c. +

+

+


Generated on Fri Jun 8 08:51:40 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_6b3248e95acf2b08d1fd8b42610cc5a6_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_6b3248e95acf2b08d1fd8b42610cc5a6_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57 202,6 268,30 +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 319,6 476,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_6b3248e95acf2b08d1fd8b42610cc5a6_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_6b3248e95acf2b08d1fd8b42610cc5a6_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +cf01850f03b6caf9f3d5a410915c1512 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_6b3248e95acf2b08d1fd8b42610cc5a6_cgraph.png Binary file doc/doxygen/html/can__peak__win32_8c_6b3248e95acf2b08d1fd8b42610cc5a6_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_945403aba7f36acbd2e7160ade361bab_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_945403aba7f36acbd2e7160ade361bab_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57 186,6 252,30 +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 303,6 460,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_945403aba7f36acbd2e7160ade361bab_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_945403aba7f36acbd2e7160ade361bab_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +85960d28e821183877418f8861df74a9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_945403aba7f36acbd2e7160ade361bab_cgraph.png Binary file doc/doxygen/html/can__peak__win32_8c_945403aba7f36acbd2e7160ade361bab_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_9f623ce2d3a68e90dfdb1ff0d54a9b57_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_9f623ce2d3a68e90dfdb1ff0d54a9b57_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 124,6 281,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_9f623ce2d3a68e90dfdb1ff0d54a9b57_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_9f623ce2d3a68e90dfdb1ff0d54a9b57_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eb0d52fa107a8d733af3fdcccbc635ec \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_9f623ce2d3a68e90dfdb1ff0d54a9b57_cgraph.png Binary file doc/doxygen/html/can__peak__win32_8c_9f623ce2d3a68e90dfdb1ff0d54a9b57_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $can__driver_8h.html 365,56 469,80 +rect $win32_2applicfg_8h.html 625,83 713,107 +rect $can_8h.html 517,107 576,131 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b707b7109dc9e483847a78853a82d6c1 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c__incl.png Binary file doc/doxygen/html/can__peak__win32_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57 183,6 249,30 +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 300,6 457,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__peak__win32_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +76c0baccd79b23ab034dc4588ed859d7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__peak__win32_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.png Binary file doc/doxygen/html/can__peak__win32_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__socket_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__socket_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,262 @@ + + +CanFestival: drivers/can_socket/can_socket.c Source File + + + + +
+
+
+
+ +

can_socket.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack.
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #include <stdio.h>
+00024 #include <string.h>
+00025 #include <stdlib.h>
+00026 #include <stddef.h>             /* for NULL */
+00027 #include <errno.h>
+00028 
+00029 #include "config.h"
+00030 
+00031 #ifdef RTCAN_SOCKET
+00032 #include "rtdm/rtcan.h"
+00033 #define CAN_IFNAME     "rtcan%s"
+00034 #define CAN_SOCKET     rt_dev_socket
+00035 #define CAN_CLOSE      rt_dev_close
+00036 #define CAN_RECV       rt_dev_recv
+00037 #define CAN_SEND       rt_dev_send
+00038 #define CAN_BIND       rt_dev_bind
+00039 #define CAN_IOCTL      rt_dev_ioctl
+00040 #define CAN_ERRNO(err) (-err)
+00041 #else
+00042 #include <sys/socket.h>
+00043 #include <sys/ioctl.h>
+00044 #include "linux/can.h"
+00045 #include "linux/can/raw.h"
+00046 #include "net/if.h"
+00047 #define PF_CAN 29
+00048 #define AF_CAN PF_CAN
+00049 //#include "af_can.h"
+00050 #define CAN_IFNAME     "can%s"
+00051 #define CAN_SOCKET     socket
+00052 #define CAN_CLOSE      close
+00053 #define CAN_RECV       recv
+00054 #define CAN_SEND       send
+00055 #define CAN_BIND       bind
+00056 #define CAN_IOCTL      ioctl
+00057 #define CAN_ERRNO(err) errno
+00058 #endif
+00059 
+00060 #include "can_driver.h"
+00061 
+00062 /*********functions which permit to communicate with the board****************/
+00063 UNS8
+00064 canReceive_driver (CAN_HANDLE fd0, Message * m)
+00065 {
+00066   int res;
+00067   struct can_frame frame;
+00068 
+00069   res = CAN_RECV (*(int *) fd0, &frame, sizeof (frame), 0);
+00070   if (res < 0)
+00071     {
+00072       fprintf (stderr, "Recv failed: %s\n", strerror (CAN_ERRNO (res)));
+00073       return 1;
+00074     }
+00075 
+00076   m->cob_id.w = frame.can_id & CAN_EFF_MASK;
+00077   m->len = frame.can_dlc;
+00078   if (frame.can_id & CAN_RTR_FLAG)
+00079     m->rtr = 1;
+00080   else
+00081     m->rtr = 0;
+00082   memcpy (m->data, frame.data, 8);
+00083 
+00084   return 0;
+00085 }
+00086 
+00087 
+00088 /***************************************************************************/
+00089 UNS8
+00090 canSend_driver (CAN_HANDLE fd0, Message * m)
+00091 {
+00092   int res;
+00093   struct can_frame frame;
+00094 
+00095   frame.can_id = m->cob_id.w;
+00096   if (frame.can_id >= 0x800)
+00097     frame.can_id |= CAN_EFF_FLAG;
+00098   frame.can_dlc = m->len;
+00099   if (m->rtr)
+00100     frame.can_id |= CAN_RTR_FLAG;
+00101   else
+00102     memcpy (frame.data, m->data, 8);
+00103 
+00104   res = CAN_SEND (*(int *) fd0, &frame, sizeof (frame), 0);
+00105   if (res < 0)
+00106     {
+00107       fprintf (stderr, "Send failed: %s\n", strerror (CAN_ERRNO (res)));
+00108       return 1;
+00109     }
+00110 
+00111   return 0;
+00112 }
+00113 
+00114 /***************************************************************************/
+00115 #ifdef RTCAN_SOCKET
+00116 int
+00117 TranslateBaudRate (const char *optarg)
+00118 {
+00119   int baudrate;
+00120   int val, len;
+00121   char *pos = NULL;
+00122 
+00123   len = strlen (optarg);
+00124   if (!len)
+00125     return 0;
+00126 
+00127   switch ((int) optarg[len - 1])
+00128     {
+00129     case 'M':
+00130       baudrate = 1000000;
+00131       break;
+00132     case 'K':
+00133       baudrate = 1000;
+00134       break;
+00135     default:
+00136       baudrate = 1;
+00137       break;
+00138     }
+00139   if ((sscanf (optarg, "%i", &val)) == 1)
+00140     baudrate *= val;
+00141   else
+00142     baudrate = 0;;
+00143 
+00144   return baudrate;
+00145 }
+00146 #endif
+00147 
+00148 /***************************************************************************/
+00149 CAN_HANDLE
+00150 canOpen_driver (s_BOARD * board)
+00151 {
+00152   struct ifreq ifr;
+00153   struct sockaddr_can addr;
+00154   int err;
+00155   CAN_HANDLE fd0 = malloc (sizeof (int));
+00156 #ifdef RTCAN_SOCKET
+00157   can_baudrate_t *baudrate;
+00158   can_mode_t *mode;
+00159 #endif
+00160 
+00161   *(int *) fd0 = CAN_SOCKET (PF_CAN, SOCK_RAW, CAN_RAW);
+00162   if (*(int *) fd0 < 0)
+00163     {
+00164       fprintf (stderr, "Socket creation failed: %s\n",
+00165                strerror (CAN_ERRNO (*(int *) fd0)));
+00166       goto error_ret;
+00167     }
+00168 
+00169   if (*board->busname >= '0' && *board->busname <= '9')
+00170     snprintf (ifr.ifr_name, IFNAMSIZ, CAN_IFNAME, board->busname);
+00171   else
+00172     strncpy (ifr.ifr_name, board->busname, IFNAMSIZ);
+00173   err = CAN_IOCTL (*(int *) fd0, SIOCGIFINDEX, &ifr);
+00174   if (err)
+00175     {
+00176       fprintf (stderr, "Getting IF index for %s failed: %s\n",
+00177                ifr.ifr_name, strerror (CAN_ERRNO (err)));
+00178       goto error_close;
+00179     }
+00180 
+00181   addr.can_family = AF_CAN;
+00182   addr.can_ifindex = ifr.ifr_ifindex;
+00183   err = CAN_BIND (*(int *) fd0, (struct sockaddr *) &addr, sizeof (addr));
+00184   if (err)
+00185     {
+00186       fprintf (stderr, "Binding failed: %s\n", strerror (CAN_ERRNO (err)));
+00187       goto error_close;
+00188     }
+00189 
+00190 #ifdef RTCAN_SOCKET
+00191   baudrate = (can_baudrate_t *) & ifr.ifr_ifru;
+00192   *baudrate = TranslateBaudRate (board->baudrate);
+00193   if (!*baudrate)
+00194     goto error_close;
+00195 
+00196   err = CAN_IOCTL (*(int *) fd0, SIOCSCANBAUDRATE, &ifr);
+00197   if (err)
+00198     {
+00199       fprintf (stderr,
+00200                "Setting baudrate %d failed: %s\n",
+00201                *baudrate, strerror (CAN_ERRNO (err)));
+00202       goto error_close;
+00203     }
+00204 
+00205   mode = (can_mode_t *) & ifr.ifr_ifru;
+00206   *mode = CAN_MODE_START;
+00207   err = CAN_IOCTL (*(int *) fd0, SIOCSCANMODE, &ifr);
+00208   if (err)
+00209     {
+00210       fprintf (stderr, "Starting CAN device failed: %s\n",
+00211                strerror (CAN_ERRNO (err)));
+00212       goto error_close;
+00213     }
+00214 #endif
+00215 
+00216   return fd0;
+00217 
+00218 error_close:
+00219   CAN_CLOSE (*(int *) fd0);
+00220 
+00221 error_ret:
+00222   free (fd0);
+00223   return NULL;
+00224 }
+00225 
+00226 /***************************************************************************/
+00227 int
+00228 canClose_driver (CAN_HANDLE fd0)
+00229 {
+00230   if (fd0)
+00231     {
+00232       CAN_CLOSE (*(int *) fd0);
+00233       free (fd0);
+00234     }
+00235   return 0;
+00236 }
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__socket_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__socket_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,393 @@ + + +CanFestival: drivers/can_socket/can_socket.c File Reference + + + + +
+
+
+
+ +

can_socket.c File Reference

#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <errno.h>
+#include "config.h"
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include "linux/can.h"
+#include "linux/can/raw.h"
+#include "net/if.h"
+#include "can_driver.h"
+ +

+Include dependency graph for can_socket.c:

+ + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Defines

#define PF_CAN   29
#define AF_CAN   PF_CAN
#define CAN_IFNAME   "can%s"
#define CAN_SOCKET   socket
#define CAN_CLOSE   close
#define CAN_RECV   recv
#define CAN_SEND   send
#define CAN_BIND   bind
#define CAN_IOCTL   ioctl
#define CAN_ERRNO(err)   errno

Functions

UNS8 canReceive_driver (CAN_HANDLE fd0, Message *m)
UNS8 canSend_driver (CAN_HANDLE fd0, Message *m)
CAN_HANDLE canOpen_driver (s_BOARD *board)
int canClose_driver (CAN_HANDLE fd0)
+


Define Documentation

+ +
+
+ + + + +
#define AF_CAN   PF_CAN
+
+
+ +

+ +

+Definition at line 48 of file can_socket.c. +

+Referenced by canOpen_driver(). +

+

+ +

+
+ + + + +
#define CAN_BIND   bind
+
+
+ +

+ +

+Definition at line 55 of file can_socket.c. +

+Referenced by canOpen_driver(). +

+

+ +

+
+ + + + +
#define CAN_CLOSE   close
+
+
+ +

+ +

+Definition at line 52 of file can_socket.c. +

+Referenced by canClose_driver(), and canOpen_driver(). +

+

+ +

+
+ + + + + + + + + +
#define CAN_ERRNO (err   )    errno
+
+
+ +

+ +

+Definition at line 57 of file can_socket.c. +

+Referenced by canOpen_driver(), canReceive_driver(), and canSend_driver(). +

+

+ +

+
+ + + + +
#define CAN_IFNAME   "can%s"
+
+
+ +

+ +

+Definition at line 50 of file can_socket.c. +

+Referenced by canOpen_driver(). +

+

+ +

+
+ + + + +
#define CAN_IOCTL   ioctl
+
+
+ +

+ +

+Definition at line 56 of file can_socket.c. +

+Referenced by canOpen_driver(). +

+

+ +

+
+ + + + +
#define CAN_RECV   recv
+
+
+ +

+ +

+Definition at line 53 of file can_socket.c. +

+Referenced by canReceive_driver(). +

+

+ +

+
+ + + + +
#define CAN_SEND   send
+
+
+ +

+ +

+Definition at line 54 of file can_socket.c. +

+Referenced by canSend_driver(). +

+

+ +

+
+ + + + +
#define CAN_SOCKET   socket
+
+
+ +

+ +

+Definition at line 51 of file can_socket.c. +

+Referenced by canOpen_driver(). +

+

+ +

+
+ + + + +
#define PF_CAN   29
+
+
+ +

+ +

+Definition at line 47 of file can_socket.c. +

+Referenced by canOpen_driver(). +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose_driver (CAN_HANDLE  fd0  ) 
+
+
+ +

+ +

+Definition at line 228 of file can_socket.c. +

+References CAN_CLOSE. +

+

+ +

+
+ + + + + + + + + +
CAN_HANDLE canOpen_driver (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 150 of file can_socket.c. +

+References AF_CAN, struct_s_BOARD::baudrate, struct_s_BOARD::busname, CAN_BIND, CAN_CLOSE, CAN_ERRNO, CAN_IFNAME, CAN_IOCTL, CAN_SOCKET, and PF_CAN. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 64 of file can_socket.c. +

+References CAN_ERRNO, CAN_RECV, Message::cob_id, Message::data, Message::len, Message::rtr, and SHORT_CAN::w. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 90 of file can_socket.c. +

+References CAN_ERRNO, CAN_SEND, Message::cob_id, Message::data, Message::len, Message::rtr, and SHORT_CAN::w. +

+

+


Generated on Fri Jun 8 08:51:40 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__socket_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__socket_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $win32_2config_8h.html 319,283 394,307 +rect $can__driver_8h.html 304,91 408,115 +rect $win32_2applicfg_8h.html 575,117 663,141 +rect $can_8h.html 467,141 526,165 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__socket_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__socket_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +07babf0f3fe3ed1d97a20488eb437cf3 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__socket_8c__incl.png Binary file doc/doxygen/html/can__socket_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__uvccm__win32_8cpp-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__uvccm__win32_8cpp-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,357 @@ + + +CanFestival: drivers/can_uvccm_win32/can_uvccm_win32.cpp Source File + + + + +
+
+
+
+ +

can_uvccm_win32.cpp

Go to the documentation of this file.
00001 // can_uvccm_win32 adapter (http://www.gridconnect.com)
+00002 // driver for CanFestival-3 Win32 port
+00003 // Copyright (C) 2007 Leonid Tochinski, ChattenAssociates, Inc.
+00004 
+00005 
+00006 #include <sstream>
+00007 #include <iomanip>
+00008 #if 0  // change to 1 if you use boost
+00009 #include <boost/algorithm/string/case_conv.hpp>
+00010 #else
+00011 #include <algorithm>
+00012 #endif
+00013 
+00014 extern "C" {
+00015 #include "can_driver.h"
+00016 }
+00017 class can_uvccm_win32
+00018    {
+00019    public:
+00020       class error
+00021         {
+00022         };
+00023       can_uvccm_win32(s_BOARD *board);
+00024       ~can_uvccm_win32();
+00025       bool send(const Message *m);
+00026       bool receive(Message *m);
+00027    private:
+00028       bool open_rs232(int port = 1, int baud_rate = 57600);
+00029       bool close_rs232();
+00030       bool get_can_data(const char* can_cmd_buf, long& bufsize, Message* m);
+00031       bool set_can_data(const Message& m, std::string& can_cmd);
+00032    private:
+00033       HANDLE m_port;
+00034       HANDLE m_read_event;
+00035       HANDLE m_write_event;
+00036       std::string m_residual_buffer;
+00037    };
+00038 
+00039 can_uvccm_win32::can_uvccm_win32(s_BOARD *board) : m_port(INVALID_HANDLE_VALUE),
+00040       m_read_event(0),
+00041       m_write_event(0)
+00042    {
+00043    if (strcmp( board->baudrate, "125K") || !open_rs232(1))
+00044       throw error();
+00045    }
+00046 
+00047 can_uvccm_win32::~can_uvccm_win32()
+00048    {
+00049    close_rs232();
+00050    }
+00051 
+00052 bool can_uvccm_win32::send(const Message *m)
+00053    {
+00054    if (m_port == INVALID_HANDLE_VALUE)
+00055       return false;
+00056 
+00057    // build can_uvccm_win32 command string
+00058    std::string can_cmd;
+00059    set_can_data(*m, can_cmd);
+00060 
+00061    OVERLAPPED overlapped;
+00062    ::memset(&overlapped, 0, sizeof overlapped);
+00063    overlapped.hEvent = m_write_event;
+00064    ::ResetEvent(overlapped.hEvent);
+00065 
+00066    unsigned long bytes_written = 0;
+00067    ::WriteFile(m_port, can_cmd.c_str(), (unsigned long)can_cmd.size(), &bytes_written, &overlapped);
+00068    // wait for write operation completion
+00069    enum { WRITE_TIMEOUT = 1000 };
+00070    ::WaitForSingleObject(overlapped.hEvent, WRITE_TIMEOUT);
+00071    // get number of bytes written
+00072    ::GetOverlappedResult(m_port, &overlapped, &bytes_written, FALSE);
+00073 
+00074    bool result = (bytes_written == can_cmd.size());
+00075 
+00076    return result;
+00077    }
+00078 
+00079 
+00080 bool can_uvccm_win32::receive(Message *m)
+00081    {
+00082    if (m_port == INVALID_HANDLE_VALUE)
+00083       return false;
+00084 
+00085    long res_buffer_size = (long)m_residual_buffer.size();
+00086    bool result = get_can_data(m_residual_buffer.c_str(), res_buffer_size, m);
+00087    if (result)
+00088       {
+00089       m_residual_buffer.erase(0, res_buffer_size);
+00090       return true;
+00091       }
+00092 
+00093    enum { READ_TIMEOUT = 500 };
+00094 
+00095    OVERLAPPED overlapped;
+00096    ::memset(&overlapped, 0, sizeof overlapped);
+00097    overlapped.hEvent = m_read_event;
+00098    ::ResetEvent(overlapped.hEvent);
+00099    unsigned long event_mask = 0;
+00100 
+00101    if (FALSE == ::WaitCommEvent(m_port, &event_mask, &overlapped) && ERROR_IO_PENDING == ::GetLastError())
+00102       {
+00103       if (WAIT_TIMEOUT == ::WaitForSingleObject(overlapped.hEvent, READ_TIMEOUT))
+00104          return false;
+00105       }
+00106 
+00107    // get number of bytes in the input que
+00108    COMSTAT stat;
+00109    ::memset(&stat, 0, sizeof stat);
+00110    unsigned long errors = 0;
+00111    ::ClearCommError(m_port, &errors, &stat);
+00112    if (stat.cbInQue == 0)
+00113       return false;
+00114    char buffer[3000];
+00115 
+00116    unsigned long bytes_to_read = min(stat.cbInQue, sizeof (buffer));
+00117 
+00118    unsigned long bytes_read = 0;
+00119    ::ReadFile(m_port, buffer, bytes_to_read, &bytes_read, &overlapped);
+00120    // wait for read operation completion
+00121    ::WaitForSingleObject(overlapped.hEvent, READ_TIMEOUT);
+00122    // get number of bytes read
+00123    ::GetOverlappedResult(m_port, &overlapped, &bytes_read, FALSE);
+00124    result = false;
+00125    if (bytes_read > 0)
+00126       {
+00127       m_residual_buffer.append(buffer, bytes_read);
+00128       res_buffer_size = (long)m_residual_buffer.size();
+00129       result = get_can_data(m_residual_buffer.c_str(), res_buffer_size, m);
+00130       if (result)
+00131          m_residual_buffer.erase(0, res_buffer_size);
+00132       }
+00133    return result;
+00134    }
+00135 
+00136 bool can_uvccm_win32::open_rs232(int port, int baud_rate)
+00137    {
+00138    if (m_port != INVALID_HANDLE_VALUE)
+00139       return true;
+00140 
+00141    std::ostringstream device_name;
+00142    device_name << "COM" << port;
+00143 
+00144    m_port = ::CreateFile(device_name.str().c_str(),
+00145                          GENERIC_READ | GENERIC_WRITE,
+00146                          0,   // exclusive access
+00147                          NULL,   // no security
+00148                          OPEN_EXISTING,
+00149                          FILE_FLAG_OVERLAPPED,   // overlapped I/O
+00150                          NULL); // null template
+00151 
+00152    // Check the returned handle for INVALID_HANDLE_VALUE and then set the buffer sizes.
+00153    if (m_port == INVALID_HANDLE_VALUE)
+00154       return false;
+00155 
+00156    //  SetCommMask(m_hCom,EV_RXCHAR|EV_TXEMPTY|EV_CTS|EV_DSR|EV_RLSD|EV_BREAK|EV_ERR|EV_RING); //
+00157    ::SetCommMask(m_port, EV_RXFLAG);
+00158 
+00159    COMMTIMEOUTS timeouts;
+00160    ::memset(&timeouts, 0, sizeof (timeouts));
+00161    timeouts.ReadIntervalTimeout = -1;
+00162    timeouts.ReadTotalTimeoutConstant = 0;
+00163    timeouts.ReadTotalTimeoutMultiplier = 0;
+00164    timeouts.WriteTotalTimeoutConstant = 5000;
+00165    timeouts.WriteTotalTimeoutMultiplier = 0;
+00166    SetCommTimeouts(m_port, &timeouts); //
+00167 
+00168    ::SetupComm(m_port, 1024, 512); // set buffer sizes
+00169 
+00170    // Port settings are specified in a Data Communication Block (DCB). The easiest way to initialize a DCB is to call GetCommState to fill in its default values, override the values that you want to change and then call SetCommState to set the values.
+00171    DCB dcb;
+00172    ::memset(&dcb, 0, sizeof (dcb));
+00173    ::GetCommState(m_port, &dcb);
+00174    dcb.BaudRate = baud_rate;
+00175    dcb.ByteSize = 8;
+00176    dcb.Parity = NOPARITY;
+00177    dcb.StopBits = ONESTOPBIT;
+00178    dcb.fAbortOnError = TRUE;
+00179    dcb.EvtChar = 0x0A; // '\n' character
+00180    ::SetCommState(m_port, &dcb);
+00181 
+00182    ::PurgeComm(m_port, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR);
+00183 
+00184    m_read_event = ::CreateEvent(NULL, TRUE, FALSE, NULL);
+00185    m_write_event = ::CreateEvent(NULL, TRUE, FALSE, NULL);
+00186 
+00187    return true;
+00188    }
+00189 
+00190 bool can_uvccm_win32::close_rs232()
+00191    {
+00192    if (m_port != INVALID_HANDLE_VALUE)
+00193       {
+00194       ::PurgeComm(m_port, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR);
+00195       ::CloseHandle(m_port);
+00196       m_port = INVALID_HANDLE_VALUE;
+00197       ::CloseHandle(m_read_event);
+00198       m_read_event = 0;
+00199       ::CloseHandle(m_write_event);
+00200       m_write_event = 0;
+00201       m_residual_buffer.clear();
+00202       }
+00203    return true;
+00204    }
+00205 
+00206 bool can_uvccm_win32::get_can_data(const char* can_cmd_buf, long& bufsize, Message* m)
+00207    {
+00208    if (bufsize < 5)
+00209       {
+00210       bufsize = 0;
+00211       return false;
+00212       }
+00213 
+00214    Message msg;
+00215    ::memset(&msg, 0 , sizeof (msg));
+00216    char colon = 0, type = 0, request = 0;
+00217    std::istringstream buf(std::string(can_cmd_buf, bufsize));
+00218    buf >> colon >> type >> std::hex >> msg.cob_id.w >> request;
+00219    if (colon != ':' || (type != 'S' && type != 'X'))
+00220       {
+00221       bufsize = 0;
+00222       return false;
+00223       }
+00224    if (request == 'N')
+00225       {
+00226       msg.rtr = 0;
+00227       for (msg.len = 0; msg.len < 8; ++msg.len)
+00228          {
+00229          std::string data_byte_str;
+00230          buf >> std::setw(2) >> data_byte_str;
+00231          if (data_byte_str[0] == ';')
+00232             break;
+00233          long byte_val = -1;
+00234          std::istringstream(data_byte_str) >> std::hex >> byte_val;
+00235          if (byte_val == -1)
+00236             {
+00237             bufsize = 0;
+00238             return false;
+00239             }
+00240          msg.data[msg.len] = (UNS8)byte_val;
+00241          }
+00242       if (msg.len == 8)
+00243          {
+00244          char semicolon = 0;
+00245          buf >> semicolon;
+00246          if (semicolon != ';')
+00247             {
+00248             bufsize = 0;
+00249             return false;
+00250             }
+00251          }
+00252 
+00253       }
+00254    else if (request == 'R')
+00255       {
+00256       msg.rtr = 1;
+00257       buf >> msg.len;
+00258       }
+00259    else
+00260       {
+00261       bufsize = 0;
+00262       return false;
+00263       }
+00264 
+00265    bufsize = buf.tellg();
+00266 
+00267    *m = msg;
+00268    return true;
+00269    }
+00270 
+00271 bool can_uvccm_win32::set_can_data(const Message& m, std::string& can_cmd)
+00272    {
+00273    // build can_uvccm_win32 command string
+00274    std::ostringstream can_cmd_str;
+00275    can_cmd_str << ":S" << std::hex << m.cob_id.w;
+00276    if (m.rtr == 1)
+00277       {
+00278       can_cmd_str << 'R' << (long)m.len;
+00279       }
+00280    else
+00281       {
+00282       can_cmd_str << 'N';
+00283       for (int i = 0; i < m.len; ++i)
+00284          can_cmd_str << std::hex << std::setfill('0') << std::setw(2) << (long)m.data[i];
+00285       }
+00286    can_cmd_str << ';';
+00287    can_cmd = can_cmd_str.str();
+00288 #ifdef BOOST_VERSION
+00289    boost::to_upper(can_cmd);
+00290 #else
+00291    std::transform(can_cmd.begin(),can_cmd.end(),can_cmd.begin(),::toupper);
+00292 #endif
+00293    return true;
+00294    }
+00295 
+00296 
+00297 //------------------------------------------------------------------------
+00298 extern "C"
+00299    UNS8 canReceive_driver(CAN_HANDLE fd0, Message *m)
+00300    {
+00301    return (UNS8)(!(reinterpret_cast<can_uvccm_win32*>(fd0)->receive(m)));
+00302    }
+00303 
+00304 extern "C"
+00305    UNS8 canSend_driver(CAN_HANDLE fd0, Message *m)
+00306    {
+00307    return (UNS8)reinterpret_cast<can_uvccm_win32*>(fd0)->send(m);
+00308    }
+00309 
+00310 extern "C"
+00311    CAN_HANDLE canOpen_driver(s_BOARD *board)
+00312    {
+00313    try
+00314       {
+00315       return (CAN_HANDLE) new can_uvccm_win32(board);
+00316       }
+00317    catch (can_uvccm_win32::error&)
+00318       {
+00319       return NULL;
+00320       }
+00321    }
+00322 
+00323 extern "C"
+00324    int canClose_driver(CAN_HANDLE inst)
+00325    {
+00326    delete reinterpret_cast<can_uvccm_win32*>(inst);
+00327    return 1;
+00328    }
+00329 
+00330 
+00331    
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__uvccm__win32_8cpp.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__uvccm__win32_8cpp.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,168 @@ + + +CanFestival: drivers/can_uvccm_win32/can_uvccm_win32.cpp File Reference + + + + +
+
+
+
+ +

can_uvccm_win32.cpp File Reference

#include <sstream>
+#include <iomanip>
+#include <algorithm>
+#include "can_driver.h"
+ +

+Include dependency graph for can_uvccm_win32.cpp:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + +

Data Structures

class  can_uvccm_win32
class  can_uvccm_win32::error

Functions

UNS8 canReceive_driver (CAN_HANDLE fd0, Message *m)
UNS8 canSend_driver (CAN_HANDLE fd0, Message *m)
CAN_HANDLE canOpen_driver (s_BOARD *board)
int canClose_driver (CAN_HANDLE inst)
+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose_driver (CAN_HANDLE  inst  ) 
+
+
+ +

+ +

+Definition at line 324 of file can_uvccm_win32.cpp. +

+

+ +

+
+ + + + + + + + + +
CAN_HANDLE canOpen_driver (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 311 of file can_uvccm_win32.cpp. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 299 of file can_uvccm_win32.cpp. +

+References UNS8. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 305 of file can_uvccm_win32.cpp. +

+References UNS8. +

+

+


Generated on Fri Jun 8 08:51:40 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__uvccm__win32_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__uvccm__win32_8cpp__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $can__driver_8h.html 405,150 509,174 +rect $win32_2applicfg_8h.html 665,150 753,174 +rect $can_8h.html 557,174 616,198 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__uvccm__win32_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__uvccm__win32_8cpp__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b1fefad53c727e5f70e0b9ac0b4f7ab6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__uvccm__win32_8cpp__incl.png Binary file doc/doxygen/html/can__uvccm__win32_8cpp__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__virtual_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,176 @@ + + +CanFestival: drivers/can_virtual/can_virtual.c Source File + + + + +
+
+
+
+ +

can_virtual.c

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 /*
+00024         Virtual CAN driver.
+00025 */
+00026 
+00027 #include <stdio.h>
+00028 #include <unistd.h>
+00029 
+00030 #include "can_driver.h"
+00031 #include "def.h"
+00032 
+00033 #define MAX_NB_CAN_PIPES 16
+00034 
+00035 typedef struct {
+00036   char used;
+00037   int pipe[2];
+00038 } CANPipe;
+00039 
+00040 CANPipe canpipes[MAX_NB_CAN_PIPES] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},};
+00041 
+00042 /*********functions which permit to communicate with the board****************/
+00043 UNS8 canReceive_driver(CAN_HANDLE fd0, Message *m)
+00044 {
+00045         if(read(((CANPipe*)fd0)->pipe[0], m, sizeof(Message)) != (ssize_t)sizeof(Message))
+00046         {
+00047                 return 1;
+00048         }
+00049         return 0;
+00050 }
+00051 
+00052 #define MyCase(fc) case fc: printf(#fc);break;
+00053 void print_message(Message *m)
+00054 {
+00055         int i;
+00056         switch(m->cob_id.w >> 7)
+00057         {
+00058                 MyCase(SYNC)
+00059                 MyCase(TIME_STAMP)
+00060                 MyCase(PDO1tx)
+00061                 MyCase(PDO1rx)
+00062                 MyCase(PDO2tx)
+00063                 MyCase(PDO2rx)
+00064                 MyCase(PDO3tx)
+00065                 MyCase(PDO3rx)
+00066                 MyCase(PDO4tx)
+00067                 MyCase(PDO4rx)
+00068                 MyCase(SDOtx)
+00069                 MyCase(SDOrx)
+00070                 MyCase(NODE_GUARD)
+00071                 MyCase(NMT)
+00072         }
+00073         printf(" rtr:%d", m->rtr);
+00074         printf(" len:%d", m->len);
+00075         for (i = 0 ; i < m->len ; i++)
+00076                 printf(" %02x", m->data[i]);
+00077         printf("\n");
+00078 }
+00079 
+00080 /***************************************************************************/
+00081 UNS8 canSend_driver(CAN_HANDLE fd0, Message *m)
+00082 {
+00083   int i;
+00084   
+00085   printf("%x->[ ", (CANPipe*)fd0 - &canpipes[0]); 
+00086   for(i=0; i < MAX_NB_CAN_PIPES; i++)
+00087   {
+00088         if(canpipes[i].used && &canpipes[i] != (CANPipe*)fd0)
+00089         {
+00090                 printf("%x ",i);        
+00091         }
+00092   }
+00093   printf(" ]"); 
+00094   print_message(m);
+00095   
+00096   // Send to all readers, except myself
+00097   for(i=0; i < MAX_NB_CAN_PIPES; i++)
+00098   {
+00099         if(canpipes[i].used && &canpipes[i] != (CANPipe*)fd0)
+00100         {
+00101                 write(canpipes[i].pipe[1], m, sizeof(Message));
+00102         }
+00103   }
+00104   return 0;
+00105 }
+00106 /*
+00107 int TranslateBaudeRate(char* optarg){
+00108         if(!strcmp( optarg, "1M")) return 1000;
+00109         if(!strcmp( optarg, "500K")) return 500;
+00110         if(!strcmp( optarg, "250K")) return 250;
+00111         if(!strcmp( optarg, "125K")) return 125;
+00112         if(!strcmp( optarg, "100K")) return 100;
+00113         if(!strcmp( optarg, "50K")) return 50;
+00114         if(!strcmp( optarg, "20K")) return 20;
+00115         if(!strcmp( optarg, "10K")) return 10;
+00116         if(!strcmp( optarg, "5K")) return 5;
+00117         if(!strcmp( optarg, "none")) return 0;
+00118         return 0;
+00119 }*/
+00120 /***************************************************************************/
+00121 CAN_HANDLE canOpen_driver(s_BOARD *board)
+00122 {
+00123   int i;  
+00124   for(i=0; i < MAX_NB_CAN_PIPES; i++)
+00125   {
+00126         if(!canpipes[i].used)
+00127                 break;
+00128   }
+00129 
+00130   /* Create the pipe.  */
+00131   if (i==MAX_NB_CAN_PIPES || pipe(canpipes[i].pipe))
+00132     {
+00133       fprintf (stderr, "Open failed.\n");
+00134       return (CAN_HANDLE)NULL;
+00135     }
+00136 
+00137    canpipes[i].used = 1;
+00138    return (CAN_HANDLE) &canpipes[i];
+00139 }
+00140 
+00141 /***************************************************************************/
+00142 int canClose_driver(CAN_HANDLE fd0)
+00143 {
+00144   close(((CANPipe*)fd0)->pipe[0]);
+00145   close(((CANPipe*)fd0)->pipe[1]);
+00146   ((CANPipe*)fd0)->used = 0;
+00147   return 0;
+00148 }
+00149 
+00150 
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__virtual_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,274 @@ + + +CanFestival: drivers/can_virtual/can_virtual.c File Reference + + + + +
+
+
+
+ +

can_virtual.c File Reference

#include <stdio.h>
+#include <unistd.h>
+#include "can_driver.h"
+#include "def.h"
+ +

+Include dependency graph for can_virtual.c:

+ + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + +

Data Structures

struct  CANPipe

Defines

#define MAX_NB_CAN_PIPES   16
#define MyCase(fc)   case fc: printf(#fc);break;

Functions

UNS8 canReceive_driver (CAN_HANDLE fd0, Message *m)
void print_message (Message *m)
UNS8 canSend_driver (CAN_HANDLE fd0, Message *m)
CAN_HANDLE canOpen_driver (s_BOARD *board)
int canClose_driver (CAN_HANDLE fd0)

Variables

CANPipe canpipes [MAX_NB_CAN_PIPES] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},}
+


Define Documentation

+ +
+
+ + + + +
#define MAX_NB_CAN_PIPES   16
+
+
+ +

+ +

+Definition at line 33 of file can_virtual.c. +

+Referenced by canOpen_driver(), and canSend_driver(). +

+

+ +

+
+ + + + + + + + + +
#define MyCase (fc   )    case fc: printf(#fc);break;
+
+
+ +

+ +

+Definition at line 52 of file can_virtual.c. +

+Referenced by print_message(). +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose_driver (CAN_HANDLE  fd0  ) 
+
+
+ +

+ +

+Definition at line 142 of file can_virtual.c. +

+

+ +

+
+ + + + + + + + + +
CAN_HANDLE canOpen_driver (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 121 of file can_virtual.c. +

+References canpipes, MAX_NB_CAN_PIPES, and CANPipe::used. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 43 of file can_virtual.c. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend_driver (CAN_HANDLE  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 81 of file can_virtual.c. +

+References canpipes, MAX_NB_CAN_PIPES, and print_message(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
void print_message (Message m  ) 
+
+
+ +

+ +

+Definition at line 53 of file can_virtual.c. +

+References Message::cob_id, Message::data, Message::len, MyCase, NMT, NODE_GUARD, PDO1rx, PDO1tx, PDO2rx, PDO2tx, PDO3rx, PDO3tx, PDO4rx, PDO4tx, Message::rtr, SDOrx, SDOtx, SYNC, TIME_STAMP, and SHORT_CAN::w. +

+Referenced by canSend_driver(). +

+

+


Variable Documentation

+ +
+
+ + + + +
CANPipe canpipes[MAX_NB_CAN_PIPES] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},}
+
+
+ +

+ +

+Definition at line 40 of file can_virtual.c. +

+Referenced by canOpen_driver(), and canSend_driver(). +

+

+


Generated on Fri Jun 8 08:51:41 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__virtual_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $can__driver_8h.html 291,104 395,128 +rect $def_8h.html 315,153 371,177 +rect $win32_2applicfg_8h.html 569,57 657,81 +rect $can_8h.html 452,107 511,131 +rect $config_8h.html 444,155 519,179 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__virtual_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a4318e9baa98f890ea3510de9dabb93f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c__incl.png Binary file doc/doxygen/html/can__virtual_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__virtual_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $can__virtual_8c.html#6baa544d467cbabaf4bacadc74cc6523 183,6 303,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/can__virtual_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +288b2bb789b064ee1971fbe84675fbe4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/can__virtual_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.png Binary file doc/doxygen/html/can__virtual_8c_def95aee49efa13dd047d0b3b5507ad3_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,388 @@ + + +CanFestival: include/hcs12/candriver.h Source File + + + + +
+
+
+
+ +

candriver.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #ifndef __CANDRIVER__
+00024 #define __CANDRIVER__
+00025 
+00026 //#include DEBUG_CAN
+00027 
+00028 #include <can.h>
+00029 #include <objdictdef.h>
+00030 
+00031 
+00032 /*
+00033 The CAN message received are stored in a fifo stack
+00034 We consider one stack for all the 5 can devices. It is a choice !
+00035 */
+00036 
+00037 /* Be free to change this value */
+00038 #define MAX_STACK_MSG_RCV 5
+00039 
+00040 /* Number of incomings and outcomings CAN Line. The layer CanOpen must be
+00041 used only for ONE line CAN. But you may used one or more CAN drivers, without
+00042 a CanOpen layer.
+00043 Only 2 lines are implemented. If more lines are needed, copy void __attribute__((interrupt)) can0HdlRcv (void) to void __attribute__((interrupt)) canXHdlRcv (void) and make 
+00044 changes : [0] to [x], CAN0 to CANX, etc
+00045 */
+00046 #define NB_LINE_CAN 1
+00047 
+00048 /* Whose hardware HCS12 CAN block is used for CanOpen ? Chose between CAN0, ..., CAN4
+00049 If you use CANOPEN_LINE_NUMBER_USED = CANI, the value of NB_LINE_CAN must be
+00050 more or equal to I + 1
+00051 Value other than CAN0 not tested, but should work fine.
+00052  */
+00053 #define CANOPEN_LINE_NUMBER_USED CAN0
+00054 
+00055 /* Stack of received messages 
+00056 MSG received on CAN0 module is stored in stackMsgRcv[0], etc
+00057 */
+00058 extern volatile Message stackMsgRcv[NB_LINE_CAN][MAX_STACK_MSG_RCV];
+00059 
+00060 
+00061 /* Copy from the stack of the message to treat */
+00062 extern Message msgRcv;
+00063 
+00064 
+00065 /* To move on the stack of messages 
+00066  */
+00067 typedef struct {
+00068   UNS8 w ; /* received */
+00069   UNS8 r ; /* To transmit */
+00070 } t_pointerStack;
+00071 
+00072 
+00073 /* Pointer for write or read a message in/from the reception stack */
+00074 extern volatile t_pointerStack ptrMsgRcv[NB_LINE_CAN];
+00075 
+00076 /* 
+00077 Parameters to define the  clock system for the CAN bus
+00078 example : 
+00079 CAN_BUS_TIME clk = {
+00080       1,  // clksrc: Use the bus clock : 16 MHz, the freq. of the quartz's board        
+00081       0,  // brp :  chose btw 0 and 63 (6 bits).  freq time quantum = 16MHz / (brp + 1) 
+00082       1,  // sjw : chose btw 0 and 3 (2 bits). Sync on (sjw + 1 ) time quantum          
+00083       1,  // samp : chose btw 0 and 3 (2 bits) (samp + 1 ) samples per bit              
+00084       4,  // tseg2 : chose btw 0 and 7 (3 bits) Segment 2 width = (tseg2 + 1)  tq       
+00085       9,  // tseg1 : chose btw 0 and 15 (4 bits) Segment 1 width = (tseg1 + 1)  tq      
+00086 
+00087       
+00088       With these values, 
+00089       - The width of the bit time is 16 time quantum :
+00090           - 1 tq for the SYNC segment (could not be modified)
+00091           - 10 tq for the TIME 1 segment (tseg1 = 9)
+00092           - 5 tq for the TIME 2 segment (tseg2 = 4)
+00093       - Because the bus clock of the MSCAN is 16 MHZ, and the 
+00094         freq of the time quantum is 16 MHZ (brp = 0), and  there are 16 tq in the bit time,
+00095         so the freq of the bit time is 1 MHz.
+00096       
+00097   };
+00098 */
+00099 typedef struct {
+00100   UNS8  clksrc;     /* use of internal clock  or clock bus        */
+00101   UNS8  brp;        /* define the bus speed                       */
+00102   UNS8  sjw;        /* Number of time quantum for synchro - 1     */
+00103   UNS8  samp;       /* Number of sample per bit (1 or 3)          */
+00104   UNS8  tseg2;      /* Width of the time segment 2 (in tq) - 1    */
+00105   UNS8  tseg1;      /* Width of the time segment 1 (in tq) - 1    */
+00106 } canBusTime;
+00107 
+00108 /* 
+00109 Parameters to init the filters for received messages
+00110 */
+00111 typedef struct {
+00112   UNS8  idam;        /* Put 0x01 for 16 bits acceptance filter    */
+00113   UNS8  canidar0;
+00114   UNS8  canidmr0;
+00115   UNS8  canidar1;
+00116   UNS8  canidmr1; 
+00117   UNS8  canidar2;
+00118   UNS8  canidmr2;
+00119   UNS8  canidar3;
+00120   UNS8  canidmr3;
+00121   UNS8  canidar4;
+00122   UNS8  canidmr4;
+00123   UNS8  canidar5;
+00124   UNS8  canidmr5; 
+00125   UNS8  canidar6;
+00126   UNS8  canidmr6;
+00127   UNS8  canidar7;
+00128   UNS8  canidmr7;  
+00129 } canBusFilterInit;
+00130 
+00131 /*
+00132 Parameters to init MSCAN
+00133 Example
+00134 CAN_BUS_INIT bi = {
+00135     0,     no low power                  
+00136     0,     no time stamp                
+00137     1,     enable MSCAN                 
+00138     0,     clock source : oscillator    
+00139     0,     no loop back                 
+00140     0,     no listen only               
+00141     0,     no low pass filter for wk up 
+00142     {
+00143       1,       Use the oscillator clock                         
+00144       0,       Quartz oscillator : freq time quantum =  freq oscillator clock / (0 + 1)
+00145       1,       Sync on (1 + 1) time quantum                            
+00146       1,       1 sample per bit                                  
+00147       4,       time segment 2 width : (4 + 1) tq                     
+00148       9,       time segment 1 width : (9 + 1) tq                     
+00149     }
+00150   };   
+00151 */
+00152 
+00153 typedef struct {
+00154   UNS8  cswai;      /* Low power/normal in wait mode   (1/0)      */
+00155   UNS8  time;       /* Timer for time-stamp enable/disable (1/0)  */
+00156   UNS8  cane;       /* Enable MSCAN (yes=1) Do it !               */
+00157   UNS8  clksrc;     /* clock source bus/oscillator (1/0)          */
+00158   UNS8  loopb;      /* loop back mode for test (yes=1/no=0)       */
+00159   UNS8  listen;     /* MSCAN is listen only (yes=1/no=0 ie normal)*/
+00160   UNS8  wupm;       /* low pas filter for wake up (yes=1/no=0)    */
+00161   canBusTime 
+00162         clk;        /* Values for clock system init               */
+00163   canBusFilterInit
+00164   fi;               /* Values for filter acceptance msg init      */
+00165   
+00166 } canBusInit;
+00167 
+00168 extern canBusInit bi;
+00169 
+00170 
+00171 
+00172 /*
+00173 For the received messsage, add a Identificator to
+00174 the list of ID to accept.
+00175 You can use several times this function to accept several messages.
+00176 It configures registers on 16 bits.
+00177 Automatically, it configure the filter to
+00178 - not accepting the msg on 29 bits (ide=1 refused)
+00179 - not filtering on rtr state (rtr = 1 and rtr = 0 are accepted)
+00180 Algo :
+00181 if CANIDARx = 0 then  CANIDARx = id . else do nothing
+00182 CANIDMRx = CANIDMRx OR (CANIDARx XOR id )
+00183 nFilter : 0 to 3
+00184 Must be in init mode before.
+00185 */
+00186 char canAddIdToFilter (
+00187                        UNS16 adrCAN,
+00188                        UNS8 nFilter,
+00189                        UNS16 id /* 11 bits, the 5 msb not used */
+00190                        );
+00191 
+00192 /*
+00193  Use this function to change the CAN message acceptance filters and masks.
+00194  */
+00195 char canChangeFilter (UNS16 adrCAN, canBusFilterInit fi);
+00196 
+00197 
+00198 /*
+00199 Enable one of the 5 MSCAN.
+00200 Must be done only one time after a reset of the CPU.
+00201 To do before any CAN initialisation
+00202 */
+00203 char canEnable (
+00204                 UNS16 adrCAN /* First address of MSCANx registers */
+00205                 );
+00206 
+00207 
+00208 /* 
+00209 Initialize one of the 5 mscan
+00210 can be done multiple times in your code
+00211 Return 0 : OK
+00212 When it return from the function,
+00213 mscan is on sleep mode with wake up disabled.
+00214       is not on init mode
+00215 */
+00216 char canInit (
+00217               UNS16 adrCAN,   /* First address of MSCANx registers  */
+00218               canBusInit 
+00219               bi       /* All the parameters to init the bus */
+00220               );
+00221 /*
+00222 Initialize the parameters of the system clock for the MSCAN
+00223 You must put the MSCAN in sleep mode before with canSleepMode()
+00224 Return 0 : OK
+00225        1 : Not in sleep mode. Unable to init MSCAN 
+00226 */
+00227 char canInitClock (
+00228                    UNS16 adrCAN, /* First address of MSCANx registers */
+00229                    canBusTime clk);
+00230 
+00231 /* 
+00232 Initialize one filter for acceptance of received msg.
+00233 Filters MUST be configured on 16 bits 
+00234 (See doc Motorola mscan bloc guide fig 4.3)
+00235 Must be in init mode before.
+00236 adrCAN  : adress of the first register of the mscan module
+00237 nFilter : the filter : 0 to 3.
+00238 ar : Value to write in acceptance register
+00239      Beware ! hight byte and low byte inverted.
+00240      for example if nFilter = 0, hight byte of ar -> CANIDAR0
+00241                                  low   byte of ar -> CANIDAR1
+00242 mr : Value to write in mask register
+00243      Beware ! hight byte and low byte inverted.
+00244      for example if nFilter = 2, hight byte of ar -> CANIDMR4
+00245                                  low   byte of ar -> CANIDMR5
+00246 */
+00247 char canInit1Filter (
+00248                      UNS16 adrCAN, 
+00249                      UNS8 nFilter,
+00250                      UNS16 ar,
+00251                      UNS16 mr
+00252                      );
+00253 
+00254 /*
+00255 Initialise the parameters for filtering the messages received.
+00256 You must put the MSCAN in init mode before with canInitMode()
+00257 Return 0 : OK
+00258        1 : Not in init mode. Unable to init MSCAN 
+00259 */
+00260 
+00261 char canInitFilter (
+00262                     UNS16 adrCAN, /* First address of MSCANx registers */
+00263                     canBusFilterInit fi);
+00264 /*
+00265 Put one of the 5 mscan in Init mode
+00266 Loop until init mode is reached.
+00267 */
+00268 
+00269 char canInitMode (
+00270                   UNS16 adrCAN /* First address of MSCANx registers */
+00271                   );    
+00272 
+00273 /*
+00274 Leave the Init mode
+00275 loop until init mode leaved.
+00276 */
+00277 
+00278 char canInitModeQ (
+00279                    UNS16 adrCAN /* First address of MSCANx registers */
+00280                    );
+00281 
+00282 
+00283 
+00284 /*
+00285 Transmit a msg on CAN "adrCan"
+00286 Return : 0      No error
+00287          other  error : no buffer available to make the transmission
+00288 */      
+00289 
+00290 char canMsgTransmit (
+00291                      UNS16 adrCAN,  /* First address of MSCANx registers */
+00292                      Message msg  /* Message to transmit                */
+00293                      );
+00294 
+00295 /*
+00296  Set the interruptions. Must be call just after having left the init mode.
+00297  */          
+00298 char canSetInterrupt (UNS16 adrCAN);                 
+00299 
+00300 /*
+00301 Put one of the 5 mscan in sleep mode
+00302 Beware! If some messages are to be sent,
+00303 or if it is receiving, going into sleep mode
+00304 may take time.
+00305 Wake up is disabled : stay in sleep mode even if
+00306 bus traffic detected.
+00307 return 0 if 0K, other if error : mscan is on init mode.
+00308 Stay in this function until the sleep mode
+00309 is reached.
+00310 */
+00311 char canSleepMode (
+00312                    UNS16 adrCAN /* First address of MSCANx registers */
+00313                    );   
+00314 
+00315 /*
+00316 Leave the sleep mode
+00317 loop until sleep mode leaved.
+00318 return 0 : OK
+00319 return 1 : error : in init mode
+00320 */
+00321 char canSleepModeQ (
+00322                     UNS16 adrCAN /* First address of MSCANx registers */
+00323                     );  
+00324 
+00325 /*
+00326 Put one of the 5 mscan in sleep mode
+00327 MSCAN must not be in init mode.
+00328 wake up is enabled : wake up if traffic on CAN is detected
+00329 Beware! If some messages are to be sent,
+00330 or if it is receiving, going into sleep mode
+00331 may take time.
+00332 Loop until sleep mode reached.
+00333 return 0 if 0K, other if error
+00334 */
+00335 char canSleepWupMode (
+00336                       UNS16 adrCAN /* First address of MSCANx registers */
+00337                       );        
+00338 
+00339 /*
+00340 Test if one of the 5 mscan is in init mode.
+00341 Return 
+00342        0     -> Not in init mode
+00343        other -> In init mode
+00344 */
+00345 char canTestInitMode (
+00346                       UNS16 adrCAN /* First address of MSCANx registers */
+00347                       );   
+00348 
+00349 /*
+00350 Test if one of the 5 mscan is in sleep mode.
+00351 Return 
+00352        0     -> Not in sleep mode
+00353        other -> In sleep mode
+00354 */
+00355 char canTestSleepMode (
+00356                        UNS16 adrCAN /* First address of MSCANx registers */
+00357                        );   
+00358 
+00359 
+00360 
+00361 #endif /*__CANDRIVER__*/
+00362 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,790 @@ + + +CanFestival: include/hcs12/candriver.h File Reference + + + + +
+
+
+
+ +

candriver.h File Reference

#include <can.h>
+#include <objdictdef.h>
+ +

+Include dependency graph for candriver.h:

+ + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Data Structures

struct  t_pointerStack
struct  canBusTime
struct  canBusFilterInit
struct  canBusInit

Defines

#define MAX_STACK_MSG_RCV   5
#define NB_LINE_CAN   1
#define CANOPEN_LINE_NUMBER_USED   CAN0

Functions

char canAddIdToFilter (UNS16 adrCAN, UNS8 nFilter, UNS16 id)
char canChangeFilter (UNS16 adrCAN, canBusFilterInit fi)
char canEnable (UNS16 adrCAN)
char canInit (UNS16 adrCAN, canBusInit bi)
char canInitClock (UNS16 adrCAN, canBusTime clk)
char canInit1Filter (UNS16 adrCAN, UNS8 nFilter, UNS16 ar, UNS16 mr)
char canInitFilter (UNS16 adrCAN, canBusFilterInit fi)
char canInitMode (UNS16 adrCAN)
char canInitModeQ (UNS16 adrCAN)
char canMsgTransmit (UNS16 adrCAN, Message msg)
char canSetInterrupt (UNS16 adrCAN)
char canSleepMode (UNS16 adrCAN)
char canSleepModeQ (UNS16 adrCAN)
char canSleepWupMode (UNS16 adrCAN)
char canTestInitMode (UNS16 adrCAN)
char canTestSleepMode (UNS16 adrCAN)

Variables

volatile Message stackMsgRcv [NB_LINE_CAN][MAX_STACK_MSG_RCV]
Message msgRcv
volatile t_pointerStack ptrMsgRcv [NB_LINE_CAN]
canBusInit bi
+


Define Documentation

+ +
+
+ + + + +
#define CANOPEN_LINE_NUMBER_USED   CAN0
+
+
+ +

+ +

+Definition at line 53 of file candriver.h. +

+Referenced by canSend(), f_can_receive(), gene_SYNC_operational(), gene_SYNC_preOperational(), and initSensor(). +

+

+ +

+
+ + + + +
#define MAX_STACK_MSG_RCV   5
+
+
+ +

+ +

+Definition at line 38 of file candriver.h. +

+Referenced by f_can_receive(). +

+

+ +

+
+ + + + +
#define NB_LINE_CAN   1
+
+
+ +

+ +

+Definition at line 46 of file candriver.h. +

+

+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char canAddIdToFilter (UNS16  adrCAN,
UNS8  nFilter,
UNS16  id 
)
+
+
+ +

+ +

+Definition at line 210 of file canOpenDriver.c. +

+References CANIDAR0, CANIDAR2, CANIDAR4, CANIDAR6, canTestInitMode(), IO_PORTS_16, IO_PORTS_8, MSG_WAR, and UNS8. +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canChangeFilter (UNS16  adrCAN,
canBusFilterInit  fi 
)
+
+
+ +

+ +

+Definition at line 250 of file canOpenDriver.c. +

+References canInitFilter(), canInitMode(), canInitModeQ(), canSetInterrupt(), canSleepMode(), canSleepModeQ(), and canTestInitMode(). +

+Referenced by gene_SYNC_operational(), and gene_SYNC_preOperational(). +

+Here is the call graph for this function:

+ + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
char canEnable (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 266 of file canOpenDriver.c. +

+References CANCTL1, and IO_PORTS_8. +

+Referenced by canInit(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canInit (UNS16  adrCAN,
canBusInit  bi 
)
+
+
+ +

+ +

+Definition at line 277 of file canOpenDriver.c. +

+References CANCTL0, CANCTL1, canBusInit::cane, canEnable(), canInitClock(), canInitFilter(), canInitMode(), canInitModeQ(), canSetInterrupt(), canSleepMode(), canSleepModeQ(), canTestInitMode(), canBusInit::clk, canBusInit::cswai, canBusInit::fi, IO_PORTS_8, canBusInit::listen, canBusInit::loopb, canBusInit::time, and canBusInit::wupm. +

+Here is the call graph for this function:

+ + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
char canInit1Filter (UNS16  adrCAN,
UNS8  nFilter,
UNS16  ar,
UNS16  mr 
)
+
+
+ +

+ +

+Definition at line 335 of file canOpenDriver.c. +

+References CANIDAR0, CANIDAR2, CANIDAR4, CANIDAR6, canTestInitMode(), IO_PORTS_8, MSG_WAR, and UNS8. +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canInitClock (UNS16  adrCAN,
canBusTime  clk 
)
+
+
+ +

+ +

+Definition at line 313 of file canOpenDriver.c. +

+References canBusTime::brp, CANBTR0, CANBTR1, CANCTL1, canTestInitMode(), canBusTime::clksrc, IO_PORTS_8, MSG_WAR, canBusTime::samp, canBusTime::sjw, canBusTime::tseg1, and canBusTime::tseg2. +

+Referenced by canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canInitFilter (UNS16  adrCAN,
canBusFilterInit  fi 
)
+
+
+ +

+ +

+Definition at line 364 of file canOpenDriver.c. +

+References CANIDAC, canBusFilterInit::canidar0, CANIDAR0, canBusFilterInit::canidar1, CANIDAR1, canBusFilterInit::canidar2, CANIDAR2, canBusFilterInit::canidar3, CANIDAR3, canBusFilterInit::canidar4, CANIDAR4, canBusFilterInit::canidar5, CANIDAR5, canBusFilterInit::canidar6, CANIDAR6, canBusFilterInit::canidar7, CANIDAR7, canBusFilterInit::canidmr0, CANIDMR0, canBusFilterInit::canidmr1, CANIDMR1, canBusFilterInit::canidmr2, CANIDMR2, canBusFilterInit::canidmr3, CANIDMR3, canBusFilterInit::canidmr4, CANIDMR4, canBusFilterInit::canidmr5, CANIDMR5, canBusFilterInit::canidmr6, CANIDMR6, canBusFilterInit::canidmr7, CANIDMR7, canTestInitMode(), canBusFilterInit::idam, IO_PORTS_8, and MSG_WAR. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canInitMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 392 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canInitModeQ (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 401 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
char canMsgTransmit (UNS16  adrCAN,
Message  msg 
)
+
+
+ +

+ +

+Definition at line 410 of file canOpenDriver.c. +

+References CANTBSEL, CANTFLG, CANTRSDTA, CANTRSID, CANTRSLEN, CANTRSPRI, Message::cob_id, Message::data, IO_PORTS_8, Message::len, MSG_WAR, Message::rtr, UNS8, and SHORT_CAN::w. +

+Referenced by canSend(). +

+

+ +

+
+ + + + + + + + + +
char canSetInterrupt (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 445 of file canOpenDriver.c. +

+References CANRIER, CANTIER, and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+

+ +

+
+ + + + + + + + + +
char canSleepMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 452 of file canOpenDriver.c. +

+References CANCTL0, canTestSleepMode(), and IO_PORTS_8. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
char canSleepModeQ (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 466 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), canTestSleepMode(), IO_PORTS_8, and MSG_WAR. +

+Referenced by canChangeFilter(), and canInit(). +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + +
char canSleepWupMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 480 of file canOpenDriver.c. +

+References CANCTL0, canTestInitMode(), canTestSleepMode(), IO_PORTS_8, and MSG_WAR. +

+Here is the call graph for this function:

+ + + + + +
+

+ +

+
+ + + + + + + + + +
char canTestInitMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 493 of file canOpenDriver.c. +

+References CANCTL1, and IO_PORTS_8. +

+Referenced by canAddIdToFilter(), canChangeFilter(), canInit(), canInit1Filter(), canInitClock(), canInitFilter(), canInitMode(), canInitModeQ(), canSleepModeQ(), and canSleepWupMode(). +

+

+ +

+
+ + + + + + + + + +
char canTestSleepMode (UNS16  adrCAN  ) 
+
+
+ +

+ +

+Definition at line 499 of file canOpenDriver.c. +

+References CANCTL1, and IO_PORTS_8. +

+Referenced by canSleepMode(), canSleepModeQ(), and canSleepWupMode(). +

+

+


Variable Documentation

+ +
+
+ + + + +
canBusInit bi
+
+
+ +

+ +

+

+ +

+
+ + + + +
Message msgRcv
+
+
+ +

+ +

+

+ +

+
+ + + + +
volatile t_pointerStack ptrMsgRcv[NB_LINE_CAN]
+
+
+ +

+ +

+

+ +

+
+ + + + +
volatile Message stackMsgRcv[NB_LINE_CAN][MAX_STACK_MSG_RCV]
+
+
+ +

+ +

+

+


Generated on Fri Jun 8 08:51:58 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_00ffb46abacfdfa56ebc70e15164113e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_00ffb46abacfdfa56ebc70e15164113e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 168,6 299,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_00ffb46abacfdfa56ebc70e15164113e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_00ffb46abacfdfa56ebc70e15164113e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +15e4cc731a43ed7c22fd0600a2b0ab82 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_00ffb46abacfdfa56ebc70e15164113e_cgraph.png Binary file doc/doxygen/html/candriver_8h_00ffb46abacfdfa56ebc70e15164113e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_0b98e4800c82d99981833aa4207f1eb9_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_0b98e4800c82d99981833aa4207f1eb9_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 160,6 291,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_0b98e4800c82d99981833aa4207f1eb9_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_0b98e4800c82d99981833aa4207f1eb9_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e1e5e93debe4e9347aafce187b5afb9b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_0b98e4800c82d99981833aa4207f1eb9_cgraph.png Binary file doc/doxygen/html/candriver_8h_0b98e4800c82d99981833aa4207f1eb9_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 215,6 345,30 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 207,54 353,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +593b79c5a3e41a49044f9a2ee6a71cc4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.png Binary file doc/doxygen/html/candriver_8h_1ae1ad5d66ac87085baf5b9d0a4e62ca_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_3c4f7a31d94e5e7c7322535467b806de_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_3c4f7a31d94e5e7c7322535467b806de_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $canOpenDriver_8c.html#5a53a89d2e348d70331e6ebe269d155a 143,5 236,29 +rect $canOpenDriver_8c.html#6ec3ce6d79012dd8a08fa5aeb6a0489f 138,53 242,77 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 314,176 444,200 +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 139,152 240,176 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 138,200 242,224 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 132,248 247,272 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 126,296 254,320 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 130,392 250,416 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 124,344 255,368 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 306,368 452,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_3c4f7a31d94e5e7c7322535467b806de_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_3c4f7a31d94e5e7c7322535467b806de_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eaf42e75d81535bb7d7802575f8555eb \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_3c4f7a31d94e5e7c7322535467b806de_cgraph.png Binary file doc/doxygen/html/candriver_8h_3c4f7a31d94e5e7c7322535467b806de_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_5fb549697afb7918607aa113e01c543d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_5fb549697afb7918607aa113e01c543d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 163,6 294,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_5fb549697afb7918607aa113e01c543d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_5fb549697afb7918607aa113e01c543d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e0c4d7aaa6c96bb9fe16a0312c1a66e0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_5fb549697afb7918607aa113e01c543d_cgraph.png Binary file doc/doxygen/html/candriver_8h_5fb549697afb7918607aa113e01c543d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 157,6 288,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9df8993328a87e7c855980db51c97e22 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.png Binary file doc/doxygen/html/candriver_8h_6ec3ce6d79012dd8a08fa5aeb6a0489f_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_751a41c9747b96ab400b5599370cea83_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_751a41c9747b96ab400b5599370cea83_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 203,5 304,29 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 378,104 508,128 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 202,104 306,128 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 196,152 311,176 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 190,200 318,224 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 194,296 314,320 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 188,248 319,272 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 370,272 516,296 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_751a41c9747b96ab400b5599370cea83_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_751a41c9747b96ab400b5599370cea83_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +36d7fa098d3453676b40c7405fda0fb9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_751a41c9747b96ab400b5599370cea83_cgraph.png Binary file doc/doxygen/html/candriver_8h_751a41c9747b96ab400b5599370cea83_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $can_8h.html 272,54 331,78 +rect $objdictdef_8h.html 251,102 352,126 +rect $win32_2applicfg_8h.html 401,54 489,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7fd6a4b232eb1a660f3b3d2cbddc4875 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h__incl.png Binary file doc/doxygen/html/candriver_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_a89f28005eea54f5b216eb72a18d45f3_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_a89f28005eea54f5b216eb72a18d45f3_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 196,6 327,30 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 188,54 335,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_a89f28005eea54f5b216eb72a18d45f3_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_a89f28005eea54f5b216eb72a18d45f3_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2f5b91891ce149e651cbc7ae3ea3020b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_a89f28005eea54f5b216eb72a18d45f3_cgraph.png Binary file doc/doxygen/html/candriver_8h_a89f28005eea54f5b216eb72a18d45f3_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_acfd181d5b055d1403930442e28ac643_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_acfd181d5b055d1403930442e28ac643_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 187,6 318,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_acfd181d5b055d1403930442e28ac643_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_acfd181d5b055d1403930442e28ac643_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1d3d0701f56786bd979a2f849234a8d0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_acfd181d5b055d1403930442e28ac643_cgraph.png Binary file doc/doxygen/html/candriver_8h_acfd181d5b055d1403930442e28ac643_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_b4502eef7616b25c74b1ac5a2245b085_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_b4502eef7616b25c74b1ac5a2245b085_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 155,6 286,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_b4502eef7616b25c74b1ac5a2245b085_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_b4502eef7616b25c74b1ac5a2245b085_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fa6f7870e48fe919849408dbdaf2e012 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_b4502eef7616b25c74b1ac5a2245b085_cgraph.png Binary file doc/doxygen/html/candriver_8h_b4502eef7616b25c74b1ac5a2245b085_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_c7773223579ec7e0fab5238df214da89_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_c7773223579ec7e0fab5238df214da89_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 178,6 324,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_c7773223579ec7e0fab5238df214da89_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/candriver_8h_c7773223579ec7e0fab5238df214da89_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +3cc04932ec091ce0a5b2d2fd99eaad2a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/candriver_8h_c7773223579ec7e0fab5238df214da89_cgraph.png Binary file doc/doxygen/html/candriver_8h_c7773223579ec7e0fab5238df214da89_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canmsg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,127 @@ + + +CanFestival: drivers/can_lincan/canmsg.h Source File + + + + +
+
+
+
+ +

canmsg.h

Go to the documentation of this file.
00001 /* canmsg.h - common kernel-space and user-space CAN message structure
+00002  * Linux CAN-bus device driver.
+00003  * Written by Pavel Pisa - OCERA team member
+00004  * email:pisa@cmp.felk.cvut.cz
+00005  * This software is released under the GPL-License.
+00006  * Version lincan-0.3  17 Jun 2004
+00007  */
+00008 
+00009 #ifndef _CANMSG_T_H
+00010 #define _CANMSG_T_H
+00011 
+00012 #ifdef __KERNEL__
+00013 
+00014 #include <linux/time.h>
+00015 #include <linux/types.h>
+00016 
+00017 #else /* __KERNEL__ */
+00018 
+00019 #include <sys/time.h>
+00020 #include <sys/types.h>
+00021 
+00022 #endif /* __KERNEL__ */
+00023 
+00024 #ifdef __cplusplus
+00025 extern "C" {
+00026 #endif
+00027 
+00028 /*
+00029  * CAN_MSG_VERSION_2 enables new canmsg_t layout compatible with
+00030  * can4linux project from http://www.port.de/
+00031  *
+00032  */
+00033 #define CAN_MSG_VERSION_2
+00034 
+00035 /* Number of data bytes in one CAN message */
+00036 #define CAN_MSG_LENGTH 8
+00037 
+00038 #ifdef CAN_MSG_VERSION_2
+00039 
+00040 typedef struct timeval canmsg_tstamp_t ;
+00041 
+00042 typedef unsigned long canmsg_id_t;
+00043 
+00059 struct canmsg_t {
+00060         int             flags;
+00061         int             cob;
+00062         canmsg_id_t     id;
+00063         canmsg_tstamp_t timestamp;
+00064         unsigned short  length;
+00065         unsigned char   data[CAN_MSG_LENGTH];
+00066 };
+00067 
+00068 #else /*CAN_MSG_VERSION_2*/
+00069 #ifndef PACKED
+00070 #define PACKED __attribute__((packed))
+00071 #endif
+00072 /* Old, deprecated version of canmsg_t structure */
+00073 struct canmsg_t {
+00074         short           flags;
+00075         int             cob;
+00076         canmsg_id_t     id;
+00077         unsigned long   timestamp;
+00078         unsigned int    length;
+00079         unsigned char   data[CAN_MSG_LENGTH];
+00080 } PACKED;
+00081 #endif /*CAN_MSG_VERSION_2*/
+00082 
+00083 typedef struct canmsg_t canmsg_t;
+00084 
+00105 struct canfilt_t {
+00106         int             flags;
+00107         int             queid;
+00108         int             cob;
+00109         canmsg_id_t     id;
+00110         canmsg_id_t     mask;
+00111 };
+00112 
+00113 typedef struct canfilt_t canfilt_t;
+00114 
+00115 /* Definitions to use for canmsg_t and canfilt_t flags */
+00116 #define MSG_RTR   (1<<0)
+00117 #define MSG_OVR   (1<<1)
+00118 #define MSG_EXT   (1<<2)
+00119 #define MSG_LOCAL (1<<3)
+00120 /* If you change above lines, check canque_filtid2internal function */
+00121 
+00122 /* Additional definitions used for canfilt_t only */
+00123 #define MSG_FILT_MASK_SHIFT   8
+00124 #define MSG_RTR_MASK   (MSG_RTR<<MSG_FILT_MASK_SHIFT)
+00125 #define MSG_EXT_MASK   (MSG_EXT<<MSG_FILT_MASK_SHIFT)
+00126 #define MSG_LOCAL_MASK (MSG_LOCAL<<MSG_FILT_MASK_SHIFT)
+00127 #define MSG_PROCESSLOCAL (MSG_OVR<<MSG_FILT_MASK_SHIFT)
+00128 
+00129 /* Can message ID mask */
+00130 #define MSG_ID_MASK ((1l<<29)-1)
+00131 
+00132 #ifdef __cplusplus
+00133 } /* extern "C"*/
+00134 #endif
+00135 
+00136 #endif /*_CANMSG_T_H*/
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canmsg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,360 @@ + + +CanFestival: drivers/can_lincan/canmsg.h File Reference + + + + +
+
+
+
+ +

canmsg.h File Reference

#include <sys/time.h>
+#include <sys/types.h>
+ +

+Include dependency graph for canmsg.h:

+ +

+This graph shows which files directly or indirectly include this file:

+ + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Data Structures

struct  canmsg_t
struct  canfilt_t

Defines

#define CAN_MSG_VERSION_2
#define CAN_MSG_LENGTH   8
#define MSG_RTR   (1<<0)
#define MSG_OVR   (1<<1)
#define MSG_EXT   (1<<2)
#define MSG_LOCAL   (1<<3)
#define MSG_FILT_MASK_SHIFT   8
#define MSG_RTR_MASK   (MSG_RTR<<MSG_FILT_MASK_SHIFT)
#define MSG_EXT_MASK   (MSG_EXT<<MSG_FILT_MASK_SHIFT)
#define MSG_LOCAL_MASK   (MSG_LOCAL<<MSG_FILT_MASK_SHIFT)
#define MSG_PROCESSLOCAL   (MSG_OVR<<MSG_FILT_MASK_SHIFT)
#define MSG_ID_MASK   ((1l<<29)-1)

Typedefs

typedef timeval canmsg_tstamp_t
typedef unsigned long canmsg_id_t
typedef canmsg_t canmsg_t
typedef canfilt_t canfilt_t
+


Define Documentation

+ +
+
+ + + + +
#define CAN_MSG_LENGTH   8
+
+
+ +

+ +

+Definition at line 36 of file canmsg.h. +

+

+ +

+
+ + + + +
#define CAN_MSG_VERSION_2
+
+
+ +

+ +

+Definition at line 33 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_EXT   (1<<2)
+
+
+ +

+ +

+Definition at line 118 of file canmsg.h. +

+Referenced by canReceive_driver(), and canSend_driver(). +

+

+ +

+
+ + + + +
#define MSG_EXT_MASK   (MSG_EXT<<MSG_FILT_MASK_SHIFT)
+
+
+ +

+ +

+Definition at line 125 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_FILT_MASK_SHIFT   8
+
+
+ +

+ +

+Definition at line 123 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_ID_MASK   ((1l<<29)-1)
+
+
+ +

+ +

+Definition at line 130 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_LOCAL   (1<<3)
+
+
+ +

+ +

+Definition at line 119 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_LOCAL_MASK   (MSG_LOCAL<<MSG_FILT_MASK_SHIFT)
+
+
+ +

+ +

+Definition at line 126 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_OVR   (1<<1)
+
+
+ +

+ +

+Definition at line 117 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_PROCESSLOCAL   (MSG_OVR<<MSG_FILT_MASK_SHIFT)
+
+
+ +

+ +

+Definition at line 127 of file canmsg.h. +

+

+ +

+
+ + + + +
#define MSG_RTR   (1<<0)
+
+
+ +

+ +

+Definition at line 116 of file canmsg.h. +

+Referenced by canReceive_driver(), and canSend_driver(). +

+

+ +

+
+ + + + +
#define MSG_RTR_MASK   (MSG_RTR<<MSG_FILT_MASK_SHIFT)
+
+
+ +

+ +

+Definition at line 124 of file canmsg.h. +

+

+


Typedef Documentation

+ +
+
+ + + + +
typedef struct canfilt_t canfilt_t
+
+
+ +

+ +

+Definition at line 113 of file canmsg.h. +

+

+ +

+
+ + + + +
typedef unsigned long canmsg_id_t
+
+
+ +

+ +

+Definition at line 42 of file canmsg.h. +

+

+ +

+
+ + + + +
typedef struct canmsg_t canmsg_t
+
+
+ +

+ +

+Definition at line 83 of file canmsg.h. +

+

+ +

+
+ + + + +
typedef struct timeval canmsg_tstamp_t
+
+
+ +

+ +

+Definition at line 40 of file canmsg.h. +

+

+


Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canmsg_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $can__lincan_8c.html 521,32 753,56 +rect $lincan_8h.html 269,56 472,80 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canmsg_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +ed2cbf1e277ef664c9bd711bf989122d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h__dep__incl.png Binary file doc/doxygen/html/canmsg_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canmsg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/canmsg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e52965ef61fba0cc14e8eaed5ff2c21c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/canmsg_8h__incl.png Binary file doc/doxygen/html/canmsg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,398 @@ + + +CanFestival: can_uvccm_win32 Class Reference + + + + +
+
+
+
+

can_uvccm_win32 Class Reference

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 can_uvccm_win32 (s_BOARD *board)
 ~can_uvccm_win32 ()
bool send (const Message *m)
bool receive (Message *m)

Private Member Functions

bool open_rs232 (int port=1, int baud_rate=57600)
bool close_rs232 ()
bool get_can_data (const char *can_cmd_buf, long &bufsize, Message *m)
bool set_can_data (const Message &m, std::string &can_cmd)

Private Attributes

HANDLE m_port
HANDLE m_read_event
HANDLE m_write_event
std::string m_residual_buffer

Data Structures

class  error
+

Detailed Description

+ +

+ +

+Definition at line 17 of file can_uvccm_win32.cpp.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
can_uvccm_win32::can_uvccm_win32 (s_BOARD board  ) 
+
+
+ +

+ +

+Definition at line 39 of file can_uvccm_win32.cpp. +

+References struct_s_BOARD::baudrate, and open_rs232(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + +
can_uvccm_win32::~can_uvccm_win32 (  ) 
+
+
+ +

+ +

+Definition at line 47 of file can_uvccm_win32.cpp. +

+References close_rs232(). +

+Here is the call graph for this function:

+ + + + +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
bool can_uvccm_win32::send (const Message m  ) 
+
+
+ +

+ +

+Definition at line 52 of file can_uvccm_win32.cpp. +

+References FALSE, m_port, m_write_event, and set_can_data(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + +
bool can_uvccm_win32::receive (Message m  ) 
+
+
+ +

+ +

+Definition at line 80 of file can_uvccm_win32.cpp. +

+References FALSE, get_can_data(), m_port, m_read_event, and m_residual_buffer. +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool can_uvccm_win32::open_rs232 (int  port = 1,
int  baud_rate = 57600 
) [private]
+
+
+ +

+ +

+Definition at line 136 of file can_uvccm_win32.cpp. +

+References FALSE, m_port, m_read_event, m_write_event, and TRUE. +

+Referenced by can_uvccm_win32(). +

+

+ +

+
+ + + + + + + + +
bool can_uvccm_win32::close_rs232 (  )  [private]
+
+
+ +

+ +

+Definition at line 190 of file can_uvccm_win32.cpp. +

+References m_port, m_read_event, m_residual_buffer, and m_write_event. +

+Referenced by ~can_uvccm_win32(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool can_uvccm_win32::get_can_data (const char *  can_cmd_buf,
long &  bufsize,
Message m 
) [private]
+
+
+ +

+ +

+Definition at line 206 of file can_uvccm_win32.cpp. +

+References Message::cob_id, Message::data, Message::len, Message::rtr, UNS8, and SHORT_CAN::w. +

+Referenced by receive(). +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool can_uvccm_win32::set_can_data (const Message m,
std::string &  can_cmd 
) [private]
+
+
+ +

+ +

+Definition at line 271 of file can_uvccm_win32.cpp. +

+References Message::cob_id, Message::data, Message::len, Message::rtr, and SHORT_CAN::w. +

+Referenced by send(). +

+

+


Field Documentation

+ +
+
+ + + + +
HANDLE can_uvccm_win32::m_port [private]
+
+
+ +

+ +

+Definition at line 33 of file can_uvccm_win32.cpp. +

+Referenced by close_rs232(), open_rs232(), receive(), and send(). +

+

+ +

+
+ + + + +
HANDLE can_uvccm_win32::m_read_event [private]
+
+
+ +

+ +

+Definition at line 34 of file can_uvccm_win32.cpp. +

+Referenced by close_rs232(), open_rs232(), and receive(). +

+

+ +

+
+ + + + +
HANDLE can_uvccm_win32::m_write_event [private]
+
+
+ +

+ +

+Definition at line 35 of file can_uvccm_win32.cpp. +

+Referenced by close_rs232(), open_rs232(), and send(). +

+

+ +

+
+ + + + +
std::string can_uvccm_win32::m_residual_buffer [private]
+
+
+ +

+ +

+Definition at line 36 of file can_uvccm_win32.cpp. +

+Referenced by close_rs232(), and receive(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_1_1error.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_1_1error.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,36 @@ + + +CanFestival: can_uvccm_win32::error Class Reference + + + + +
+
+
+
+ +

can_uvccm_win32::error Class Reference

+ +
+

Detailed Description

+ +

+ +

+Definition at line 20 of file can_uvccm_win32.cpp.


The documentation for this class was generated from the following file: +
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_3358bfa32c0164bc11d220745e3e0430_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_3358bfa32c0164bc11d220745e3e0430_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classcan__uvccm__win32.html#0f2aed9c45f29e6082f37ea17aea46ae 240,6 483,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_3358bfa32c0164bc11d220745e3e0430_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_3358bfa32c0164bc11d220745e3e0430_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1e59db3b5097f9fbe5483a41f3c86351 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_3358bfa32c0164bc11d220745e3e0430_cgraph.png Binary file doc/doxygen/html/classcan__uvccm__win32_3358bfa32c0164bc11d220745e3e0430_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_39bb5c7bb141391d0f2f34b7dd5f487c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_39bb5c7bb141391d0f2f34b7dd5f487c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classcan__uvccm__win32.html#06f9d2fb860a821436471c3233f91dff 341,6 576,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_39bb5c7bb141391d0f2f34b7dd5f487c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_39bb5c7bb141391d0f2f34b7dd5f487c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1cb83aa3f0f4e238ee5d6abb1a714657 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_39bb5c7bb141391d0f2f34b7dd5f487c_cgraph.png Binary file doc/doxygen/html/classcan__uvccm__win32_39bb5c7bb141391d0f2f34b7dd5f487c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_4301393c1d3046b35d0b545e761b94db_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_4301393c1d3046b35d0b545e761b94db_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classcan__uvccm__win32.html#c3d1d02a46518b2639beb6060f79f2a2 258,6 500,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_4301393c1d3046b35d0b545e761b94db_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_4301393c1d3046b35d0b545e761b94db_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b0937d8dd83f389f9c18800345ccc11b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_4301393c1d3046b35d0b545e761b94db_cgraph.png Binary file doc/doxygen/html/classcan__uvccm__win32_4301393c1d3046b35d0b545e761b94db_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_f4f6d1f25174fd3b7d897a5f73bc363e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_f4f6d1f25174fd3b7d897a5f73bc363e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classcan__uvccm__win32.html#7fb6732edc691451bc1d3206c07d4715 332,6 564,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_f4f6d1f25174fd3b7d897a5f73bc363e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classcan__uvccm__win32_f4f6d1f25174fd3b7d897a5f73bc363e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +279a12aed748a98796a194da50206058 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classcan__uvccm__win32_f4f6d1f25174fd3b7d897a5f73bc363e_cgraph.png Binary file doc/doxygen/html/classcan__uvccm__win32_f4f6d1f25174fd3b7d897a5f73bc363e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classccritical__section.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classccritical__section.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,164 @@ + + +CanFestival: ccritical_section Class Reference + + + + +
+
+
+
+

ccritical_section Class Reference

+ + + + + + + + + + + + + +

Public Member Functions

 ccritical_section ()
 ~ccritical_section ()
void enter ()
void leave ()

Private Attributes

CRITICAL_SECTION m_cs
+

Detailed Description

+ +

+ +

+Definition at line 38 of file timers_win32.cpp.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
ccritical_section::ccritical_section (  )  [inline]
+
+
+ +

+ +

+Definition at line 41 of file timers_win32.cpp. +

+References m_cs. +

+

+ +

+
+ + + + + + + + +
ccritical_section::~ccritical_section (  )  [inline]
+
+
+ +

+ +

+Definition at line 45 of file timers_win32.cpp. +

+References m_cs. +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + +
void ccritical_section::enter (  )  [inline]
+
+
+ +

+ +

+Definition at line 49 of file timers_win32.cpp. +

+References m_cs. +

+Referenced by EnterMutex(). +

+

+ +

+
+ + + + + + + + +
void ccritical_section::leave (  )  [inline]
+
+
+ +

+ +

+Definition at line 53 of file timers_win32.cpp. +

+References m_cs. +

+Referenced by LeaveMutex(). +

+

+


Field Documentation

+ +
+
+ + + + +
CRITICAL_SECTION ccritical_section::m_cs [private]
+
+
+ +

+ +

+Definition at line 58 of file timers_win32.cpp. +

+Referenced by ccritical_section(), enter(), leave(), and ~ccritical_section(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,447 @@ + + +CanFestival: class_timers Class Reference + + + + +
+
+
+
+

class_timers Class Reference

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 class_timers ()
 ~class_timers ()
void start_timer_thread ()
void resume_timer_thread ()
void stop_timer_thread ()
void set_timer (TIMEVAL value)
TIMEVAL get_elapsed_time ()

Private Member Functions

TIMEVAL get_timer () const

Static Private Member Functions

static DWORD WINAPI timer_loop_thread_proc (void *arg)

Private Attributes

TIMEVAL m_last_occured_alarm_time
volatile TIMEVAL m_last_alarm_set_time
HANDLE m_timer_thread
volatile bool m_continue_timer_loop
bool m_use_hi_res_timer
double m_counts_per_usec
+

Detailed Description

+ +

+ +

+Definition at line 94 of file timers_win32.cpp.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
class_timers::class_timers (  ) 
+
+
+ +

+ +

+Definition at line 116 of file timers_win32.cpp. +

+References m_counts_per_usec, and m_use_hi_res_timer. +

+

+ +

+
+ + + + + + + + +
class_timers::~class_timers (  ) 
+
+
+ +

+ +

+Definition at line 133 of file timers_win32.cpp. +

+References stop_timer_thread(). +

+Here is the call graph for this function:

+ + + + +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + +
void class_timers::start_timer_thread (  ) 
+
+
+ +

+ +

+Definition at line 173 of file timers_win32.cpp. +

+References get_timer(), m_last_alarm_set_time, m_last_occured_alarm_time, m_timer_thread, timer_loop_thread_proc(), and TIMEVAL_MAX. +

+Referenced by StartTimerLoop(). +

+Here is the call graph for this function:

+ + + + + + + + + +
+

+ +

+
+ + + + + + + + +
void class_timers::resume_timer_thread (  ) 
+
+
+ +

+ +

+Definition at line 184 of file timers_win32.cpp. +

+References m_continue_timer_loop, and m_timer_thread. +

+Referenced by StartTimerLoop(). +

+

+ +

+
+ + + + + + + + +
void class_timers::stop_timer_thread (  ) 
+
+
+ +

+ +

+Definition at line 193 of file timers_win32.cpp. +

+References m_continue_timer_loop, and m_timer_thread. +

+Referenced by StopTimerLoop(), and ~class_timers(). +

+

+ +

+
+ + + + + + + + + +
void class_timers::set_timer (TIMEVAL  value  ) 
+
+
+ +

+ +

+Definition at line 204 of file timers_win32.cpp. +

+References get_timer(), m_last_alarm_set_time, and TIMEVAL_MAX. +

+Referenced by setTimer(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + +
TIMEVAL class_timers::get_elapsed_time (  ) 
+
+
+ +

+ +

+Definition at line 210 of file timers_win32.cpp. +

+References get_timer(), and m_last_occured_alarm_time. +

+Referenced by getElapsedTime(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + +
TIMEVAL class_timers::get_timer (  )  const [private]
+
+
+ +

+ +

+Definition at line 139 of file timers_win32.cpp. +

+References m_counts_per_usec, m_use_hi_res_timer, and TIMEVAL. +

+Referenced by get_elapsed_time(), set_timer(), start_timer_thread(), and timer_loop_thread_proc(). +

+

+ +

+
+ + + + + + + + + +
DWORD WINAPI class_timers::timer_loop_thread_proc (void *  arg  )  [static, private]
+
+
+ +

+ +

+Definition at line 151 of file timers_win32.cpp. +

+References EnterMutex(), get_timer(), LeaveMutex(), m_continue_timer_loop, m_last_alarm_set_time, m_last_occured_alarm_time, TimeDispatch(), TIMEVAL, and TIMEVAL_MAX. +

+Referenced by start_timer_thread(). +

+Here is the call graph for this function:

+ + + + + + + + +
+

+


Field Documentation

+ +
+
+ + + + +
TIMEVAL class_timers::m_last_occured_alarm_time [private]
+
+
+ +

+ +

+Definition at line 108 of file timers_win32.cpp. +

+Referenced by get_elapsed_time(), start_timer_thread(), and timer_loop_thread_proc(). +

+

+ +

+
+ + + + +
volatile TIMEVAL class_timers::m_last_alarm_set_time [private]
+
+
+ +

+ +

+Definition at line 109 of file timers_win32.cpp. +

+Referenced by set_timer(), start_timer_thread(), and timer_loop_thread_proc(). +

+

+ +

+
+ + + + +
HANDLE class_timers::m_timer_thread [private]
+
+
+ +

+ +

+Definition at line 110 of file timers_win32.cpp. +

+Referenced by resume_timer_thread(), start_timer_thread(), and stop_timer_thread(). +

+

+ +

+
+ + + + +
volatile bool class_timers::m_continue_timer_loop [private]
+
+
+ +

+ +

+Definition at line 111 of file timers_win32.cpp. +

+Referenced by resume_timer_thread(), stop_timer_thread(), and timer_loop_thread_proc(). +

+

+ +

+
+ + + + +
bool class_timers::m_use_hi_res_timer [private]
+
+
+ +

+ +

+Definition at line 112 of file timers_win32.cpp. +

+Referenced by class_timers(), and get_timer(). +

+

+ +

+
+ + + + +
double class_timers::m_counts_per_usec [private]
+
+
+ +

+ +

+Definition at line 113 of file timers_win32.cpp. +

+Referenced by class_timers(), and get_timer(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_0fa5bd5d1d4012bf9eef3ffabe990dfb_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_0fa5bd5d1d4012bf9eef3ffabe990dfb_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 288,6 467,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_0fa5bd5d1d4012bf9eef3ffabe990dfb_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_0fa5bd5d1d4012bf9eef3ffabe990dfb_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2eb73425e129c1c8de1385fc41bade9a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_0fa5bd5d1d4012bf9eef3ffabe990dfb_cgraph.png Binary file doc/doxygen/html/classclass__timers_0fa5bd5d1d4012bf9eef3ffabe990dfb_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_6fd261041314ddd3ada9537530d02afd_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_6fd261041314ddd3ada9537530d02afd_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classclass__timers.html#a78d9f5ab159ec6b11b4dc4c8f351697 264,6 502,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_6fd261041314ddd3ada9537530d02afd_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_6fd261041314ddd3ada9537530d02afd_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1ab56956921e30ed399e00715318b23d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_6fd261041314ddd3ada9537530d02afd_cgraph.png Binary file doc/doxygen/html/classclass__timers_6fd261041314ddd3ada9537530d02afd_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_a27df6346a38fb25acc394cb7998a3f8_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_a27df6346a38fb25acc394cb7998a3f8_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 232,6 411,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_a27df6346a38fb25acc394cb7998a3f8_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_a27df6346a38fb25acc394cb7998a3f8_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +3901fa9e54bc0de69097181245285a14 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_a27df6346a38fb25acc394cb7998a3f8_cgraph.png Binary file doc/doxygen/html/classclass__timers_a27df6346a38fb25acc394cb7998a3f8_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_a68dd5b6225b3519b4bc2a0280683c87_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_a68dd5b6225b3519b4bc2a0280683c87_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 368,6 467,30 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 328,54 507,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 366,102 470,126 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 360,150 475,174 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 555,150 686,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_a68dd5b6225b3519b4bc2a0280683c87_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_a68dd5b6225b3519b4bc2a0280683c87_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +29e7f8669dd0e35b62e3ffb6d0611fe6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_a68dd5b6225b3519b4bc2a0280683c87_cgraph.png Binary file doc/doxygen/html/classclass__timers_a68dd5b6225b3519b4bc2a0280683c87_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_d857a63670354f41759f68d4ea29a0f5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_d857a63670354f41759f68d4ea29a0f5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,7 @@ +base referer +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 616,7 795,31 +rect $classclass__timers.html#a68dd5b6225b3519b4bc2a0280683c87 295,56 567,80 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 656,55 755,79 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 654,103 758,127 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 648,151 763,175 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 843,151 974,175 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_d857a63670354f41759f68d4ea29a0f5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classclass__timers_d857a63670354f41759f68d4ea29a0f5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +589c10c41b564955fcb222fbc3cba4de \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classclass__timers_d857a63670354f41759f68d4ea29a0f5_cgraph.png Binary file doc/doxygen/html/classclass__timers_d857a63670354f41759f68d4ea29a0f5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classdriver__procs.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classdriver__procs.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,253 @@ + + +CanFestival: driver_procs Class Reference + + + + +
+
+
+
+

driver_procs Class Reference

+ + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 driver_procs ()
 ~driver_procs ()
HMODULE load_canfestival_driver (LPCTSTR driver_name)
bool can_driver_valid () const

Data Fields

CANRECEIVE_DRIVER_PROC m_canReceive
CANSEND_DRIVER_PROC m_canSend
CANOPEN_DRIVER_PROC m_canOpen
CANCLOSE_DRIVER_PROC m_canClose
HMODULE m_driver_handle
+

Detailed Description

+ +

+ +

+Definition at line 46 of file drivers_win32.cpp.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
driver_procs::driver_procs (  ) 
+
+
+ +

+ +

+Definition at line 66 of file drivers_win32.cpp. +

+

+ +

+
+ + + + + + + + +
driver_procs::~driver_procs (  ) 
+
+
+ +

+ +

+Definition at line 73 of file drivers_win32.cpp. +

+References m_driver_handle. +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
HMODULE driver_procs::load_canfestival_driver (LPCTSTR  driver_name  ) 
+
+
+ +

+ +

+Definition at line 94 of file drivers_win32.cpp. +

+References can_driver_valid(), m_canClose, m_canOpen, m_canReceive, m_canSend, m_driver_handle, and myTEXT. +

+Referenced by LoadCanDriver(). +

+Here is the call graph for this function:

+ + + + +
+

+ +

+
+ + + + + + + + +
bool driver_procs::can_driver_valid (  )  const
+
+
+ +

+ +

+Definition at line 79 of file drivers_win32.cpp. +

+References m_canClose, m_canOpen, m_canReceive, and m_canSend. +

+Referenced by load_canfestival_driver(). +

+

+


Field Documentation

+ +
+
+ + + + +
CANRECEIVE_DRIVER_PROC driver_procs::m_canReceive
+
+
+ +

+ +

+Definition at line 57 of file drivers_win32.cpp. +

+Referenced by can_driver_valid(), canReceive(), and load_canfestival_driver(). +

+

+ +

+
+ + + + +
CANSEND_DRIVER_PROC driver_procs::m_canSend
+
+
+ +

+ +

+Definition at line 58 of file drivers_win32.cpp. +

+Referenced by can_driver_valid(), canSend(), and load_canfestival_driver(). +

+

+ +

+
+ + + + +
CANOPEN_DRIVER_PROC driver_procs::m_canOpen
+
+
+ +

+ +

+Definition at line 59 of file drivers_win32.cpp. +

+Referenced by can_driver_valid(), canOpen(), and load_canfestival_driver(). +

+

+ +

+
+ + + + +
CANCLOSE_DRIVER_PROC driver_procs::m_canClose
+
+
+ +

+ +

+Definition at line 60 of file drivers_win32.cpp. +

+Referenced by can_driver_valid(), canClose(), and load_canfestival_driver(). +

+

+ +

+
+ + + + +
HMODULE driver_procs::m_driver_handle
+
+
+ +

+ +

+Definition at line 63 of file drivers_win32.cpp. +

+Referenced by load_canfestival_driver(), and ~driver_procs(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classdriver__procs_719fa10d86bcd9b7a1ab7bea3dec1d03_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classdriver__procs_719fa10d86bcd9b7a1ab7bea3dec1d03_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classdriver__procs.html#a1e608bb39ab9183961b7ded9f27d193 323,6 547,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classdriver__procs_719fa10d86bcd9b7a1ab7bea3dec1d03_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/classdriver__procs_719fa10d86bcd9b7a1ab7bea3dec1d03_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f00f2698f9571ec659cb8f3123fa057b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/classdriver__procs_719fa10d86bcd9b7a1ab7bea3dec1d03_cgraph.png Binary file doc/doxygen/html/classdriver__procs_719fa10d86bcd9b7a1ab7bea3dec1d03_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/config_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/config_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,69 @@ + + +CanFestival: include/config.h Source File + + + + +
+
+
+
+ +

config.h

Go to the documentation of this file.
00001 /* !!!!!!!!!! FILE GENERATED by configure. DO NOT EDIT !!!!!!!!!!*/
+00002 
+00003 /* 
+00004 This file is part of CanFestival, a library implementing CanOpen Stack.
+00005 
+00006 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00007 See COPYING file for copyrights details.
+00008 
+00009 This library is free software; you can redistribute it and/or
+00010 modify it under the terms of the GNU Lesser General Public
+00011 License as published by the Free Software Foundation; either
+00012 version 2.1 of the License, or (at your option) any later version.
+00013 
+00014 This library is distributed in the hope that it will be useful,
+00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00017 Lesser General Public License for more details.
+00018 
+00019 You should have received a copy of the GNU Lesser General Public
+00020 License along with this library; if not, write to the Free Software
+00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00022 */
+00023 
+00024 #ifndef _CONFIG_H_
+00025 #define _CONFIG_H_
+00026 
+00027 #define MAX_CAN_BUS_ID 1
+00028 #define SDO_MAX_LENGTH_TRANSFERT 32
+00029 #define SDO_MAX_SIMULTANEOUS_TRANSFERTS 4
+00030 #define NMT_MAX_NODE_ID 128
+00031 #define SDO_TIMEOUT_MS 3000
+00032 #define MAX_NB_TIMER 32
+00033 /* CANOPEN_BIG_ENDIAN is not defined */
+00034 /* US_TO_TIMEVAL_FACTOR is not defined */
+00035 /* TIMEVAL is not defined */
+00036 /* TIMEVAL_MAX is not defined */
+00037 /* RTCAN_SOCKET is not defined */
+00038 
+00039 #define REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(repeat)\
+00040 repeat repeat repeat repeat
+00041 #define REPEAT_NMT_MAX_NODE_ID_TIMES(repeat)\
+00042 repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat
+00043 #endif /* _CONFIG_H_ */
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/config_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/config_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,215 @@ + + +CanFestival: include/config.h File Reference + + + + +
+
+
+
+ +

config.h File Reference

+

+This graph shows which files directly or indirectly include this file:

+ + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + +

Defines

#define MAX_CAN_BUS_ID   1
#define SDO_MAX_LENGTH_TRANSFERT   32
#define SDO_MAX_SIMULTANEOUS_TRANSFERTS   4
#define NMT_MAX_NODE_ID   128
#define SDO_TIMEOUT_MS   3000
#define MAX_NB_TIMER   32
#define REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(repeat)   repeat repeat repeat repeat
#define REPEAT_NMT_MAX_NODE_ID_TIMES(repeat)   repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat
+


Define Documentation

+ +
+
+ + + + +
#define MAX_CAN_BUS_ID   1
+
+
+ +

+ +

+Definition at line 27 of file config.h. +

+

+ +

+
+ + + + +
#define MAX_NB_TIMER   32
+
+
+ +

+ +

+Definition at line 32 of file config.h. +

+Referenced by SetAlarm(). +

+

+ +

+
+ + + + +
#define NMT_MAX_NODE_ID   128
+
+
+ +

+ +

+Definition at line 30 of file config.h. +

+Referenced by masterRequestNodeState(). +

+

+ +

+
+ + + + + + + + + +
#define REPEAT_NMT_MAX_NODE_ID_TIMES (repeat   )    repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat
+
+
+ +

+ +

+Definition at line 41 of file config.h. +

+

+ +

+
+ + + + + + + + + +
#define REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES (repeat   )    repeat repeat repeat repeat
+
+
+ +

+ +

+Definition at line 39 of file config.h. +

+

+ +

+
+ + + + +
#define SDO_MAX_LENGTH_TRANSFERT   32
+
+
+ +

+ +

+Definition at line 28 of file config.h. +

+Referenced by lineToSDO(), resetSDOline(), SDOtoLine(), and setSDOlineRestBytes(). +

+

+ +

+
+ + + + +
#define SDO_MAX_SIMULTANEOUS_TRANSFERTS   4
+
+
+ +

+ +

+Definition at line 29 of file config.h. +

+Referenced by getSDOfreeLine(), getSDOlineOnUse(), and resetSDO(). +

+

+ +

+
+ + + + +
#define SDO_TIMEOUT_MS   3000
+
+
+ +

+ +

+Definition at line 31 of file config.h. +

+

+


Generated on Fri Jun 8 08:51:55 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/config_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/config_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $def_8h.html 197,101 307,125 +rect $sysdep_8h.html 184,175 320,199 +rect $states_8c.html 437,5 536,29 +rect $can__virtual_8c.html 368,53 605,77 +rect $data_8h.html 428,101 545,125 +rect $pdo_8h.html 653,101 768,125 +rect $dcf_8c.html 448,200 525,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/config_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/config_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +cb24cd01b1f19de2a500353ca94bddcd \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/config_8h__dep__incl.png Binary file doc/doxygen/html/config_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/data_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,214 @@ + + +CanFestival: include/data.h Source File + + + + +
+
+
+
+ +

data.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 
+00024 #ifndef __data_h__
+00025 #define __data_h__
+00026 
+00027 /* declaration of CO_Data type let us include all necessary headers
+00028  struct struct_CO_Data can then be defined later
+00029  */
+00030 typedef struct struct_CO_Data CO_Data;
+00031 
+00032 #include "applicfg.h"
+00033 #include "def.h"
+00034 #include "can.h"
+00035 #include "objdictdef.h"
+00036 #include "objacces.h"
+00037 #include "sdo.h"
+00038 #include "pdo.h"
+00039 #include "states.h"
+00040 #include "lifegrd.h"
+00041 #include "sync.h"
+00042 #include "nmtMaster.h"
+00043 
+00044 /* This structurs contains all necessary information for a CanOpen node */
+00045 struct struct_CO_Data {
+00046         /* Object dictionary */
+00047         UNS8 *bDeviceNodeId;
+00048         const indextable *objdict;
+00049         UNS8 *count_sync;
+00050         quick_index *firstIndex;
+00051         quick_index *lastIndex;
+00052         UNS16 *ObjdictSize;
+00053         const UNS8 *iam_a_slave;
+00054         valueRangeTest_t valueRangeTest;
+00055         
+00056         /* SDO */
+00057         s_transfer transfers[SDO_MAX_SIMULTANEOUS_TRANSFERTS];
+00058         /* s_sdo_parameter *sdo_parameters; */
+00059 
+00060         /* State machine */
+00061         e_nodeState nodeState;
+00062         s_state_communication CurrentCommunicationState;
+00063         initialisation_t initialisation;
+00064         preOperational_t preOperational;
+00065         operational_t operational;
+00066         stopped_t stopped;
+00067 
+00068         /* NMT-heartbeat */
+00069         UNS8 *ConsumerHeartbeatCount;
+00070         UNS32 *ConsumerHeartbeatEntries;
+00071         TIMER_HANDLE *ConsumerHeartBeatTimers;
+00072         UNS16 *ProducerHeartBeatTime;
+00073         TIMER_HANDLE ProducerHeartBeatTimer;
+00074         heartbeatError_t heartbeatError;
+00075         e_nodeState NMTable[NMT_MAX_NODE_ID]; 
+00076 
+00077         /* SYNC */
+00078         TIMER_HANDLE syncTimer;
+00079         UNS32 *COB_ID_Sync;
+00080         UNS32 *Sync_Cycle_Period;
+00081         /*UNS32 *Sync_window_length;;*/
+00082         post_sync_t post_sync;
+00083         post_TPDO_t post_TPDO;
+00084         
+00085         /* PDO */
+00086         s_process_var process_var;
+00087         
+00088         /* General */
+00089         UNS8 toggle;
+00090         CAN_HANDLE canHandle;   
+00091         scanIndexOD_t scanIndexOD;
+00092         storeODSubIndex_t storeODSubIndex; 
+00093         
+00094         /* DCF concise */
+00095         UNS8* dcf_cursor;
+00096         UNS32 dcf_count_targets;
+00097         
+00098 };
+00099 
+00100 #define NMTable_Initializer Unknown_state,
+00101 
+00102 #define s_transfer_Initializer {\
+00103                 0,          /* nodeId */\
+00104                 0,          /* wohami */\
+00105                 SDO_RESET,  /* state */\
+00106                 0,          /* toggle */\
+00107                 0,          /* abortCode */\
+00108                 0,          /* index */\
+00109                 0,          /* subIndex */\
+00110                 0,          /* count */\
+00111                 0,          /* offset */\
+00112                 {0},        /* data (static use, so that all the table is initialize at 0)*/\
+00113                 0,          /* dataType */\
+00114                 -1,         /* timer */\
+00115                 NULL        /* Callback */\
+00116           },
+00117 
+00118 /* A macro to initialize the data in client app.*/
+00119 /* CO_Data structure */
+00120 #define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\
+00121         /* Object dictionary*/\
+00122         & NODE_PREFIX ## _bDeviceNodeId,     /* bDeviceNodeId */\
+00123         NODE_PREFIX ## _objdict,             /* objdict  */\
+00124         NODE_PREFIX ## _count_sync,          /* count_sync */\
+00125         & NODE_PREFIX ## _firstIndex,        /* firstIndex */\
+00126         & NODE_PREFIX ## _lastIndex,         /* lastIndex */\
+00127         & NODE_PREFIX ## _ObjdictSize,       /* ObjdictSize */\
+00128         & NODE_PREFIX ## _iam_a_slave,       /* iam_a_slave */\
+00129         NODE_PREFIX ## _valueRangeTest,      /* valueRangeTest */\
+00130         \
+00131         /* SDO, structure s_transfer */\
+00132         {\
+00133           REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(s_transfer_Initializer)\
+00134         },\
+00135         \
+00136         /* State machine*/\
+00137         Unknown_state,      /* nodeState */\
+00138         /* structure s_state_communication */\
+00139         {\
+00140                 0,          /* csBoot_Up */\
+00141                 0,          /* csSDO */\
+00142                 0,          /* csEmergency */\
+00143                 0,          /* csSYNC */\
+00144                 0,          /* csHeartbeat */\
+00145                 0           /* csPDO */\
+00146         },\
+00147         _initialisation,     /* initialisation */\
+00148         _preOperational,     /* preOperational */\
+00149         _operational,        /* operational */\
+00150         _stopped,            /* stopped */\
+00151         \
+00152         /* NMT-heartbeat */\
+00153         & NODE_PREFIX ## _highestSubIndex_obj1016, /* ConsumerHeartbeatCount */\
+00154         NODE_PREFIX ## _obj1016,                   /* ConsumerHeartbeatEntries */\
+00155         NODE_PREFIX ## _heartBeatTimers,           /* ConsumerHeartBeatTimers  */\
+00156         & NODE_PREFIX ## _obj1017,                 /* ProducerHeartBeatTime */\
+00157         TIMER_NONE,                                /* ProducerHeartBeatTimer */\
+00158         _heartbeatError,           /* heartbeatError */\
+00159         \
+00160         {REPEAT_NMT_MAX_NODE_ID_TIMES(NMTable_Initializer)},\
+00161                                                    /* is  well initialized at "Unknown_state". Is it ok ? (FD)*/\
+00162         \
+00163         /* SYNC */\
+00164         TIMER_NONE,                                /* syncTimer */\
+00165         & NODE_PREFIX ## _obj1005,                 /* COB_ID_Sync */\
+00166         & NODE_PREFIX ## _obj1006,                 /* Sync_Cycle_Period */\
+00167         /*& NODE_PREFIX ## _obj1007, */            /* Sync_window_length */\
+00168         _post_sync,                 /* post_sync */\
+00169         _post_TPDO,                 /* post_TPDO */\
+00170         \
+00171         /* PDO, structure s_process_var */\
+00172         {\
+00173                 0,          /* count */\
+00174                 {0}         /* data (static use, so that all the table is initialize at 0)*/\
+00175         },\
+00176         \
+00177         /* General */\
+00178         0,                                         /* toggle */\
+00179         NULL,                   /* canSend */\
+00180         NODE_PREFIX ## _scanIndexOD,                /* scanIndexOD */\
+00181         _storeODSubIndex,                /* storeODSubIndex */\
+00182         NULL,           /*dcf_cursor*/\
+00183         1               /*dcf_count_targets*/\
+00184 }
+00185 
+00186 #endif /* __data_h__ */
+00187 
+00188 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/data_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,108 @@ + + +CanFestival: include/data.h File Reference + + + + +
+
+
+
+ +

data.h File Reference

#include "applicfg.h"
+#include "def.h"
+#include "can.h"
+#include "objdictdef.h"
+#include "objacces.h"
+#include "sdo.h"
+#include "pdo.h"
+#include "states.h"
+#include "lifegrd.h"
+#include "sync.h"
+#include "nmtMaster.h"
+ +

+Include dependency graph for data.h:

+ + + + + + + + + + + + + + + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + + + + + + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + +

Data Structures

struct  struct_CO_Data

Typedefs

typedef struct_CO_Data CO_Data
+


Typedef Documentation

+ +
+
+ + + + +
typedef struct struct_CO_Data CO_Data
+
+
+ +

+ +

+Definition at line 30 of file data.h. +

+

+


Generated on Fri Jun 8 08:51:55 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/data_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,19 @@ +base referer +rect $lifegrd_8c.html 563,116 664,140 +rect $sync_8c.html 569,189 657,213 +rect $unix_8c.html 540,251 687,275 +rect $objdict_8h.html 191,313 473,337 +rect $TestMasterSlave_2TestMaster_8h.html 188,361 476,385 +rect $TestSlave_8h.html 191,409 473,433 +rect $TestMasterMicroMod_2TestMaster_8h.html 173,457 491,481 +rect $win32test_8h.html 212,505 452,529 +rect $objacces_8h.html 259,553 405,577 +rect $lifegrd_8h.html 267,116 397,140 +rect $nmtMaster_8h.html 252,601 412,625 +rect $nmtSlave_8h.html 256,649 408,673 +rect $timer_8h.html 271,772 393,796 +rect $sdo_8h.html 557,711 669,735 +rect $pdo_8h.html 275,820 389,844 +rect $states_8h.html 268,868 396,892 +rect $unix_2canfestival_8h.html 235,916 429,940 +rect $win32_2canfestival_8h.html 228,164 436,188 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/data_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +6b19775085dbed3a60d8c39ee3fd3fc0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h__dep__incl.png Binary file doc/doxygen/html/data_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/data_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $win32_2applicfg_8h.html 451,276 539,300 +rect $def_8h.html 335,13 391,37 +rect $can_8h.html 334,251 392,275 +rect $objdictdef_8h.html 176,152 278,176 +rect $objacces_8h.html 180,349 274,373 +rect $sdo_8h.html 198,397 256,421 +rect $pdo_8h.html 198,56 256,80 +rect $states_8h.html 190,104 264,128 +rect $lifegrd_8h.html 188,301 266,325 +rect $sync_8h.html 194,445 260,469 +rect $nmtMaster_8h.html 174,493 280,517 +rect $config_8h.html 458,13 532,37 +rect $timer_8h.html 328,400 398,424 +rect $win32_2timerscfg_8h.html 446,368 544,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/data_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +c6c9e43465c3da585a986e108a87b819 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/data_8h__incl.png Binary file doc/doxygen/html/data_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c-source.html --- a/doc/doxygen/html/dcf_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/dcf.c Source File +CanFestival: src/dcf.c Source File @@ -8,14 +8,18 @@
-

/home/epimerde/documents/tc11/CanFestival-3/src/dcf.c

Go to the documentation of this file.
00001 /*
+
+

dcf.c

Go to the documentation of this file.
00001 /*
 00002   This file is part of CanFestival, a library implementing CanOpen
 00003   Stack.
 00004 
@@ -40,91 +44,97 @@
 00023 */
 00024 
 00025 
-00035 #include "objacces.h"
-00036 #include "sdo.h"
-00037 #include "dcf.h"
-00038 #include "sysdep.h"
-00039 
-00040 
-00054 extern UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index,
-00055                                UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize);
+00037 #include "objacces.h"
+00038 #include "sdo.h"
+00039 #include "dcf.h"
+00040 #include "sysdep.h"
+00041 
+00042 extern UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index,
+00043                                UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize);
+00044 
+00045 const indextable *ptrTable;
+00046 
+00053 static void CheckSDOAndContinue(CO_Data* d, UNS8 nodeId)
+00054 {
+00055   UNS32 abortCode;
 00056 
-00057 const indextable *ptrTable;
-00058 
-00065 static void CheckSDOAndContinue(CO_Data* d, UNS8 nodeId)
-00066 {
-00067   UNS32 abortCode;
-00068 
-00069   if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
-00070     {
-00071       MSG_ERR(0x1A01, "SDO error in consise DCF", abortCode);
-00072       MSG_WAR(0x2A02, "server node : ", nodeId);
-00073     }
-00074 
-00075   closeSDOtransfer(d, nodeId, SDO_CLIENT);
-00076   decompo_dcf(d,nodeId);
-00077 }
-00078 
-00087 UNS32 decompo_dcf(CO_Data* d,UNS8 nodeId)
-00088 {
-00089   UNS32 errorCode;
-00090   UNS16 target_Index;
-00091   UNS8 target_Subindex;
-00092   UNS32 target_Size;
-00093   UNS32 res;
-00094   ODCallback_t *Callback;
-00095 
-00096   ptrTable = (*d->scanIndexOD)(0x1F22, &errorCode, &Callback);
-00097   if (errorCode != OD_SUCCESSFUL)
-00098     {
-00099       return errorCode;
-00100     }
-00101 
-00103   while (nodeId < ptrTable->bSubCount){
-00104     UNS32 nb_targets;
-00105 
-00106     UNS8 szData = ptrTable->pSubindex[nodeId].size;
-00107     UNS8* dcfend;
-00108 
-00109     {
-00110       UNS8* dcf = *((UNS8**)ptrTable->pSubindex[nodeId].pObject);
-00111       dcfend = dcf + szData;
-00112       if (!d->dcf_cursor){
-00113         d->dcf_cursor = (UNS8*)dcf + 4;
-00114         d->dcf_count_targets = 0;
-00115       }
-00116       nb_targets = UNS32_LE(*((UNS32*)dcf));
-00117     }
-00118 
-00120     if((UNS8*)d->dcf_cursor + 7 < (UNS8*)dcfend && d->dcf_count_targets < nb_targets)
-00121       {
-00123         target_Index = UNS16_LE(*((UNS16*)(d->dcf_cursor))); d->dcf_cursor += 2;
-00124         target_Subindex = *((UNS8*)(((UNS8*)d->dcf_cursor)++));
-00125         target_Size = UNS32_LE(*((UNS32*)(d->dcf_cursor))); d->dcf_cursor += 4;
-00126 
-00127         /* printf("Master : ConfigureSlaveNode %2.2x (Concise
-00128           DCF)\n",nodeId);*/
-00129         res = _writeNetworkDict(d, 
-00130                                 nodeId, 
-00131                                 target_Index, 
-00132                                 target_Subindex, 
-00133                                 target_Size, 
-00134                                 0, 
-00135                                 d->dcf_cursor,
-00136                                 CheckSDOAndContinue,
-00138                                 0); 
-00141         d->dcf_cursor += target_Size;
-00142         d->dcf_count_targets++;
-00143 
-00144         return ;
-00145       }
-00146     nodeId++;
-00147     d->dcf_cursor = NULL;
-00148   }
-00150   (*d->preOperational)();
-00151 
-00152 }
-

Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +00057 if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED) +00058 { +00059 MSG_ERR(0x1A01, "SDO error in consise DCF", abortCode); +00060 MSG_WAR(0x2A02, "server node : ", nodeId); +00061 } +00062 +00063 closeSDOtransfer(d, nodeId, SDO_CLIENT); +00064 decompo_dcf(d,nodeId); +00065 } +00066 +00075 UNS32 decompo_dcf(CO_Data* d,UNS8 nodeId) +00076 { +00077 UNS32 errorCode; +00078 UNS16 target_Index; +00079 UNS8 target_Subindex; +00080 UNS32 target_Size; +00081 UNS32 res; +00082 ODCallback_t *Callback; +00083 +00084 ptrTable = (*d->scanIndexOD)(0x1F22, &errorCode, &Callback); +00085 if (errorCode != OD_SUCCESSFUL) +00086 { +00087 return errorCode; +00088 } +00089 +00090 /* Loop on all Nodes supported in DCF subindexes*/ +00091 while (nodeId < ptrTable->bSubCount){ +00092 UNS32 nb_targets; +00093 +00094 UNS8 szData = ptrTable->pSubindex[nodeId].size; +00095 UNS8* dcfend; +00096 +00097 { +00098 UNS8* dcf = *((UNS8**)ptrTable->pSubindex[nodeId].pObject); +00099 dcfend = dcf + szData; +00100 if (!d->dcf_cursor){ +00101 d->dcf_cursor = (UNS8*)dcf + 4; +00102 d->dcf_count_targets = 0; +00103 } +00104 nb_targets = UNS32_LE(*((UNS32*)dcf)); +00105 } +00106 +00107 /* condition on consise DCF string for NodeID, if big enough */ +00108 if((UNS8*)d->dcf_cursor + 7 < (UNS8*)dcfend && d->dcf_count_targets < nb_targets) +00109 { +00110 /* pointer to the DCF string for NodeID */ +00111 target_Index = UNS16_LE(*((UNS16*)(d->dcf_cursor))); d->dcf_cursor += 2; +00112 target_Subindex = *((UNS8*)(((UNS8*)d->dcf_cursor)++)); +00113 target_Size = UNS32_LE(*((UNS32*)(d->dcf_cursor))); d->dcf_cursor += 4; +00114 +00115 /* printf("Master : ConfigureSlaveNode %2.2x (Concise +00116 DCF)\n",nodeId);*/ +00117 res = _writeNetworkDict(d, /* CO_Data* d*/ +00118 nodeId, /* UNS8 nodeId*/ +00119 target_Index, /* UNS16 index*/ +00120 target_Subindex, /* UNS8 subindex*/ +00121 target_Size, /* UNS8 count*/ +00122 0, /* UNS8 dataType*/ +00123 d->dcf_cursor,/* void *data*/ +00124 CheckSDOAndContinue,/* SDOCallback_t +00125 Callback*/ +00126 0); /* no endianize*/ +00127 /* Push d->dcf_cursor to the end of data*/ +00128 +00129 d->dcf_cursor += target_Size; +00130 d->dcf_count_targets++; +00131 +00132 return ; +00133 } +00134 nodeId++; +00135 d->dcf_cursor = NULL; +00136 } +00137 /* Switch Master to preOperational state */ +00138 (*d->preOperational)(); +00139 +00140 } +

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c.html --- a/doc/doxygen/html/dcf_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/dcf.c File Reference +CanFestival: src/dcf.c File Reference @@ -8,33 +8,56 @@
-

/home/epimerde/documents/tc11/CanFestival-3/src/dcf.c File Reference

EXEMPLE OF SOMMARY. More... -

-#include "objacces.h"
-#include "sdo.h"
-#include "dcf.h"
-#include "sysdep.h"
- -

-Include dependency graph for dcf.c:

+ +

dcf.c File Reference

EXEMPLE OF SOMMARY. More... +

+#include "objacces.h"
+#include "sdo.h"
+#include "dcf.h"
+#include "sysdep.h"
+ +

+Include dependency graph for dcf.c:

+ + + + + + + + + + + + + + + + + + +

Go to the source code of this file. - - - + + + - +

Functions

UNS8 _writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize)
UNS32 decompo_dcf (CO_Data *d, UNS8 nodeId)
UNS8 _writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize)
UNS32 decompo_dcf (CO_Data *d, UNS8 nodeId)

Variables

const indextable * ptrTable
const indextableptrTable


Detailed Description

@@ -52,7 +75,7 @@ INLINE UNS8 _writeNetworkDict ( - CO_Data *  + CO_Datad, @@ -94,7 +117,7 @@ - SDOCallback_t  + SDOCallback_t  Callback, @@ -129,22 +152,13 @@
Returns:

-Verify that there is no SDO communication yet.

-Taking the line ...

-Check which SDO to use to communicate with the node

-looking for the nodeId server

-Copy data to transfers structure.

-Send the SDO to the server. Initiate download, cs=1.

-Expedited transfert

-Normal transfert

-nb of byte to transmit. Max = 255. (canfestival2 limitation).

-release the line +Normal transfert

Definition at line 1247 of file sdo.c.

-References getSDOfreeLine(), getSDOlineOnUse(), initSDOline(), resetSDOline(), and sendSDO(). -

-Referenced by decompo_dcf(), writeNetworkDict(), and writeNetworkDictCallBack(). +References struct_s_SDO::body, td_indextable::bSubCount, struct_s_transfer::Callback, CANOPEN_BIG_ENDIAN, struct_s_transfer::count, struct_s_timer_entry::d, BODY::data, struct_s_transfer::data, struct_s_transfer::dataType, struct_CO_Data::firstIndex, getSDOfreeLine(), getSDOlineOnUse(), initSDOline(), struct_CO_Data::lastIndex, MSG_ERR, MSG_WAR, struct_s_SDO::nodeId, struct_CO_Data::objdict, struct_s_transfer::offset, td_subindex::pObject, td_indextable::pSubindex, resetSDOline(), SDO_CLIENT, s_quick_index::SDO_CLT, SDO_DOWNLOAD_IN_PROGRESS, sendSDO(), struct_CO_Data::transfers, UNS16, UNS32, and UNS8. +

+Referenced by decompo_dcf(), writeNetworkDict(), and writeNetworkDictCallBack().

Here is the call graph for this function:

@@ -153,6 +167,8 @@ + + @@ -164,7 +180,7 @@ UNS32 decompo_dcf ( - CO_Data *  + CO_Datad, @@ -192,24 +208,9 @@
Returns:

-Loop on all Nodes supported in DCF subindexes

-condition on consise DCF string for NodeID, if big enough

-pointer to the DCF string for NodeID

-CO_Data* d

-UNS8 nodeId

-UNS16 index

-UNS8 subindex

-UNS8 count

-UNS8 dataType

-void *data

-SDOCallback_t Callback

-no endianize

-Push d->dcf_cursor to the end of data

-Switch Master to preOperational state -

-Definition at line 87 of file dcf.c. -

-References _writeNetworkDict(), and ptrTable. +Definition at line 75 of file dcf.c. +

+References _writeNetworkDict(), struct_s_timer_entry::d, struct_CO_Data::dcf_count_targets, struct_CO_Data::dcf_cursor, OD_SUCCESSFUL, td_subindex::pObject, struct_CO_Data::preOperational, td_indextable::pSubindex, ptrTable, struct_CO_Data::scanIndexOD, td_subindex::size, UNS16, UNS16_LE, UNS32, UNS32_LE, and UNS8.

Referenced by setState().

@@ -221,6 +222,8 @@ + + @@ -231,7 +234,7 @@

- +
const indextable* ptrTable const indextable* ptrTable
@@ -240,12 +243,12 @@

-Definition at line 57 of file dcf.c. -

-Referenced by _getODentry(), _setODentry(), decompo_dcf(), and setState(). +Definition at line 45 of file dcf.c. +

+Referenced by _getODentry(), _setODentry(), decompo_dcf(), and setState().

-


Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +
Generated on Fri Jun 8 08:52:09 2007 for CanFestival by  doxygen 1.5.1
diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.map --- a/doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -4,3 +4,5 @@ rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 393,128 489,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 217,152 327,176 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 231,200 313,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 401,200 481,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 540,200 671,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.md5 --- a/doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -3f58cc4514605664fb260d72ad549392 \ No newline at end of file +5622dcec2501a6ece7343ea86a3ba355 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.png Binary file doc/doxygen/html/dcf_8c_3c07605ffe3ea197aa36e583ef87a20a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.map --- a/doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -5,3 +5,5 @@ rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 553,128 649,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 377,152 487,176 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 391,200 473,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 561,200 641,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 700,200 831,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.md5 --- a/doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -062a0742423c8eb9732675b011d9a512 \ No newline at end of file +50db1c8ce731fbfca0e1235a4a83743a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.png Binary file doc/doxygen/html/dcf_8c_8452e163e7649968ad6dae1601a5fb0d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c__incl.map --- a/doc/doxygen/html/dcf_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $objacces_8h.html 132,248 226,272 +rect $sdo_8h.html 430,6 488,30 +rect $dcf_8h.html 152,347 206,371 +rect $sysdep_8h.html 275,595 358,619 +rect $win32_2applicfg_8h.html 683,334 771,358 +rect $data_8h.html 284,248 348,272 +rect $def_8h.html 567,495 623,519 +rect $can_8h.html 566,395 624,419 +rect $objdictdef_8h.html 408,104 510,128 +rect $pdo_8h.html 430,446 488,470 +rect $states_8h.html 422,200 496,224 +rect $lifegrd_8h.html 420,296 498,320 +rect $sync_8h.html 426,152 492,176 +rect $nmtMaster_8h.html 406,248 512,272 +rect $config_8h.html 690,546 764,570 +rect $timer_8h.html 560,104 630,128 +rect $win32_2timerscfg_8h.html 678,118 776,142 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c__incl.md5 --- a/doc/doxygen/html/dcf_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/dcf_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -a108537a569481d8362bf5afca68dc07 \ No newline at end of file +c1be31817918ca3e5836aecc866a3a45 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8c__incl.png Binary file doc/doxygen/html/dcf_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dcf_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,50 @@ + + +CanFestival: include/dcf.h Source File + + + + + + + +

dcf.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 
+00024 UNS32 decompo_dcf(CO_Data* d, UNS8 nodeId);
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dcf_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,97 @@ + + +CanFestival: include/dcf.h File Reference + + + + + + + +

dcf.h File Reference

+

+This graph shows which files directly or indirectly include this file:

+ + + + + +

+Go to the source code of this file. + + + + +

Functions

UNS32 decompo_dcf (CO_Data *d, UNS8 nodeId)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
UNS32 decompo_dcf (CO_Data d,
UNS8  nodeId 
)
+
+
+ +

+

Parameters:
+ + + +
d 
nodeId 
+
+
Returns:
+ +

+Definition at line 75 of file dcf.c. +

+References _writeNetworkDict(), struct_s_timer_entry::d, struct_CO_Data::dcf_count_targets, struct_CO_Data::dcf_cursor, OD_SUCCESSFUL, td_subindex::pObject, struct_CO_Data::preOperational, td_indextable::pSubindex, ptrTable, struct_CO_Data::scanIndexOD, td_subindex::size, UNS16, UNS16_LE, UNS32, UNS32_LE, and UNS8. +

+Referenced by setState(). +

+Here is the call graph for this function:

+ + + + + + + + + + + +
+

+


Generated on Fri Jun 8 08:51:56 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h_8452e163e7649968ad6dae1601a5fb0d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dcf_8h_8452e163e7649968ad6dae1601a5fb0d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 165,103 312,127 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 368,5 496,29 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 361,53 503,77 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 553,128 649,152 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 377,152 487,176 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 391,200 473,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 561,200 641,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 700,200 831,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h_8452e163e7649968ad6dae1601a5fb0d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dcf_8h_8452e163e7649968ad6dae1601a5fb0d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +50db1c8ce731fbfca0e1235a4a83743a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h_8452e163e7649968ad6dae1601a5fb0d_cgraph.png Binary file doc/doxygen/html/dcf_8h_8452e163e7649968ad6dae1601a5fb0d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dcf_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $dcf_8c.html 174,6 251,30 +rect $states_8c.html 163,54 262,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dcf_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +554a06aec31be33c06b2b9351fa9b4a9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dcf_8h__dep__incl.png Binary file doc/doxygen/html/dcf_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/def_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,145 @@ + + +CanFestival: include/def.h Source File + + + + + + + +

def.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 
+00024 #ifndef __def_h__
+00025 #define __def_h__
+00026 
+00027 #include "config.h"
+00028 
+00031 #define OD_SUCCESSFUL                0x00000000
+00032 #define OD_READ_NOT_ALLOWED          0x06010001
+00033 #define OD_WRITE_NOT_ALLOWED         0x06010002
+00034 #define OD_NO_SUCH_OBJECT            0x06020000
+00035 #define OD_NOT_MAPPABLE              0x06040041
+00036 #define OD_LENGTH_DATA_INVALID       0x06070010
+00037 #define OD_NO_SUCH_SUBINDEX          0x06090011
+00038 #define OD_VALUE_TOO_LOW             0x06090031 /* Value range test result */
+00039 #define OD_VALUE_TOO_HIGH            0x06090032 /* Value range test result */
+00040 /* Others SDO abort codes 
+00041  */
+00042 #define SDOABT_TOGGLE_NOT_ALTERNED   0x05030000
+00043 #define SDOABT_TIMED_OUT             0x05040000
+00044 #define SDOABT_OUT_OF_MEMORY         0x05040005 /* Size data exceed SDO_MAX_LENGTH_TRANSFERT */
+00045 #define SDOABT_GENERAL_ERROR         0x08000000 /* Error size of SDO message */
+00046 #define SDOABT_LOCAL_CTRL_ERROR      0x08000021 
+00047 
+00048 /******************** CONSTANTS ****************/
+00049 
+00053 /* Should not be modified */
+00054 #define REQUEST 1
+00055 #define NOT_A_REQUEST 0
+00056 
+00057 /* Misc constants */
+00058 /* -------------- */
+00059 /* Should not be modified */
+00060 #define Rx 0
+00061 #define Tx 1
+00062 #define TRUE  1
+00063 #define FALSE 0
+00064 
+00065 /* TODO: remove this limitation. do bit granularity mapping */
+00066 #define PDO_MAX_LEN 8    
+00067                                
+00070 #define SDO_RESET                0x0      /* Transmission not started. Init state. */
+00071 #define SDO_FINISHED             0x1      /* data are available */                          
+00072 #define SDO_ABORTED_RCV          0x80     /* Received an abort message. Data not available */
+00073 #define SDO_ABORTED_INTERNAL     0x85     /* Aborted but not because of an abort message. */
+00074 #define SDO_DOWNLOAD_IN_PROGRESS 0x2 
+00075 #define SDO_UPLOAD_IN_PROGRESS   0x3   
+00076 
+00077 /* Status of the node during the SDO transfert : */
+00078 #define SDO_SERVER  0x1
+00079 #define SDO_CLIENT  0x2
+00080 #define SDO_UNKNOWN 0x3             
+00081 
+00082 /*  Function Codes 
+00083    ---------------
+00084   defined in the canopen DS301 
+00085 */
+00086 #define NMT        0x0
+00087 #define SYNC       0x1
+00088 #define TIME_STAMP 0x2
+00089 #define PDO1tx     0x3
+00090 #define PDO1rx     0x4
+00091 #define PDO2tx     0x5
+00092 #define PDO2rx     0x6
+00093 #define PDO3tx     0x7
+00094 #define PDO3rx     0x8
+00095 #define PDO4tx     0x9
+00096 #define PDO4rx     0xA
+00097 #define SDOtx      0xB
+00098 #define SDOrx      0xC
+00099 #define NODE_GUARD 0xE
+00100 
+00101 /* NMT Command Specifier, sent by master to change a slave state */
+00102 /* ------------------------------------------------------------- */
+00103 /* Should not be modified */
+00104 #define NMT_Start_Node              0x01
+00105 #define NMT_Stop_Node               0x02
+00106 #define NMT_Enter_PreOperational    0x80
+00107 #define NMT_Reset_Node              0x81
+00108 #define NMT_Reset_Comunication      0x82
+00109 
+00110 /* constantes used in the different state machines */
+00111 /* ----------------------------------------------- */
+00112 /* Must not be modified */
+00113 #define state1  0x01
+00114 #define state2  0x02
+00115 #define state3  0x03
+00116 #define state4  0x04
+00117 #define state5  0x05
+00118 #define state6  0x06
+00119 #define state7  0x07
+00120 #define state8  0x08
+00121 #define state9  0x09
+00122 #define state10 0x0A
+00123 #define state11 0x0B
+00124 
+00125 #endif /* __def_h__ */
+00126 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/def_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1316 @@ + + +CanFestival: include/def.h File Reference + + + + + + + +

def.h File Reference

#include "config.h"
+ +

+Include dependency graph for def.h:

+ + + + +

+This graph shows which files directly or indirectly include this file:

+ + + + + + + + + + + + + + + + + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Defines

#define OD_SUCCESSFUL   0x00000000
#define OD_READ_NOT_ALLOWED   0x06010001
#define OD_WRITE_NOT_ALLOWED   0x06010002
#define OD_NO_SUCH_OBJECT   0x06020000
#define OD_NOT_MAPPABLE   0x06040041
#define OD_LENGTH_DATA_INVALID   0x06070010
#define OD_NO_SUCH_SUBINDEX   0x06090011
#define OD_VALUE_TOO_LOW   0x06090031
#define OD_VALUE_TOO_HIGH   0x06090032
#define SDOABT_TOGGLE_NOT_ALTERNED   0x05030000
#define SDOABT_TIMED_OUT   0x05040000
#define SDOABT_OUT_OF_MEMORY   0x05040005
#define SDOABT_GENERAL_ERROR   0x08000000
#define SDOABT_LOCAL_CTRL_ERROR   0x08000021
#define REQUEST   1
#define NOT_A_REQUEST   0
#define Rx   0
#define Tx   1
#define TRUE   1
#define FALSE   0
#define PDO_MAX_LEN   8
#define SDO_RESET   0x0
#define SDO_FINISHED   0x1
#define SDO_ABORTED_RCV   0x80
#define SDO_ABORTED_INTERNAL   0x85
#define SDO_DOWNLOAD_IN_PROGRESS   0x2
#define SDO_UPLOAD_IN_PROGRESS   0x3
#define SDO_SERVER   0x1
#define SDO_CLIENT   0x2
#define SDO_UNKNOWN   0x3
#define NMT   0x0
#define SYNC   0x1
#define TIME_STAMP   0x2
#define PDO1tx   0x3
#define PDO1rx   0x4
#define PDO2tx   0x5
#define PDO2rx   0x6
#define PDO3tx   0x7
#define PDO3rx   0x8
#define PDO4tx   0x9
#define PDO4rx   0xA
#define SDOtx   0xB
#define SDOrx   0xC
#define NODE_GUARD   0xE
#define NMT_Start_Node   0x01
#define NMT_Stop_Node   0x02
#define NMT_Enter_PreOperational   0x80
#define NMT_Reset_Node   0x81
#define NMT_Reset_Comunication   0x82
#define state1   0x01
#define state2   0x02
#define state3   0x03
#define state4   0x04
#define state5   0x05
#define state6   0x06
#define state7   0x07
#define state8   0x08
#define state9   0x09
#define state10   0x0A
#define state11   0x0B
+


Define Documentation

+ +
+
+ + + + +
#define FALSE   0
+
+
+ +

+ +

+Definition at line 63 of file def.h. +

+Referenced by can_uvccm_win32::open_rs232(), can_uvccm_win32::receive(), and can_uvccm_win32::send(). +

+

+ +

+
+ + + + +
#define NMT   0x0
+
+
+ +

+ +

+Definition at line 86 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define NMT_Enter_PreOperational   0x80
+
+
+ +

+ +

+Definition at line 106 of file def.h. +

+Referenced by proceedNMTstateChange(). +

+

+ +

+
+ + + + +
#define NMT_Reset_Comunication   0x82
+
+
+ +

+ +

+Definition at line 108 of file def.h. +

+Referenced by proceedNMTstateChange(). +

+

+ +

+
+ + + + +
#define NMT_Reset_Node   0x81
+
+
+ +

+ +

+Definition at line 107 of file def.h. +

+Referenced by main(), and proceedNMTstateChange(). +

+

+ +

+
+ + + + +
#define NMT_Start_Node   0x01
+
+
+ +

+ +

+Definition at line 104 of file def.h. +

+Referenced by main(), and proceedNMTstateChange(). +

+

+ +

+
+ + + + +
#define NMT_Stop_Node   0x02
+
+
+ +

+ +

+Definition at line 105 of file def.h. +

+Referenced by main(), and proceedNMTstateChange(). +

+

+ +

+
+ + + + +
#define NODE_GUARD   0xE
+
+
+ +

+ +

+Definition at line 99 of file def.h. +

+Referenced by canDispatch(), masterSendNMTnodeguard(), print_message(), and slaveSendBootUp(). +

+

+ +

+
+ + + + +
#define NOT_A_REQUEST   0
+
+
+ +

+ +

+Definition at line 55 of file def.h. +

+Referenced by masterSendNMTstateChange(), PDOmGR(), proceedPDO(), sendPDO(), sendSDO(), sendSYNC(), and slaveSendBootUp(). +

+

+ +

+
+ + + + +
#define OD_LENGTH_DATA_INVALID   0x06070010
+
+
+ +

+ +

+Definition at line 36 of file def.h. +

+Referenced by _getODentry(), _setODentry(), and accessDictionaryError(). +

+

+ +

+
+ + + + +
#define OD_NO_SUCH_OBJECT   0x06020000
+
+ +

+ +

+
+ + + + +
#define OD_NO_SUCH_SUBINDEX   0x06090011
+
+
+ +

+ +

+Definition at line 37 of file def.h. +

+Referenced by _getODentry(), _setODentry(), and accessDictionaryError(). +

+

+ +

+
+ + + + +
#define OD_NOT_MAPPABLE   0x06040041
+
+
+ +

+ +

+Definition at line 35 of file def.h. +

+Referenced by accessDictionaryError(). +

+

+ +

+
+ + + + +
#define OD_READ_NOT_ALLOWED   0x06010001
+
+
+ +

+ +

+Definition at line 32 of file def.h. +

+Referenced by _getODentry(). +

+

+ +

+
+ + + + +
#define OD_SUCCESSFUL   0x00000000
+
+
+ +

+definitions used for object dictionary access. ie SDO Abort codes . (See DS 301 v.4.02 p.48) +

+Definition at line 31 of file def.h. +

+Referenced by _getODentry(), _setODentry(), decompo_dcf(), gene_SYNC_scanIndexOD(), main(), objdictToSDOline(), proceedPDO(), proceedSYNC(), RegisterSetODentryCallBack(), SDOlineToObjdict(), setState(), TestMaster_scanIndexOD(), TestSlave_scanIndexOD(), and win32test_scanIndexOD(). +

+

+ +

+
+ + + + +
#define OD_VALUE_TOO_HIGH   0x06090032
+
+
+ +

+ +

+Definition at line 39 of file def.h. +

+Referenced by accessDictionaryError(). +

+

+ +

+
+ + + + +
#define OD_VALUE_TOO_LOW   0x06090031
+
+
+ +

+ +

+Definition at line 38 of file def.h. +

+Referenced by accessDictionaryError(). +

+

+ +

+
+ + + + +
#define OD_WRITE_NOT_ALLOWED   0x06010002
+
+
+ +

+ +

+Definition at line 33 of file def.h. +

+Referenced by _getODentry(), _setODentry(), and accessDictionaryError(). +

+

+ +

+
+ + + + +
#define PDO1rx   0x4
+
+
+ +

+ +

+Definition at line 90 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO1tx   0x3
+
+
+ +

+ +

+Definition at line 89 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO2rx   0x6
+
+
+ +

+ +

+Definition at line 92 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO2tx   0x5
+
+
+ +

+ +

+Definition at line 91 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO3rx   0x8
+
+
+ +

+ +

+Definition at line 94 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO3tx   0x7
+
+
+ +

+ +

+Definition at line 93 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO4rx   0xA
+
+
+ +

+ +

+Definition at line 96 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO4tx   0x9
+
+
+ +

+ +

+Definition at line 95 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define PDO_MAX_LEN   8
+
+
+ +

+ +

+Definition at line 66 of file def.h. +

+

+ +

+
+ + + + +
#define REQUEST   1
+
+
+ +

+Constantes which permit to define if a PDO frame is a request one or a data one +

+Definition at line 54 of file def.h. +

+Referenced by masterSendNMTnodeguard(), proceedPDO(), sendPDO(), and sendPDOrequest(). +

+

+ +

+
+ + + + +
#define Rx   0
+
+
+ +

+ +

+Definition at line 60 of file def.h. +

+

+ +

+
+ + + + +
#define SDO_ABORTED_INTERNAL   0x85
+
+ +

+ +

+
+ + + + +
#define SDO_ABORTED_RCV   0x80
+
+
+ +

+ +

+Definition at line 72 of file def.h. +

+Referenced by proceedSDO(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
#define SDO_CLIENT   0x2
+
+ +

+ +

+
+ + + + +
#define SDO_DOWNLOAD_IN_PROGRESS   0x2
+
+
+ +

+ +

+Definition at line 74 of file def.h. +

+Referenced by _writeNetworkDict(), initSDOline(), proceedSDO(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
#define SDO_FINISHED   0x1
+
+
+ +

+ +

+Definition at line 71 of file def.h. +

+Referenced by getReadResultNetworkDict(), proceedSDO(), ReadSDO(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
#define SDO_RESET   0x0
+
+
+ +

+Status of the SDO transmission +

+Definition at line 70 of file def.h. +

+Referenced by getSDOfreeLine(), getSDOlineOnUse(), resetSDOline(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
#define SDO_SERVER   0x1
+
+
+ +

+ +

+Definition at line 78 of file def.h. +

+Referenced by failedSDO(), proceedSDO(), SDOTimeoutAlarm(), and sendSDO(). +

+

+ +

+
+ + + + +
#define SDO_UNKNOWN   0x3
+
+
+ +

+ +

+Definition at line 80 of file def.h. +

+Referenced by proceedSDO(). +

+

+ +

+
+ + + + +
#define SDO_UPLOAD_IN_PROGRESS   0x3
+
+
+ +

+ +

+Definition at line 75 of file def.h. +

+Referenced by _readNetworkDict(), initSDOline(), proceedSDO(), ReadSDO(), and TestMaster_post_TPDO(). +

+

+ +

+
+ + + + +
#define SDOABT_GENERAL_ERROR   0x08000000
+
+
+ +

+ +

+Definition at line 45 of file def.h. +

+Referenced by proceedSDO(). +

+

+ +

+
+ + + + +
#define SDOABT_LOCAL_CTRL_ERROR   0x08000021
+
+
+ +

+ +

+Definition at line 46 of file def.h. +

+Referenced by proceedSDO(). +

+

+ +

+
+ + + + +
#define SDOABT_OUT_OF_MEMORY   0x05040005
+
+
+ +

+ +

+Definition at line 44 of file def.h. +

+

+ +

+
+ + + + +
#define SDOABT_TIMED_OUT   0x05040000
+
+
+ +

+ +

+Definition at line 43 of file def.h. +

+Referenced by SDOTimeoutAlarm(). +

+

+ +

+
+ + + + +
#define SDOABT_TOGGLE_NOT_ALTERNED   0x05030000
+
+
+ +

+ +

+Definition at line 42 of file def.h. +

+Referenced by proceedSDO(). +

+

+ +

+
+ + + + +
#define SDOrx   0xC
+
+
+ +

+ +

+Definition at line 98 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define SDOtx   0xB
+
+
+ +

+ +

+Definition at line 97 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define state1   0x01
+
+
+ +

+ +

+Definition at line 113 of file def.h. +

+Referenced by proceedPDO(). +

+

+ +

+
+ + + + +
#define state10   0x0A
+
+
+ +

+ +

+Definition at line 122 of file def.h. +

+Referenced by proceedSYNC(). +

+

+ +

+
+ + + + +
#define state11   0x0B
+
+
+ +

+ +

+Definition at line 123 of file def.h. +

+Referenced by proceedSYNC(). +

+

+ +

+
+ + + + +
#define state2   0x02
+
+
+ +

+ +

+Definition at line 114 of file def.h. +

+Referenced by proceedPDO(). +

+

+ +

+
+ + + + +
#define state3   0x03
+
+
+ +

+ +

+Definition at line 115 of file def.h. +

+Referenced by proceedSYNC(). +

+

+ +

+
+ + + + +
#define state4   0x04
+
+
+ +

+ +

+Definition at line 116 of file def.h. +

+Referenced by proceedPDO(), and proceedSYNC(). +

+

+ +

+
+ + + + +
#define state5   0x05
+
+
+ +

+ +

+Definition at line 117 of file def.h. +

+Referenced by proceedPDO(), and proceedSYNC(). +

+

+ +

+
+ + + + +
#define state6   0x06
+
+
+ +

+ +

+Definition at line 118 of file def.h. +

+

+ +

+
+ + + + +
#define state7   0x07
+
+
+ +

+ +

+Definition at line 119 of file def.h. +

+Referenced by proceedSYNC(). +

+

+ +

+
+ + + + +
#define state8   0x08
+
+
+ +

+ +

+Definition at line 120 of file def.h. +

+Referenced by proceedSYNC(). +

+

+ +

+
+ + + + +
#define state9   0x09
+
+
+ +

+ +

+Definition at line 121 of file def.h. +

+Referenced by proceedSYNC(). +

+

+ +

+
+ + + + +
#define SYNC   0x1
+
+
+ +

+ +

+Definition at line 87 of file def.h. +

+Referenced by canDispatch(), and print_message(). +

+

+ +

+
+ + + + +
#define TIME_STAMP   0x2
+
+
+ +

+ +

+Definition at line 88 of file def.h. +

+Referenced by print_message(). +

+

+ +

+
+ + + + +
#define TRUE   1
+
+
+ +

+ +

+Definition at line 62 of file def.h. +

+Referenced by can_uvccm_win32::open_rs232(). +

+

+ +

+
+ + + + +
#define Tx   1
+
+
+ +

+ +

+Definition at line 61 of file def.h. +

+

+


Generated on Fri Jun 8 08:51:56 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/def_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,22 @@ +base referer +rect $states_8c.html 839,79 937,103 +rect $can__virtual_8c.html 163,557 400,581 +rect $data_8h.html 223,459 340,483 +rect $pdo_8h.html 549,929 664,953 +rect $lifegrd_8c.html 837,539 939,563 +rect $sync_8c.html 844,615 932,639 +rect $unix_8c.html 815,688 961,712 +rect $objdict_8h.html 465,737 748,761 +rect $TestMasterSlave_2TestMaster_8h.html 463,785 751,809 +rect $TestSlave_8h.html 465,833 748,857 +rect $TestMasterMicroMod_2TestMaster_8h.html 448,881 765,905 +rect $win32test_8h.html 487,127 727,151 +rect $objacces_8h.html 533,175 680,199 +rect $lifegrd_8h.html 541,489 672,513 +rect $nmtMaster_8h.html 527,223 687,247 +rect $nmtSlave_8h.html 531,271 683,295 +rect $timer_8h.html 545,367 668,391 +rect $sdo_8h.html 832,428 944,452 +rect $states_8h.html 543,79 671,103 +rect $unix_2canfestival_8h.html 509,319 704,343 +rect $win32_2canfestival_8h.html 503,639 711,663 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/def_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1657c096c6d0ecc0c002273f783114bd \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h__dep__incl.png Binary file doc/doxygen/html/def_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/def_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $config_8h.html 164,6 239,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/def_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2620928ed7290e7f34653e518fbc7893 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/def_8h__incl.png Binary file doc/doxygen/html/def_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000001_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000001_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/can_lincan/ -> include Relation + + + + + + +

can_lincan → include Relation

File in drivers » can_lincanIncludes file in include
can_lincan.ccan_driver.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000002_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000002_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/can_peak_linux/ -> include Relation + + + + + + +

can_peak_linux → include Relation

File in drivers » can_peak_linuxIncludes file in include
can_peak_linux.ccan_driver.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000003_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000003_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/can_peak_win32/ -> include Relation + + + + + + +

can_peak_win32 → include Relation

File in drivers » can_peak_win32Includes file in include
can_peak_win32.ccan_driver.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000004_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000004_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/can_socket/ -> include Relation + + + + + + +

can_socket → include Relation

File in drivers » can_socketIncludes file in include
can_socket.ccan_driver.h
can_socket.cwin32 / config.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000005_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000005_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/can_uvccm_win32/ -> include Relation + + + + + + +

can_uvccm_win32 → include Relation

File in drivers » can_uvccm_win32Includes file in include
can_uvccm_win32.cppcan_driver.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000006_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000006_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/can_virtual/ -> include Relation + + + + + + +

can_virtual → include Relation

File in drivers » can_virtualIncludes file in include
can_virtual.ccan_driver.h
can_virtual.cdef.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000008_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000008_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/timers_unix/ -> include Relation + + + + + + +

timers_unix → include Relation

File in drivers » timers_unixIncludes file in include
timers_unix.cwin32 / applicfg.h
timers_unix.ctimer.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000009_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000009_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/timers_xeno/ -> include Relation + + + + + + +

timers_xeno → include Relation

File in drivers » timers_xenoIncludes file in include
timers_xeno.cwin32 / applicfg.h
timers_xeno.ccan_driver.h
timers_xeno.ctimer.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000010_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000010_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/unix/ -> include Relation + + + + + + +

unix → include Relation

File in drivers » unixIncludes file in include
unix.ccan_driver.h
unix.cwin32 / canfestival.h
unix.cdata.h
unix.ctimers_driver.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000011_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000011_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: drivers/win32/ -> include Relation + + + + + + +

win32 → include Relation

File in drivers » win32Includes file in include
drivers_win32.cppwin32 / canfestival.h
drivers_win32.cpptimer.h
drivers_win32.cpptimers_driver.h
timers_win32.cppwin32 / applicfg.h
timers_win32.cppcan_driver.h
timers_win32.cpptimer.h
timers_win32.cpptimers_driver.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000013_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000013_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: examples/gene_SYNC_HCS12/ -> include Relation + + + + + + +

gene_SYNC_HCS12 → include Relation

File in examples » gene_SYNC_HCS12Includes file in include
appli.cwin32 / applicfg.h
appli.chcs12 / interrupt.h
appli.chcs12 / asm-m68hc12 / ports.h
appli.chcs12 / asm-m68hc12 / ports_def.h
appli.chcs12 / asm-m68hc12 / portsaccess.h
objdict.hdata.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000014_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000014_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: examples/TestMasterMicroMod/ -> include Relation + + + + + + +

TestMasterMicroMod → include Relation

File in examples » TestMasterMicroModIncludes file in include
TestMaster.hdata.h
TestMasterMicroMod.cwin32 / canfestival.h
TestMasterMicroMod.hwin32 / canfestival.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000015_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000015_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: examples/TestMasterSlave/ -> include Relation + + + + + + +

TestMasterSlave → include Relation

File in examples » TestMasterSlaveIncludes file in include
TestMaster.hdata.h
TestMasterSlave.cwin32 / canfestival.h
TestMasterSlave.hwin32 / canfestival.h
TestSlave.hdata.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000016_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000016_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: examples/win32test/ -> include Relation + + + + + + +

win32test → include Relation

File in examples » win32testIncludes file in include
main.cwin32 / canfestival.h
win32test.hdata.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000017_000018.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000017_000018.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: include/ -> win32 Relation + + + + + + +

include → win32 Relation

File in includeIncludes file in include » win32
can.happlicfg.h
can_driver.happlicfg.h
unix / canfestival.htimerscfg.h
data.happlicfg.h
lifegrd.happlicfg.h
nmtSlave.happlicfg.h
objacces.happlicfg.h
pdo.happlicfg.h
states.happlicfg.h
timer.happlicfg.h
timer.htimerscfg.h
timers_driver.htimerscfg.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000020_000018.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000020_000018.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: include/unix/ -> win32 Relation + + + + + + +

unix → win32 Relation

File in include » unixIncludes file in include » win32
canfestival.htimerscfg.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_000026_000017.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_000026_000017.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ + + +CanFestival: src/ -> include Relation + + + + + + +

src → include Relation

File in srcIncludes file in include
dcf.cdcf.h
dcf.cobjacces.h
dcf.csdo.h
dcf.csysdep.h
lifegrd.cwin32 / canfestival.h
lifegrd.cdata.h
lifegrd.clifegrd.h
nmtMaster.cwin32 / canfestival.h
nmtMaster.cnmtMaster.h
nmtSlave.cwin32 / canfestival.h
nmtSlave.cnmtSlave.h
nmtSlave.cstates.h
objacces.cobjacces.h
pdo.cwin32 / canfestival.h
pdo.cobjacces.h
pdo.cpdo.h
sdo.cwin32 / canfestival.h
sdo.cobjacces.h
sdo.csdo.h
states.cdcf.h
states.cdef.h
states.cnmtSlave.h
states.cstates.h
sync.cwin32 / canfestival.h
sync.cdata.h
sync.csync.h
timer.cwin32 / applicfg.h
timer.ctimer.h

Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_07750eac10a9410f183d065086ad2ced.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_07750eac10a9410f183d065086ad2ced.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,39 @@ + + +CanFestival: include/unix/ Directory Reference + + + + + + +

unix Directory Reference

+

+

include/unix/
+ + + + + + + + + + + + + + +

Files

file  applicfg.h [code]
file  canfestival.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_07750eac10a9410f183d065086ad2ced_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_07750eac10a9410f183d065086ad2ced_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_07750eac10a9410f183d065086ad2ced.html 27,52 99,100 +rect dir_782374bdd8d6f1de841137f3ffd6286c.html 27,151 99,199 +rect dir_000020_000018.html 67,126 75,139 +rect dir_000020_000018.html 59,147 67,155 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_07750eac10a9410f183d065086ad2ced_dep.png Binary file doc/doxygen/html/dir_07750eac10a9410f183d065086ad2ced_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_0b40b6b553bfe31fd290d0ffbb49cb0d.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_0b40b6b553bfe31fd290d0ffbb49cb0d.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/can_uvccm_win32/ Directory Reference + + + + + + +

can_uvccm_win32 Directory Reference

+

+

drivers/can_uvccm_win32/
+ + + + + + + + + + + + +

Files

file  can_uvccm_win32.cpp [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_0b40b6b553bfe31fd290d0ffbb49cb0d_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_0b40b6b553bfe31fd290d0ffbb49cb0d_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_0b40b6b553bfe31fd290d0ffbb49cb0d.html 27,52 171,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 63,151 135,199 +rect dir_000005_000017.html 103,126 111,139 +rect dir_000005_000017.html 95,147 103,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 181,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_0b40b6b553bfe31fd290d0ffbb49cb0d_dep.png Binary file doc/doxygen/html/dir_0b40b6b553bfe31fd290d0ffbb49cb0d_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_0bb6a295f3bedefe1e3a430a1a424e0b.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_0bb6a295f3bedefe1e3a430a1a424e0b.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,40 @@ + + +CanFestival: include/hcs12/asm-m68hc12/ Directory Reference + + + + + + +

asm-m68hc12 Directory Reference

+

+

include/hcs12/asm-m68hc12/
+ + + + + + + + + + + + + + + +

Files

file  ports.h [code]
file  ports_def.h [code]
file  portsaccess.h [code]
file  regs.h [code]
+
Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_0bb6a295f3bedefe1e3a430a1a424e0b_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_0bb6a295f3bedefe1e3a430a1a424e0b_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_0bb6a295f3bedefe1e3a430a1a424e0b.html 27,52 144,100 +rect dir_9b4fbd1818b4be2ef59811982235911e.html 16,16 155,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_0bb6a295f3bedefe1e3a430a1a424e0b_dep.png Binary file doc/doxygen/html/dir_0bb6a295f3bedefe1e3a430a1a424e0b_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_2209bfb26110ae52d50da4cefad5e72f.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_2209bfb26110ae52d50da4cefad5e72f.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,90 @@ + + +CanFestival: include/ Directory Reference + + + + + + +

include Directory Reference

+

+

include/
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

+ + + + + + + + + + + + + + + +

Directories

directory  hcs12
directory  timers_unix
directory  timers_xeno
directory  unix
directory  win32

Files

file  can.h [code]
file  can_driver.h [code]
file  config.h [code]
file  data.h [code]
file  dcf.h [code]
file  def.h [code]
file  lifegrd.h [code]
file  nmtMaster.h [code]
file  nmtSlave.h [code]
file  objacces.h [code]
 Responsible for accessing the object dictionary.
file  objdictdef.h [code]
file  pdo.h [code]
file  sdo.h [code]
file  states.h [code]
file  sync.h [code]
file  sysdep.h [code]
file  timer.h [code]
file  timers_driver.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_2209bfb26110ae52d50da4cefad5e72f_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_2209bfb26110ae52d50da4cefad5e72f_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect dir_782374bdd8d6f1de841137f3ffd6286c.html 140,136 212,184 +rect dir_000017_000018.html 224,152 240,165 +rect dir_000017_000018.html 208,149 216,157 +rect dir_9b4fbd1818b4be2ef59811982235911e.html 376,37 448,85 +rect dir_7d2e1c1348ae374efead56a9f9c4dc81.html 251,37 352,85 +rect dir_65da0ca4ab83a270e0e926b35586fa52.html 123,37 227,85 +rect dir_07750eac10a9410f183d065086ad2ced.html 27,37 99,85 +rect dir_000020_000018.html 136,111 144,124 +rect dir_000020_000018.html 144,132 152,140 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 16,16 555,195 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_2209bfb26110ae52d50da4cefad5e72f_dep.png Binary file doc/doxygen/html/dir_2209bfb26110ae52d50da4cefad5e72f_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_2f1d38949ead60c979d76e04f3273800.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_2f1d38949ead60c979d76e04f3273800.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/can_virtual/ Directory Reference + + + + + + +

can_virtual Directory Reference

+

+

drivers/can_virtual/
+ + + + + + + + + + + + +

Files

file  can_virtual.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_2f1d38949ead60c979d76e04f3273800_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_2f1d38949ead60c979d76e04f3273800_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_2f1d38949ead60c979d76e04f3273800.html 27,52 123,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 39,151 111,199 +rect dir_000006_000017.html 79,126 87,139 +rect dir_000006_000017.html 71,147 79,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 133,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_2f1d38949ead60c979d76e04f3273800_dep.png Binary file doc/doxygen/html/dir_2f1d38949ead60c979d76e04f3273800_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_41bf73311d8b7aeee9ef2a2b73ffd4dc.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_41bf73311d8b7aeee9ef2a2b73ffd4dc.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,41 @@ + + +CanFestival: examples/gene_SYNC_HCS12/ Directory Reference + + + + + + +

gene_SYNC_HCS12 Directory Reference

+

+

examples/gene_SYNC_HCS12/
+ + + + + + + + + + + + + + + + +

Files

file  appli.c [code]
file  objdict.c [code]
file  objdict.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_41bf73311d8b7aeee9ef2a2b73ffd4dc_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_41bf73311d8b7aeee9ef2a2b73ffd4dc_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_41bf73311d8b7aeee9ef2a2b73ffd4dc.html 27,52 176,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 66,151 138,199 +rect dir_000013_000017.html 106,126 114,139 +rect dir_000013_000017.html 98,147 106,155 +rect dir_fc8d77725c328f9de5a130dceab5a508.html 16,16 187,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_41bf73311d8b7aeee9ef2a2b73ffd4dc_dep.png Binary file doc/doxygen/html/dir_41bf73311d8b7aeee9ef2a2b73ffd4dc_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_48aec78d2c68f8c6a53202ad028bcb76.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_48aec78d2c68f8c6a53202ad028bcb76.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/timers_unix/ Directory Reference + + + + + + +

timers_unix Directory Reference

+

+

drivers/timers_unix/
+ + + + + + + + + + + + +

Files

file  timers_unix.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_48aec78d2c68f8c6a53202ad028bcb76_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_48aec78d2c68f8c6a53202ad028bcb76_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_48aec78d2c68f8c6a53202ad028bcb76.html 27,52 128,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 42,151 114,199 +rect dir_000008_000017.html 82,126 90,139 +rect dir_000008_000017.html 74,147 82,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 139,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_48aec78d2c68f8c6a53202ad028bcb76_dep.png Binary file doc/doxygen/html/dir_48aec78d2c68f8c6a53202ad028bcb76_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_4b2c04d6d15a0af1e05b62dc9a95ef0e.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_4b2c04d6d15a0af1e05b62dc9a95ef0e.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,35 @@ + + +CanFestival: include/hcs12/board/ Directory Reference + + + + + + +

board Directory Reference

+

+

include/hcs12/board/
+ + + + + + + + + + +

Directories

directory  arch
+
Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_4b2c04d6d15a0af1e05b62dc9a95ef0e_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_4b2c04d6d15a0af1e05b62dc9a95ef0e_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect dir_792ecdda7baed8c627cc0bbb8f0a21d1.html 38,73 110,121 +rect dir_4b2c04d6d15a0af1e05b62dc9a95ef0e.html 27,52 216,132 +rect dir_9b4fbd1818b4be2ef59811982235911e.html 16,16 227,143 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_4b2c04d6d15a0af1e05b62dc9a95ef0e_dep.png Binary file doc/doxygen/html/dir_4b2c04d6d15a0af1e05b62dc9a95ef0e_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_4f1231793a9fb011f8f57698089b1a38.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_4f1231793a9fb011f8f57698089b1a38.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/timers_xeno/ Directory Reference + + + + + + +

timers_xeno Directory Reference

+

+

drivers/timers_xeno/
+ + + + + + + + + + + + +

Files

file  timers_xeno.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_4f1231793a9fb011f8f57698089b1a38_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_4f1231793a9fb011f8f57698089b1a38_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_4f1231793a9fb011f8f57698089b1a38.html 27,52 131,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 43,151 115,199 +rect dir_000009_000017.html 83,126 91,139 +rect dir_000009_000017.html 75,147 83,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 141,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_4f1231793a9fb011f8f57698089b1a38_dep.png Binary file doc/doxygen/html/dir_4f1231793a9fb011f8f57698089b1a38_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_60bd150a90237f89382bb02bbf915860.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_60bd150a90237f89382bb02bbf915860.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/can_socket/ Directory Reference + + + + + + +

can_socket Directory Reference

+

+

drivers/can_socket/
+ + + + + + + + + + + + +

Files

file  can_socket.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_60bd150a90237f89382bb02bbf915860_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_60bd150a90237f89382bb02bbf915860_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_60bd150a90237f89382bb02bbf915860.html 27,52 123,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 39,151 111,199 +rect dir_000004_000017.html 79,126 87,139 +rect dir_000004_000017.html 71,147 79,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 133,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_60bd150a90237f89382bb02bbf915860_dep.png Binary file doc/doxygen/html/dir_60bd150a90237f89382bb02bbf915860_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_65da0ca4ab83a270e0e926b35586fa52.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_65da0ca4ab83a270e0e926b35586fa52.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,34 @@ + + +CanFestival: include/timers_xeno/ Directory Reference + + + + + + +

timers_xeno Directory Reference

+

+

include/timers_xeno/
+ + + + + + + + + +

Files

file  timerscfg.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_65da0ca4ab83a270e0e926b35586fa52_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_65da0ca4ab83a270e0e926b35586fa52_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_65da0ca4ab83a270e0e926b35586fa52.html 27,52 131,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 16,16 141,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_65da0ca4ab83a270e0e926b35586fa52_dep.png Binary file doc/doxygen/html/dir_65da0ca4ab83a270e0e926b35586fa52_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_6da7fb7606ab88af9c782bbceb5cfb77.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_6da7fb7606ab88af9c782bbceb5cfb77.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/unix/ Directory Reference + + + + + + +

unix Directory Reference

+

+

drivers/unix/
+ + + + + + + + + + + + +

Files

file  unix.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_6da7fb7606ab88af9c782bbceb5cfb77_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_6da7fb7606ab88af9c782bbceb5cfb77_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_6da7fb7606ab88af9c782bbceb5cfb77.html 27,52 99,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 27,151 99,199 +rect dir_000010_000017.html 67,126 75,139 +rect dir_000010_000017.html 59,147 67,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_6da7fb7606ab88af9c782bbceb5cfb77_dep.png Binary file doc/doxygen/html/dir_6da7fb7606ab88af9c782bbceb5cfb77_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_782374bdd8d6f1de841137f3ffd6286c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_782374bdd8d6f1de841137f3ffd6286c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,40 @@ + + +CanFestival: include/win32/ Directory Reference + + + + + + +

win32 Directory Reference

+

+

include/win32/
+ + + + + + + + + + + + + + + +

Files

file  applicfg.h [code]
file  canfestival.h [code]
file  config.h [code]
file  timerscfg.h [code]
+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_782374bdd8d6f1de841137f3ffd6286c_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_782374bdd8d6f1de841137f3ffd6286c_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_782374bdd8d6f1de841137f3ffd6286c.html 27,52 99,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_782374bdd8d6f1de841137f3ffd6286c_dep.png Binary file doc/doxygen/html/dir_782374bdd8d6f1de841137f3ffd6286c_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_792ecdda7baed8c627cc0bbb8f0a21d1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_792ecdda7baed8c627cc0bbb8f0a21d1.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,38 @@ + + +CanFestival: include/hcs12/board/arch/ Directory Reference + + + + + + +

arch Directory Reference

+

+

include/hcs12/board/arch/
+ + + + + + + + + + + + + +

Files

file  exit.h [code]
file  interrupts.h [code]
file  param.h [code]
+
Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_792ecdda7baed8c627cc0bbb8f0a21d1_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_792ecdda7baed8c627cc0bbb8f0a21d1_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_792ecdda7baed8c627cc0bbb8f0a21d1.html 27,52 99,100 +rect dir_4b2c04d6d15a0af1e05b62dc9a95ef0e.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_792ecdda7baed8c627cc0bbb8f0a21d1_dep.png Binary file doc/doxygen/html/dir_792ecdda7baed8c627cc0bbb8f0a21d1_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_7d2e1c1348ae374efead56a9f9c4dc81.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_7d2e1c1348ae374efead56a9f9c4dc81.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,34 @@ + + +CanFestival: include/timers_unix/ Directory Reference + + + + + + +

timers_unix Directory Reference

+

+

include/timers_unix/
+ + + + + + + + + +

Files

file  timerscfg.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_7d2e1c1348ae374efead56a9f9c4dc81_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_7d2e1c1348ae374efead56a9f9c4dc81_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_7d2e1c1348ae374efead56a9f9c4dc81.html 27,52 128,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 16,16 139,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_7d2e1c1348ae374efead56a9f9c4dc81_dep.png Binary file doc/doxygen/html/dir_7d2e1c1348ae374efead56a9f9c4dc81_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_8cdda103ce035ff7e5ef31864566c615.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_8cdda103ce035ff7e5ef31864566c615.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,41 @@ + + +CanFestival: drivers/can_lincan/ Directory Reference + + + + + + +

can_lincan Directory Reference

+

+

drivers/can_lincan/
+ + + + + + + + + + + + + + + + +

Files

file  can_lincan.c [code]
file  canmsg.h [code]
file  lincan.h [code]
+
Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_8cdda103ce035ff7e5ef31864566c615_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_8cdda103ce035ff7e5ef31864566c615_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_8cdda103ce035ff7e5ef31864566c615.html 27,52 120,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 38,151 110,199 +rect dir_000001_000017.html 78,126 86,139 +rect dir_000001_000017.html 70,147 78,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 131,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_8cdda103ce035ff7e5ef31864566c615_dep.png Binary file doc/doxygen/html/dir_8cdda103ce035ff7e5ef31864566c615_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_99c3ac25e5cd4387d44a6b6f620347a9.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_99c3ac25e5cd4387d44a6b6f620347a9.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/can_peak_linux/ Directory Reference + + + + + + +

can_peak_linux Directory Reference

+

+

drivers/can_peak_linux/
+ + + + + + + + + + + + +

Files

file  can_peak_linux.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_99c3ac25e5cd4387d44a6b6f620347a9_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_99c3ac25e5cd4387d44a6b6f620347a9_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_99c3ac25e5cd4387d44a6b6f620347a9.html 27,52 152,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 54,151 126,199 +rect dir_000002_000017.html 94,126 102,139 +rect dir_000002_000017.html 86,147 94,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 163,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_99c3ac25e5cd4387d44a6b6f620347a9_dep.png Binary file doc/doxygen/html/dir_99c3ac25e5cd4387d44a6b6f620347a9_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_9b4fbd1818b4be2ef59811982235911e.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_9b4fbd1818b4be2ef59811982235911e.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,51 @@ + + +CanFestival: include/hcs12/ Directory Reference + + + + + + +

hcs12 Directory Reference

+

+

include/hcs12/
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

Directories

directory  asm-m68hc12
directory  board

Files

file  applicfg.h [code]
file  candriver.h [code]
file  canOpenDriver.h [code]
file  error.h [code]
file  interrupt.h [code]
file  regbase.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_9b4fbd1818b4be2ef59811982235911e_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_9b4fbd1818b4be2ef59811982235911e_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect dir_0bb6a295f3bedefe1e3a430a1a424e0b.html 133,73 251,121 +rect dir_4b2c04d6d15a0af1e05b62dc9a95ef0e.html 37,73 109,121 +rect dir_9b4fbd1818b4be2ef59811982235911e.html 27,52 357,132 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 16,16 368,143 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_9b4fbd1818b4be2ef59811982235911e_dep.png Binary file doc/doxygen/html/dir_9b4fbd1818b4be2ef59811982235911e_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_9da286b31cfbba48738c6a19280b9fcf.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_9da286b31cfbba48738c6a19280b9fcf.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,41 @@ + + +CanFestival: examples/win32test/ Directory Reference + + + + + + +

win32test Directory Reference

+

+

examples/win32test/
+ + + + + + + + + + + + + + + + +

Files

file  main.c [code]
file  win32test.c [code]
file  win32test.h [code]
+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_9da286b31cfbba48738c6a19280b9fcf_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_9da286b31cfbba48738c6a19280b9fcf_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_9da286b31cfbba48738c6a19280b9fcf.html 27,52 115,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 35,151 107,199 +rect dir_000016_000017.html 75,126 83,139 +rect dir_000016_000017.html 67,147 75,155 +rect dir_fc8d77725c328f9de5a130dceab5a508.html 16,16 125,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_9da286b31cfbba48738c6a19280b9fcf_dep.png Binary file doc/doxygen/html/dir_9da286b31cfbba48738c6a19280b9fcf_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_a7260e1e7d8c32b9634bb52472535efa.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_a7260e1e7d8c32b9634bb52472535efa.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,47 @@ + + +CanFestival: examples/TestMasterMicroMod/ Directory Reference + + + + + + +

TestMasterMicroMod Directory Reference

+

+

examples/TestMasterMicroMod/
+ + + + + + + + + + + + + + + + + + + + + + +

Files

file  getopt.c [code]
file  getopt.h [code]
file  TestMaster.c [code]
file  TestMaster.h [code]
file  TestMasterMicroMod.c [code]
file  TestMasterMicroMod.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_a7260e1e7d8c32b9634bb52472535efa_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_a7260e1e7d8c32b9634bb52472535efa_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_a7260e1e7d8c32b9634bb52472535efa.html 27,52 187,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 71,151 143,199 +rect dir_000014_000017.html 111,126 119,139 +rect dir_000014_000017.html 103,147 111,155 +rect dir_fc8d77725c328f9de5a130dceab5a508.html 16,16 197,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_a7260e1e7d8c32b9634bb52472535efa_dep.png Binary file doc/doxygen/html/dir_a7260e1e7d8c32b9634bb52472535efa_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_a75c6486bcb1ea11c204d833cd15eb06.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_a75c6486bcb1ea11c204d833cd15eb06.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,34 @@ + + +CanFestival: src/win32/ Directory Reference + + + + + + +

win32 Directory Reference

+

+

src/win32/
+ + + + + + + + + +

Files

file  resource.h [code]
+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_a75c6486bcb1ea11c204d833cd15eb06_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_a75c6486bcb1ea11c204d833cd15eb06_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_a75c6486bcb1ea11c204d833cd15eb06.html 27,52 99,100 +rect dir_c0a169d39c08973f879fd54f07b9e9f7.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_a75c6486bcb1ea11c204d833cd15eb06_dep.png Binary file doc/doxygen/html/dir_a75c6486bcb1ea11c204d833cd15eb06_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_c0a169d39c08973f879fd54f07b9e9f7.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_c0a169d39c08973f879fd54f07b9e9f7.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,61 @@ + + +CanFestival: src/ Directory Reference + + + + + + +

src Directory Reference

+

+

src/
+ + + + + + + + + + + + + + + + + +

+

+ + + + + + + + + + + + + + + + + +

Directories

directory  win32

Files

file  dcf.c [code]
 EXEMPLE OF SOMMARY.
file  lifegrd.c [code]
file  nmtMaster.c [code]
file  nmtSlave.c [code]
file  objacces.c [code]
file  pdo.c [code]
file  sdo.c [code]
file  states.c [code]
file  sync.c [code]
file  timer.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_c0a169d39c08973f879fd54f07b9e9f7_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_c0a169d39c08973f879fd54f07b9e9f7_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 123,136 195,184 +rect dir_000026_000017.html 159,111 175,124 +rect dir_000026_000017.html 155,132 163,140 +rect dir_a75c6486bcb1ea11c204d833cd15eb06.html 27,37 99,85 +rect dir_c0a169d39c08973f879fd54f07b9e9f7.html 16,16 205,96 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_c0a169d39c08973f879fd54f07b9e9f7_dep.png Binary file doc/doxygen/html/dir_c0a169d39c08973f879fd54f07b9e9f7_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_cb9d6d827bc8780b4808994475b6fec1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_cb9d6d827bc8780b4808994475b6fec1.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,59 @@ + + +CanFestival: examples/TestMasterSlave/ Directory Reference + + + + + + +

TestMasterSlave Directory Reference

+

+

examples/TestMasterSlave/
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Files

file  getopt.c [code]
file  getopt.h [code]
file  Master.c [code]
file  Master.h [code]
file  Slave.c [code]
file  Slave.h [code]
file  TestMaster.c [code]
file  TestMaster.h [code]
file  TestMasterSlave.c [code]
file  TestMasterSlave.h [code]
file  TestSlave.c [code]
file  TestSlave.h [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_cb9d6d827bc8780b4808994475b6fec1_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_cb9d6d827bc8780b4808994475b6fec1_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_cb9d6d827bc8780b4808994475b6fec1.html 27,52 160,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 58,151 130,199 +rect dir_000015_000017.html 98,126 106,139 +rect dir_000015_000017.html 90,147 98,155 +rect dir_fc8d77725c328f9de5a130dceab5a508.html 16,16 171,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_cb9d6d827bc8780b4808994475b6fec1_dep.png Binary file doc/doxygen/html/dir_cb9d6d827bc8780b4808994475b6fec1_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_cd779dce9851c080a65607e200b2368c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_cd779dce9851c080a65607e200b2368c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,37 @@ + + +CanFestival: drivers/can_peak_win32/ Directory Reference + + + + + + +

can_peak_win32 Directory Reference

+

+

drivers/can_peak_win32/
+ + + + + + + + + + + + +

Files

file  can_peak_win32.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_cd779dce9851c080a65607e200b2368c_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_cd779dce9851c080a65607e200b2368c_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_cd779dce9851c080a65607e200b2368c.html 27,52 160,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 58,151 130,199 +rect dir_000003_000017.html 98,126 106,139 +rect dir_000003_000017.html 90,147 98,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 171,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_cd779dce9851c080a65607e200b2368c_dep.png Binary file doc/doxygen/html/dir_cd779dce9851c080a65607e200b2368c_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_d58fb241e647de6212c31ecccf9cbace.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_d58fb241e647de6212c31ecccf9cbace.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,85 @@ + + +CanFestival: drivers/ Directory Reference + + + + + + +

drivers Directory Reference

+

+

drivers/
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directories

directory  can_lincan
directory  can_peak_linux
directory  can_peak_win32
directory  can_socket
directory  can_uvccm_win32
directory  can_virtual
directory  hcs12
directory  timers_unix
directory  timers_xeno
directory  unix
directory  win32
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_d58fb241e647de6212c31ecccf9cbace_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_d58fb241e647de6212c31ecccf9cbace_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,34 @@ +base referer +rect dir_8cdda103ce035ff7e5ef31864566c615.html 27,37 120,85 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 775,136 847,184 +rect dir_000001_000017.html 752,144 760,157 +rect dir_000001_000017.html 771,155 779,163 +rect dir_99c3ac25e5cd4387d44a6b6f620347a9.html 144,37 270,85 +rect dir_000002_000017.html 754,140 762,153 +rect dir_000002_000017.html 771,153 779,161 +rect dir_cd779dce9851c080a65607e200b2368c.html 294,37 427,85 +rect dir_000003_000017.html 754,140 762,153 +rect dir_000003_000017.html 771,153 779,161 +rect dir_60bd150a90237f89382bb02bbf915860.html 451,37 547,85 +rect dir_000004_000017.html 756,131 764,144 +rect dir_000004_000017.html 771,147 779,155 +rect dir_0b40b6b553bfe31fd290d0ffbb49cb0d.html 667,37 811,85 +rect dir_000005_000017.html 786,109 794,123 +rect dir_000005_000017.html 790,132 798,140 +rect dir_2f1d38949ead60c979d76e04f3273800.html 835,37 931,85 +rect dir_000006_000017.html 842,120 850,133 +rect dir_000006_000017.html 824,132 832,140 +rect dir_db1ed8bc1b9755aa465fb1d5c578dab2.html 571,37 643,85 +rect dir_48aec78d2c68f8c6a53202ad028bcb76.html 955,37 1056,85 +rect dir_000008_000017.html 863,136 871,149 +rect dir_000008_000017.html 843,139 851,147 +rect dir_4f1231793a9fb011f8f57698089b1a38.html 1080,37 1184,85 +rect dir_000009_000017.html 863,151 871,164 +rect dir_000009_000017.html 843,148 851,156 +rect dir_6da7fb7606ab88af9c782bbceb5cfb77.html 1208,37 1280,85 +rect dir_000010_000017.html 862,156 870,169 +rect dir_000010_000017.html 843,152 851,160 +rect dir_e67188945a11754d0713bc6f89228027.html 1304,37 1376,85 +rect dir_000011_000017.html 862,157 870,171 +rect dir_000011_000017.html 843,153 851,161 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 1483,96 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_d58fb241e647de6212c31ecccf9cbace_dep.png Binary file doc/doxygen/html/dir_d58fb241e647de6212c31ecccf9cbace_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_db1ed8bc1b9755aa465fb1d5c578dab2.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_db1ed8bc1b9755aa465fb1d5c578dab2.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,36 @@ + + +CanFestival: drivers/hcs12/ Directory Reference + + + + + + +

hcs12 Directory Reference

+

+

drivers/hcs12/
+ + + + + + + + + + + +

Files

file  canOpenDriver.c [code]
file  interrupt.c [code]
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_db1ed8bc1b9755aa465fb1d5c578dab2_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_db1ed8bc1b9755aa465fb1d5c578dab2_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect dir_db1ed8bc1b9755aa465fb1d5c578dab2.html 27,52 99,100 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_db1ed8bc1b9755aa465fb1d5c578dab2_dep.png Binary file doc/doxygen/html/dir_db1ed8bc1b9755aa465fb1d5c578dab2_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_e67188945a11754d0713bc6f89228027.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_e67188945a11754d0713bc6f89228027.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,39 @@ + + +CanFestival: drivers/win32/ Directory Reference + + + + + + +

win32 Directory Reference

+

+

drivers/win32/
+ + + + + + + + + + + + + + +

Files

file  drivers_win32.cpp [code]
file  timers_win32.cpp [code]
+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_e67188945a11754d0713bc6f89228027_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_e67188945a11754d0713bc6f89228027_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect dir_e67188945a11754d0713bc6f89228027.html 27,52 99,100 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 27,151 99,199 +rect dir_000011_000017.html 67,126 75,139 +rect dir_000011_000017.html 59,147 67,155 +rect dir_d58fb241e647de6212c31ecccf9cbace.html 16,16 109,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_e67188945a11754d0713bc6f89228027_dep.png Binary file doc/doxygen/html/dir_e67188945a11754d0713bc6f89228027_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_fc8d77725c328f9de5a130dceab5a508.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_fc8d77725c328f9de5a130dceab5a508.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,52 @@ + + +CanFestival: examples/ Directory Reference + + + + + + +

examples Directory Reference

+

+

examples/
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directories

directory  gene_SYNC_HCS12
directory  TestMasterMicroMod
directory  TestMasterSlave
directory  win32test
+
Generated on Fri Jun 8 08:52:19 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_fc8d77725c328f9de5a130dceab5a508_dep.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dir_fc8d77725c328f9de5a130dceab5a508_dep.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect dir_41bf73311d8b7aeee9ef2a2b73ffd4dc.html 27,37 176,85 +rect dir_2209bfb26110ae52d50da4cefad5e72f.html 329,136 401,184 +rect dir_000013_000017.html 311,128 319,141 +rect dir_000013_000017.html 325,144 333,152 +rect dir_a7260e1e7d8c32b9634bb52472535efa.html 200,37 360,85 +rect dir_000014_000017.html 336,109 344,123 +rect dir_000014_000017.html 340,132 348,140 +rect dir_cb9d6d827bc8780b4808994475b6fec1.html 384,37 517,85 +rect dir_000015_000017.html 400,120 408,133 +rect dir_000015_000017.html 383,132 391,140 +rect dir_9da286b31cfbba48738c6a19280b9fcf.html 541,37 629,85 +rect dir_000016_000017.html 417,144 425,157 +rect dir_000016_000017.html 397,144 405,152 +rect dir_fc8d77725c328f9de5a130dceab5a508.html 16,16 752,96 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dir_fc8d77725c328f9de5a130dceab5a508_dep.png Binary file doc/doxygen/html/dir_fc8d77725c328f9de5a130dceab5a508_dep.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/dirs.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/dirs.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,61 @@ + + +CanFestival: Directory Hierarchy + + + + + +

CanFestival Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically: +
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,239 @@ + + +CanFestival: drivers/win32/drivers_win32.cpp Source File + + + + + + + +

drivers_win32.cpp

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack.
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 Copyright (C) Win32 Port Leonid Tochinski
+00006 
+00007 See COPYING file for copyrights details.
+00008 
+00009 This library is free software; you can redistribute it and/or
+00010 modify it under the terms of the GNU Lesser General Public
+00011 License as published by the Free Software Foundation; either
+00012 version 2.1 of the License, or (at your option) any later version.
+00013 
+00014 This library is distributed in the hope that it will be useful,
+00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00017 Lesser General Public License for more details.
+00018 
+00019 You should have received a copy of the GNU Lesser General Public
+00020 License along with this library; if not, write to the Free Software
+00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00022 */
+00023 
+00024 /*
+00025  CAN driver interface.
+00026 */
+00027 
+00028 #include <windows.h>
+00029 
+00030 extern "C"
+00031    {
+00032 #define DLL_CALL(funcname) (*_##funcname)
+00033 #define FCT_PTR_INIT =NULL
+00034 #include "canfestival.h"
+00035 #include "timer.h"
+00036 
+00037 #include "timers_driver.h"
+00038    };
+00039 
+00040 typedef UNS8 (*CANRECEIVE_DRIVER_PROC)(void* inst, Message *m);
+00041 typedef UNS8 (*CANSEND_DRIVER_PROC)(void* inst, const Message *m);
+00042 typedef void* (*CANOPEN_DRIVER_PROC)(s_BOARD *board);
+00043 typedef int (*CANCLOSE_DRIVER_PROC)(void* inst);
+00044 
+00045 
+00046 class driver_procs
+00047    {
+00048    public:
+00049       driver_procs();
+00050       ~driver_procs();
+00051 
+00052       HMODULE load_canfestival_driver(LPCTSTR driver_name);
+00053       bool can_driver_valid() const;
+00054 
+00055    public:
+00056       // can driver
+00057       CANRECEIVE_DRIVER_PROC m_canReceive;
+00058       CANSEND_DRIVER_PROC m_canSend;
+00059       CANOPEN_DRIVER_PROC m_canOpen;
+00060       CANCLOSE_DRIVER_PROC m_canClose;
+00061 
+00062       // driver module habndle
+00063       HMODULE m_driver_handle;
+00064    };
+00065 
+00066 driver_procs::driver_procs() : m_canReceive(0),
+00067       m_canSend(0),
+00068       m_canOpen(0),
+00069       m_canClose(0),
+00070       m_driver_handle(0)
+00071    {}
+00072 
+00073 driver_procs::~driver_procs()
+00074    {
+00075    if (m_driver_handle)
+00076       ::FreeLibrary(m_driver_handle);
+00077    }
+00078 
+00079 bool driver_procs::can_driver_valid() const
+00080    {
+00081    return ((m_canReceive != NULL) &&
+00082            (m_canSend != NULL) &&
+00083            (m_canOpen != NULL) &&
+00084            (m_canClose != NULL));
+00085    }
+00086 
+00087 // GetProcAddress doesn't have an UNICODE version for NT
+00088 #ifdef UNDER_CE
+00089   #define myTEXT(str) TEXT(str)
+00090 #else
+00091   #define myTEXT(str) str
+00092 #endif
+00093 
+00094 HMODULE driver_procs::load_canfestival_driver(LPCTSTR driver_name)
+00095    {
+00096    if (can_driver_valid())
+00097       return m_driver_handle;
+00098    m_driver_handle = ::LoadLibrary(driver_name);
+00099    if (m_driver_handle == NULL)
+00100       return NULL;
+00101 
+00102    m_canReceive = (CANRECEIVE_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canReceive_driver"));
+00103    m_canSend = (CANSEND_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canSend_driver"));
+00104    m_canOpen = (CANOPEN_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canOpen_driver"));
+00105    m_canClose = (CANCLOSE_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canClose_driver"));
+00106    return can_driver_valid()?m_driver_handle:NULL;
+00107    }
+00108 
+00109 struct driver_data
+00110    {
+00111    CO_Data * d;
+00112    HANDLE receive_thread;
+00113    void* inst;
+00114    volatile bool continue_receive_thread;
+00115    };
+00116 
+00117 driver_procs s_driver_procs;
+00118 
+00119 LIB_HANDLE LoadCanDriver(char* driver_name)
+00120    {
+00121                 return s_driver_procs.load_canfestival_driver((LPCTSTR)driver_name);
+00122    }
+00123 
+00124 UNS8 canReceive(CAN_PORT fd0, Message *m)
+00125    {
+00126    if (fd0 != NULL && s_driver_procs.m_canReceive != NULL)
+00127            {
+00128                   driver_data* data = (driver_data*)fd0;
+00129                   return (*s_driver_procs.m_canReceive)(data->inst, m);
+00130            }
+00131    return 1;
+00132    }
+00133 
+00134 void* canReceiveLoop(CAN_PORT fd0)
+00135    {
+00136    driver_data* data = (driver_data*)fd0;
+00137    Message m;
+00138    while (data->continue_receive_thread)
+00139       {
+00140       if (!canReceive(fd0, &m))
+00141          {
+00142          EnterMutex();
+00143          canDispatch(data->d, &m);
+00144          LeaveMutex();
+00145          }
+00146       else
+00147          {
+00148                  break;
+00149          ::Sleep(1);
+00150          }
+00151       }
+00152    return 0;
+00153    }
+00154 
+00155 /***************************************************************************/
+00156 UNS8 canSend(CAN_PORT fd0, Message *m)
+00157    {
+00158    if (fd0 != NULL && s_driver_procs.m_canSend != NULL)
+00159       {
+00160       UNS8 res;
+00161       driver_data* data = (driver_data*)fd0;
+00162       LeaveMutex();
+00163       res = (*s_driver_procs.m_canSend)(data->inst, m);      
+00164       EnterMutex();
+00165       if (res)
+00166          return 0;
+00167       }
+00168    return 1;
+00169    }
+00170 
+00171 /***************************************************************************/
+00172 CAN_HANDLE canOpen(s_BOARD *board, CO_Data * d)
+00173    {
+00174    if (board != NULL && s_driver_procs.m_canOpen != NULL)
+00175       {
+00176       void* inst = (*s_driver_procs.m_canOpen)(board);
+00177       if (inst != NULL)
+00178          {
+00179          driver_data* data = new driver_data;
+00180          data->d = d;
+00181          data->inst = inst;
+00182          data->continue_receive_thread = true;
+00183          CreateReceiveTask(data, &data->receive_thread, &canReceiveLoop);
+00184          EnterMutex();
+00185          d->canHandle = data;
+00186          LeaveMutex();
+00187          return data;
+00188          }
+00189       }
+00190    return NULL;
+00191    }
+00192 
+00193 /***************************************************************************/
+00194 int canClose(CO_Data * d)
+00195    {
+00196    if (s_driver_procs.m_canClose != NULL)
+00197       {
+00198                   driver_data* data;
+00199                   EnterMutex();
+00200                   if(d->canHandle != NULL){
+00201                         data = (driver_data*)d->canHandle;
+00202                         d->canHandle = NULL;
+00203                         data->continue_receive_thread = false;}
+00204                   LeaveMutex();
+00205                   WaitReceiveTaskEnd(&data->receive_thread);
+00206                   (*s_driver_procs.m_canClose)(data->inst);
+00207                   delete data;
+00208                   return 0;
+00209       }
+00210    return 0;
+00211    }
+00212 
+00213 
+

Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,471 @@ + + +CanFestival: drivers/win32/drivers_win32.cpp File Reference + + + + + + + +

drivers_win32.cpp File Reference

#include <windows.h>
+#include "canfestival.h"
+#include "timer.h"
+#include "timers_driver.h"
+ +

+Include dependency graph for drivers_win32.cpp:

+ + + + + + + + + +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Data Structures

class  driver_procs
struct  driver_data

Defines

#define DLL_CALL(funcname)   (*_##funcname)
#define FCT_PTR_INIT   =NULL
#define myTEXT(str)   str

Typedefs

typedef UNS8(*) CANRECEIVE_DRIVER_PROC (void *inst, Message *m)
typedef UNS8(*) CANSEND_DRIVER_PROC (void *inst, const Message *m)
typedef void *(*) CANOPEN_DRIVER_PROC (s_BOARD *board)
typedef int(*) CANCLOSE_DRIVER_PROC (void *inst)

Functions

LIB_HANDLE LoadCanDriver (char *driver_name)
UNS8 canReceive (CAN_PORT fd0, Message *m)
void * canReceiveLoop (CAN_PORT fd0)
UNS8 canSend (CAN_PORT fd0, Message *m)
CAN_HANDLE canOpen (s_BOARD *board, CO_Data *d)
int canClose (CO_Data *d)

Variables

driver_procs s_driver_procs
+


Define Documentation

+ +
+
+ + + + + + + + + +
#define DLL_CALL (funcname   )    (*_##funcname)
+
+
+ +

+ +

+Definition at line 32 of file drivers_win32.cpp. +

+

+ +

+
+ + + + +
#define FCT_PTR_INIT   =NULL
+
+
+ +

+ +

+Definition at line 33 of file drivers_win32.cpp. +

+

+ +

+
+ + + + + + + + + +
#define myTEXT (str   )    str
+
+
+ +

+ +

+Definition at line 91 of file drivers_win32.cpp. +

+Referenced by driver_procs::load_canfestival_driver(). +

+

+


Typedef Documentation

+ +
+
+ + + + +
typedef int(*) CANCLOSE_DRIVER_PROC(void *inst)
+
+
+ +

+ +

+Definition at line 43 of file drivers_win32.cpp. +

+

+ +

+
+ + + + +
typedef void*(*) CANOPEN_DRIVER_PROC(s_BOARD *board)
+
+
+ +

+ +

+Definition at line 42 of file drivers_win32.cpp. +

+

+ +

+
+ + + + +
typedef UNS8(*) CANRECEIVE_DRIVER_PROC(void *inst, Message *m)
+
+
+ +

+ +

+Definition at line 40 of file drivers_win32.cpp. +

+

+ +

+
+ + + + +
typedef UNS8(*) CANSEND_DRIVER_PROC(void *inst, const Message *m)
+
+
+ +

+ +

+Definition at line 41 of file drivers_win32.cpp. +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
int canClose (CO_Data d  ) 
+
+ +

+ +

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canReceive (CAN_PORT  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 124 of file drivers_win32.cpp. +

+References driver_data::inst, driver_procs::m_canReceive, and s_driver_procs. +

+Referenced by canReceiveLoop(), and LoadCanDriver(). +

+

+ +

+
+ + + + + + + + + +
void* canReceiveLoop (CAN_PORT  fd0  ) 
+
+
+ +

+ +

+Definition at line 134 of file drivers_win32.cpp. +

+References canDispatch(), canReceive(), driver_data::continue_receive_thread, driver_data::d, EnterMutex(), and LeaveMutex(). +

+Here is the call graph for this function:

+ + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
UNS8 canSend (CAN_PORT  fd0,
Message m 
)
+
+
+ +

+ +

+Definition at line 156 of file drivers_win32.cpp. +

+References canSend(), DLL_CALL, EnterMutex(), driver_data::inst, LeaveMutex(), driver_procs::m_canSend, s_driver_procs, and UNS8. +

+Here is the call graph for this function:

+ + + + + + + +
+

+ +

+
+ + + + + + + + + +
LIB_HANDLE LoadCanDriver (char *  driver_name  ) 
+
+
+ +

+ +

+Definition at line 119 of file drivers_win32.cpp. +

+References canClose(), canOpen(), canReceive(), canSend(), DLSYM, driver_procs::load_canfestival_driver(), and s_driver_procs. +

+Here is the call graph for this function:

+ + + + + + + + + + +
+

+


Variable Documentation

+ +
+ +
+ +

+ +

+Definition at line 117 of file drivers_win32.cpp. +

+Referenced by canClose(), canOpen(), canReceive(), canSend(), and LoadCanDriver(). +

+

+


Generated on Fri Jun 8 08:51:44 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_01559baf432253d46f1142231a968247_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_01559baf432253d46f1142231a968247_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 148,6 228,30 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 139,54 238,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 136,102 240,126 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 290,6 420,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_01559baf432253d46f1142231a968247_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_01559baf432253d46f1142231a968247_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fa9a2cbc096e55bfc40e9c0a590ac51f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_01559baf432253d46f1142231a968247_cgraph.png Binary file doc/doxygen/html/drivers__win32_8cpp_01559baf432253d46f1142231a968247_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_02957f72a9b951603adb98a142bd447b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_02957f72a9b951603adb98a142bd447b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 175,6 257,30 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 167,54 265,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 164,102 268,126 +rect $timers__unix_8c.html#4b2486891ee01e06e2deead4cf963727 136,150 296,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_02957f72a9b951603adb98a142bd447b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_02957f72a9b951603adb98a142bd447b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +45e124f4900018a87f796fb139298c53 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_02957f72a9b951603adb98a142bd447b_cgraph.png Binary file doc/doxygen/html/drivers__win32_8cpp_02957f72a9b951603adb98a142bd447b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_469503c5171a0cdd8369c1ec39d97d2c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_469503c5171a0cdd8369c1ec39d97d2c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $states_8c.html#3f8975650604cc23582f19a43fd4e518 188,102 292,126 +rect $drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd 191,150 290,174 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 191,198 290,222 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 188,246 292,270 +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 343,6 532,30 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 352,54 523,78 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 386,102 490,126 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 384,150 491,174 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 382,198 494,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_469503c5171a0cdd8369c1ec39d97d2c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_469503c5171a0cdd8369c1ec39d97d2c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +30ff141186366b06d6cfc58689db8044 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_469503c5171a0cdd8369c1ec39d97d2c_cgraph.png Binary file doc/doxygen/html/drivers__win32_8cpp_469503c5171a0cdd8369c1ec39d97d2c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,7 @@ +base referer +rect $win32_2canfestival_8h.html 468,104 575,128 +rect $timer_8h.html 487,56 556,80 +rect $timers__driver_8h.html 296,7 419,31 +rect $win32_2timerscfg_8h.html 627,8 726,32 +rect $can__driver_8h.html 624,104 728,128 +rect $data_8h.html 644,56 708,80 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +04760cccd7aa5bc5dfb234abae61ac20 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp__incl.png Binary file doc/doxygen/html/drivers__win32_8cpp__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 270,6 352,30 +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 270,54 352,78 +rect $drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd 262,102 360,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 271,150 351,174 +rect $classdriver__procs.html#719fa10d86bcd9b7a1ab7bea3dec1d03 176,198 446,222 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 540,150 671,174 +rect $classdriver__procs.html#a1e608bb39ab9183961b7ded9f27d193 494,198 718,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +163d8efcbc89eaecd9ca0d43e2d5af9e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.png Binary file doc/doxygen/html/drivers__win32_8cpp_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_d82cede875fd89036cdeda13e293dafe_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_d82cede875fd89036cdeda13e293dafe_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,13 @@ +base referer +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 169,100 252,124 +rect $unix_8c.html#45ceca3727c2fb7ac93958a215efb827 145,148 276,172 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 337,198 436,222 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 335,247 439,271 +rect $timers__unix_8c.html#a3a7df911baa20b01c4374a9677a154a 137,298 284,322 +rect $states_8c.html#3f8975650604cc23582f19a43fd4e518 335,102 439,126 +rect $drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd 337,150 436,174 +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 489,6 679,30 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 499,54 669,78 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 532,102 636,126 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 531,150 637,174 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 528,198 640,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_d82cede875fd89036cdeda13e293dafe_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/drivers__win32_8cpp_d82cede875fd89036cdeda13e293dafe_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e323b5ec5bb50c863c5899d4703acf79 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/drivers__win32_8cpp_d82cede875fd89036cdeda13e293dafe_cgraph.png Binary file doc/doxygen/html/drivers__win32_8cpp_d82cede875fd89036cdeda13e293dafe_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/error_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/error_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,63 @@ + + +CanFestival: include/hcs12/error.h Source File + + + + + + + +

error.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 #ifndef __ERROR__
+00024 #define __ERROR__
+00025  
+00026 
+00027 #define ERR_CAN_ADD_ID_TO_FILTER        "1      Not in init mode"
+00028 #define ERR_CAN_INIT_CLOCK              "4      Not in init mode"
+00029 #define ERR_CAN_INIT_1_FILTER           "5      Not in init mode"
+00030 #define ERR_CAN_INIT_FILTER             "6      Not in init mode" 
+00031 #define ERR_CAN_MSG_TRANSMIT            "7      No buffer free "
+00032 #define ERR_CAN_SLEEP_MODE              "8      Is in init mode"
+00033 #define ERR_CAN_SLEEP_MODE_Q            "9      Is in init mode"
+00034 #define ERR_CAN_SLEEP_WUP_MODE          "10     Is in init mode"
+00035 #define ERR_CAN0HDLRCV_STACK_FULL       "11     Stack R full"
+00036 
+00037 #endif /* __ERROR__ */ 
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/error_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/error_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,204 @@ + + +CanFestival: include/hcs12/error.h File Reference + + + + + + + +

error.h File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + +

Defines

#define ERR_CAN_ADD_ID_TO_FILTER   "1 Not in init mode"
#define ERR_CAN_INIT_CLOCK   "4 Not in init mode"
#define ERR_CAN_INIT_1_FILTER   "5 Not in init mode"
#define ERR_CAN_INIT_FILTER   "6 Not in init mode"
#define ERR_CAN_MSG_TRANSMIT   "7 No buffer free "
#define ERR_CAN_SLEEP_MODE   "8 Is in init mode"
#define ERR_CAN_SLEEP_MODE_Q   "9 Is in init mode"
#define ERR_CAN_SLEEP_WUP_MODE   "10 Is in init mode"
#define ERR_CAN0HDLRCV_STACK_FULL   "11 Stack R full"
+


Define Documentation

+ +
+
+ + + + +
#define ERR_CAN0HDLRCV_STACK_FULL   "11 Stack R full"
+
+
+ +

+ +

+Definition at line 35 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_ADD_ID_TO_FILTER   "1 Not in init mode"
+
+
+ +

+ +

+Definition at line 27 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_INIT_1_FILTER   "5 Not in init mode"
+
+
+ +

+ +

+Definition at line 29 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_INIT_CLOCK   "4 Not in init mode"
+
+
+ +

+ +

+Definition at line 28 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_INIT_FILTER   "6 Not in init mode"
+
+
+ +

+ +

+Definition at line 30 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_MSG_TRANSMIT   "7 No buffer free "
+
+
+ +

+ +

+Definition at line 31 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_SLEEP_MODE   "8 Is in init mode"
+
+
+ +

+ +

+Definition at line 32 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_SLEEP_MODE_Q   "9 Is in init mode"
+
+
+ +

+ +

+Definition at line 33 of file error.h. +

+

+ +

+
+ + + + +
#define ERR_CAN_SLEEP_WUP_MODE   "10 Is in init mode"
+
+
+ +

+ +

+Definition at line 34 of file error.h. +

+

+


Generated on Fri Jun 8 08:51:58 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/exit_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/exit_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,97 @@ + + +CanFestival: include/hcs12/board/arch/exit.h Source File + + + + + + + +

exit.h

Go to the documentation of this file.
00001 /*
+00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
+00003 
+00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
+00005 
+00006 See COPYING file for copyrights details.
+00007 
+00008 This library is free software; you can redistribute it and/or
+00009 modify it under the terms of the GNU Lesser General Public
+00010 License as published by the Free Software Foundation; either
+00011 version 2.1 of the License, or (at your option) any later version.
+00012 
+00013 This library is distributed in the hope that it will be useful,
+00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
+00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00016 Lesser General Public License for more details.
+00017 
+00018 You should have received a copy of the GNU Lesser General Public
+00019 License along with this library; if not, write to the Free Software
+00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00021 */
+00022 
+00023 /* exit.h - 32K Board specific parameters
+00024    Copyright (C) 2002 Free Software Foundation, Inc.
+00025    Written by Stephane Carrez (stcarrez@nerim.fr)       
+00026 
+00027 This file is free software; you can redistribute it and/or modify it
+00028 under the terms of the GNU General Public License as published by the
+00029 Free Software Foundation; either version 2, or (at your option) any
+00030 later version.
+00031 
+00032 In addition to the permissions in the GNU General Public License, the
+00033 Free Software Foundation gives you unlimited permission to link the
+00034 compiled version of this file with other programs, and to distribute
+00035 those programs without any restriction coming from the use of this
+00036 file.  (The General Public License restrictions do apply in other
+00037 respects; for example, they cover modification of the file, and
+00038 distribution when not linked into another program.)
+00039 
+00040 This file is distributed in the hope that it will be useful, but
+00041 WITHOUT ANY WARRANTY; without even the implied warranty of
+00042 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+00043 General Public License for more details.
+00044 
+00045 You should have received a copy of the GNU General Public License
+00046 along with this program; see the file COPYING.  If not, write to
+00047 the Free Software Foundation, 59 Temple Place - Suite 330,
+00048 Boston, MA 02111-1307, USA.  */
+00049 
+00050 #ifndef _M68HC11_ARCH_32K_EXIT_H
+00051 #define _M68HC11_ARCH_32K_EXIT_H
+00052 
+00053 extern void _exit (short status) __attribute__((noreturn));
+00054 
+00055 /* For the simulator, the wai stops everything and exits with the
+00056    error code stored in register d.
+00057 
+00058    For a real 68HC11, enable interrupts and wait forever.  */
+00059 extern inline void
+00060 _exit (short status)
+00061 {
+00062   /* Use 'd' constraint to force the status to be in the D
+00063      register before execution of the asm.  */
+00064   while (1)
+00065     {
+00066       __asm__ __volatile__ ("cli\n"
+00067                             "wai" : : "d"(status));
+00068     }
+00069 }
+00070 
+00071 #endif
+

Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/exit_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/exit_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,65 @@ + + +CanFestival: include/hcs12/board/arch/exit.h File Reference + + + + + + + +

exit.h File Reference

+

+Go to the source code of this file. + + + + +

Functions

void _exit (short status) __attribute__((noreturn))
+


Function Documentation

+ +
+
+ + + + + + + + + +
void _exit (short  status  )  [inline]
+
+
+ +

+ +

+Definition at line 60 of file exit.h. +

+References __asm__(). +

+Here is the call graph for this function:

+ + + + +
+

+


Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/exit_8h_584550ef7e16ebfa0823064d45816b8e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/exit_8h_584550ef7e16ebfa0823064d45816b8e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 111,6 188,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/exit_8h_584550ef7e16ebfa0823064d45816b8e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/exit_8h_584550ef7e16ebfa0823064d45816b8e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +ab73d4dec679cc29beda91745868f032 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/exit_8h_584550ef7e16ebfa0823064d45816b8e_cgraph.png Binary file doc/doxygen/html/exit_8h_584550ef7e16ebfa0823064d45816b8e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/files.html --- a/doc/doxygen/html/files.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/files.html Fri Jun 08 09:23:56 2007 +0200 @@ -8,7 +8,9 @@

CanFestival File List

Here is a list of all files with brief descriptions: - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
/home/epimerde/documents/tc11/CanFestival-3/src/dcf.c [code]EXEMPLE OF SOMMARY
/home/epimerde/documents/tc11/CanFestival-3/src/lifegrd.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/nmtMaster.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/objacces.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/pdo.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/sdo.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/states.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/sync.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/timer.c [code]
/home/epimerde/documents/tc11/CanFestival-3/src/win32/resource.h [code]
drivers/can_lincan/can_lincan.c [code]
drivers/can_lincan/canmsg.h [code]
drivers/can_lincan/lincan.h [code]
drivers/can_peak_linux/can_peak_linux.c [code]
drivers/can_peak_win32/can_peak_win32.c [code]
drivers/can_socket/can_socket.c [code]
drivers/can_uvccm_win32/can_uvccm_win32.cpp [code]
drivers/can_virtual/can_virtual.c [code]
drivers/hcs12/canOpenDriver.c [code]
drivers/hcs12/interrupt.c [code]
drivers/timers_unix/timers_unix.c [code]
drivers/timers_xeno/timers_xeno.c [code]
drivers/unix/unix.c [code]
drivers/win32/drivers_win32.cpp [code]
drivers/win32/timers_win32.cpp [code]
examples/gene_SYNC_HCS12/appli.c [code]
examples/gene_SYNC_HCS12/objdict.c [code]
examples/gene_SYNC_HCS12/objdict.h [code]
examples/TestMasterMicroMod/getopt.c [code]
examples/TestMasterMicroMod/getopt.h [code]
examples/TestMasterMicroMod/TestMaster.c [code]
examples/TestMasterMicroMod/TestMaster.h [code]
examples/TestMasterMicroMod/TestMasterMicroMod.c [code]
examples/TestMasterMicroMod/TestMasterMicroMod.h [code]
examples/TestMasterSlave/getopt.c [code]
examples/TestMasterSlave/getopt.h [code]
examples/TestMasterSlave/Master.c [code]
examples/TestMasterSlave/Master.h [code]
examples/TestMasterSlave/Slave.c [code]
examples/TestMasterSlave/Slave.h [code]
examples/TestMasterSlave/TestMaster.c [code]
examples/TestMasterSlave/TestMaster.h [code]
examples/TestMasterSlave/TestMasterSlave.c [code]
examples/TestMasterSlave/TestMasterSlave.h [code]
examples/TestMasterSlave/TestSlave.c [code]
examples/TestMasterSlave/TestSlave.h [code]
examples/win32test/main.c [code]
examples/win32test/win32test.c [code]
examples/win32test/win32test.h [code]
include/can.h [code]
include/can_driver.h [code]
include/config.h [code]
include/data.h [code]
include/dcf.h [code]
include/def.h [code]
include/lifegrd.h [code]
include/nmtMaster.h [code]
include/nmtSlave.h [code]
include/objacces.h [code]Responsible for accessing the object dictionary
include/objdictdef.h [code]
include/pdo.h [code]
include/sdo.h [code]
include/states.h [code]
include/sync.h [code]
include/sysdep.h [code]
include/timer.h [code]
include/timers_driver.h [code]
include/hcs12/applicfg.h [code]
include/hcs12/candriver.h [code]
include/hcs12/canOpenDriver.h [code]
include/hcs12/error.h [code]
include/hcs12/interrupt.h [code]
include/hcs12/regbase.h [code]
include/hcs12/asm-m68hc12/ports.h [code]
include/hcs12/asm-m68hc12/ports_def.h [code]
include/hcs12/asm-m68hc12/portsaccess.h [code]
include/hcs12/asm-m68hc12/regs.h [code]
include/hcs12/board/arch/exit.h [code]
include/hcs12/board/arch/interrupts.h [code]
include/hcs12/board/arch/param.h [code]
include/timers_unix/timerscfg.h [code]
include/timers_xeno/timerscfg.h [code]
include/unix/applicfg.h [code]
include/unix/canfestival.h [code]
include/win32/applicfg.h [code]
include/win32/canfestival.h [code]
include/win32/config.h [code]
include/win32/timerscfg.h [code]
src/dcf.c [code]EXEMPLE OF SOMMARY
src/lifegrd.c [code]
src/nmtMaster.c [code]
src/nmtSlave.c [code]
src/objacces.c [code]
src/pdo.c [code]
src/sdo.c [code]
src/states.c [code]
src/sync.c [code]
src/timer.c [code]
src/win32/resource.h [code]
-
Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  doxygen 1.5.1
diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/functions.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/functions.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,463 @@ + + +CanFestival: Data Fields + + + + + + +
+ +
+
+ +
+ +

+Here is a list of all struct and union fields with links to the structures/unions they belong to: +

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- h -

+

- i -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- q -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- w -

+

- ~ -

+
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/functions_func.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/functions_func.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,85 @@ + + +CanFestival: Data Fields - Functions + + + + + + +
+ +
+  +

+

+
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/functions_vars.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/functions_vars.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,404 @@ + + +CanFestival: Data Fields - Variables + + + + + + +
+ +
+
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- d -

+

- f -

+

- h -

+

- i -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- q -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- w -

+
Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals.html --- a/doc/doxygen/html/globals.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/globals.html Fri Jun 08 09:23:56 2007 +0200 @@ -8,7 +8,9 @@
@@ -49,235 +59,61 @@ Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- _ -

-

- a -

-

- c -

-

- d -

-

- f -

-

- g -

-

- h -

-

- i -

-

- l -

-

- m -

-

- n -

-

- o -

    -
  • objdictToSDOline() -: sdo.c -
  • OnCOB_ID_SyncUpdate() -: sync.c -
  • OnHearbeatProducerUpdate() -: lifegrd.c -
  • OnHeartbeatProducerUpdate() -: lifegrd.c -
-

- p -

-

- r -

-

- s -

-

- t -

-

- w -

    -
  • writeLocalDict() -: objacces.c -
  • writeNetworkDict() -: sdo.c -
  • writeNetworkDictCallBack() -: sdo.c -
-
Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  doxygen 1.5.1
diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x61.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x61.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,197 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- a -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x62.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x62.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,93 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- b -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x63.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x63.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1000 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- c -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x64.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x64.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,156 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- d -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x65.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x65.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,113 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- e -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x66.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x66.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,92 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- f -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x67.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x67.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,253 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- g -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x68.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x68.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,83 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- h -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x69.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x69.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,189 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- i -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x6c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x6c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,96 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- l -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x6d.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x6d.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,204 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- m -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x6e.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x6e.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,95 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- n -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x6f.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x6f.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,122 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- o -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x70.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x70.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,318 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- p -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x71.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x71.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,71 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- q -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x72.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x72.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,145 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- r -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x73.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x73.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,392 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- s -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x74.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x74.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,640 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- t -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x75.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x75.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,120 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- u -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x76.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x76.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,71 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- v -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_0x77.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_0x77.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,174 @@ + + +CanFestival: Data Fields + + + + + + + +
+ +
+ +

+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: +

+

- w -

+
Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
+ + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs.html --- a/doc/doxygen/html/globals_defs.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/globals_defs.html Fri Jun 08 09:23:56 2007 +0200 @@ -8,7 +8,9 @@ +
+ +
+ +

 

-

    -
  • getSDOc -: sdo.c -
  • getSDOcs -: sdo.c -
  • getSDOe -: sdo.c -
  • getSDOindex -: sdo.c -
  • getSDOn2 -: sdo.c -
  • getSDOn3 -: sdo.c -
  • getSDOs -: sdo.c -
  • getSDOsubIndex -: sdo.c -
  • getSDOt -: sdo.c -
  • INLINE -: sdo.c -
  • min_val -: timer.c -
  • NO_INLINE -: sdo.c -
  • None -: states.c -
  • RestartSDO_TIMER -: sdo.c -
  • StartOrStop -: states.c -
  • StartSDO_TIMER -: sdo.c -
  • StopSDO_TIMER -: sdo.c +

    - _ -

    -
    Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x61.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x61.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,177 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - a -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x62.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x62.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,85 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - b -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x63.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x63.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,828 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - c -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x64.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x64.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,119 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - d -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x65.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x65.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,100 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - e -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x66.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x66.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,84 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - f -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x67.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x67.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,89 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - g -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x68.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x68.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,67 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - h -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x69.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x69.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,149 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - i -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x6d.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x6d.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,137 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - m -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x6e.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x6e.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,93 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - n -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x6f.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x6f.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,87 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - o -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x70.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x70.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,271 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - p -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x72.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x72.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,115 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - r -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x73.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x73.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,245 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - s -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x74.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x74.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,184 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - t -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x75.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x75.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,110 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - u -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x76.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x76.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,67 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - v -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_defs_0x77.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_defs_0x77.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,71 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - w -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_enum.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_enum.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,43 @@ + + +CanFestival: Data Fields + + + + + + + +  +

    +

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_eval.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_eval.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,67 @@ + + +CanFestival: Data Fields + + + + + + + +  +

    +

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func.html --- a/doc/doxygen/html/globals_func.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/globals_func.html Fri Jun 08 09:23:56 2007 +0200 @@ -8,7 +8,9 @@
    @@ -48,191 +56,53 @@  

    - _ -

    -

    - a -

    -

    - c -

    -

    - d -

    -

    - f -

    -

    - g -

    -

    - h -

    -

    - i -

      -
    • initSDOline() -: sdo.c -
    -

    - l -

    -

    - m -

    -

    - o -

      -
    • objdictToSDOline() -: sdo.c -
    • OnCOB_ID_SyncUpdate() -: sync.c -
    • OnHearbeatProducerUpdate() -: lifegrd.c -
    • OnHeartbeatProducerUpdate() -: lifegrd.c -
    -

    - p -

    -

    - r -

    -

    - s -

    -

    - t -

    -

    - w -

      -
    • writeLocalDict() -: objacces.c -
    • writeNetworkDict() -: sdo.c -
    • writeNetworkDictCallBack() -: sdo.c -
    -
    Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x61.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x61.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,67 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - a -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x62.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x62.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,66 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - b -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x63.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x63.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,186 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - c -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x64.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x64.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,70 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - d -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x65.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x65.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,69 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - e -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x66.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x66.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,70 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - f -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x67.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x67.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,139 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - g -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x68.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x68.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,76 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - h -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x69.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x69.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,96 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - i -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x6c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x6c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,79 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - l -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x6d.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x6d.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,78 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - m -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x6f.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x6f.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,75 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - o -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x70.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x70.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,93 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - p -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x72.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x72.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,86 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - r -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x73.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x73.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,140 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - s -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x74.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x74.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,147 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - t -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x75.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x75.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,70 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - u -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_func_0x77.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_func_0x77.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,100 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - w -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_type.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/globals_type.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,155 @@ + + +CanFestival: Data Fields + + + + + + + +
    + +
    + +

    +  +

    +

    - b -

    +

    - c -

    +

    - e -

    +

    - h -

    +

    - i -

    +

    - l -

    +

    - o -

    +

    - p -

    +

    - q -

    +

    - s -

    +

    - t -

    +

    - v -

    +
    Generated on Fri Jun 8 08:52:20 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/globals_vars.html --- a/doc/doxygen/html/globals_vars.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/globals_vars.html Fri Jun 08 09:23:56 2007 +0200 @@ -8,7 +8,9 @@ +
    + +
    + +

     

    -

    -
    Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,199 @@ + + +CanFestival: include/hcs12/applicfg.h Source File + + + + + + + +

    applicfg.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __APPLICFG_HC12__
    +00024 #define __APPLICFG_HC12__
    +00025 
    +00026 #include <string.h>
    +00027 #include <stdio.h>
    +00028 
    +00029 #include <../include/hcs12/asm-m68hc12/portsaccess.h>
    +00030 #include <../include/hcs12/asm-m68hc12/ports_def.h>
    +00031 #include <../include/hcs12/asm-m68hc12/ports.h>
    +00032 #include <../include/hcs12/interrupt.h>
    +00033 
    +00034 
    +00036 // -----------------------------------------------------
    +00037 // Test :
    +00038 // UNS32 v = 0x1234ABCD;
    +00039 // char *data = &v;
    +00040 //
    +00041 // Result for a little_endian architecture :
    +00042 // data[0] = 0xCD;
    +00043 // data[1] = 0xAB;
    +00044 // data[2] = 0x34;
    +00045 // data[3] = 0x12;
    +00046 //
    +00047 // Result for a big_endian architecture :
    +00048 // data[0] = 0x12;
    +00049 // data[1] = 0x34;
    +00050 // data[2] = 0xAB;
    +00051 // data[3] = 0xCD;
    +00052 
    +00053 /* CANOPEN_BIG_ENDIAN now defined in config.h*/
    +00054 #ifndef CANOPEN_BIG_ENDIAN
    +00055 #  define CANOPEN_BIG_ENDIAN 1
    +00056 #endif
    +00057 
    +00058 
    +00059 // Use or not the PLL
    +00060 //#define USE_PLL
    +00061 
    +00062 #ifdef USE_PLL
    +00063 #  define BUS_CLOCK 24 // If the quartz on the board is 16 MHz. If different, change this value
    +00064 #else 
    +00065 #  define BUS_CLOCK 8  // If the quartz on the board is 16 MHz. If different, change this value
    +00066 #endif
    +00067 
    +00069 // Tested : 
    +00070 //   SERIAL_SCI0_BAUD_RATE 9600      BUS_CLOCK 8   Send OK      Receive not tested
    +00071 //   SERIAL_SCI0_BAUD_RATE 19200     BUS_CLOCK 8   Send OK      Receive not tested
    +00072 //   SERIAL_SCI0_BAUD_RATE 38400     BUS_CLOCK 8   Send OK      Receive not tested
    +00073 //   SERIAL_SCI0_BAUD_RATE 57600     BUS_CLOCK 8   Send Failed  Receive not tested
    +00074 //   SERIAL_SCI0_BAUD_RATE 115200    BUS_CLOCK 8   Send Failed  Receive not tested
    +00075 
    +00076 //   SERIAL_SCI0_BAUD_RATE 9600      BUS_CLOCK 24  Send OK      Receive not tested
    +00077 //   SERIAL_SCI0_BAUD_RATE 19200     BUS_CLOCK 24  Send OK      Receive not tested
    +00078 //   SERIAL_SCI0_BAUD_RATE 38400     BUS_CLOCK 24  Send OK but init problems     Receive not tested
    +00079 //   SERIAL_SCI0_BAUD_RATE 57600     BUS_CLOCK 24  Send Failed  Receive not tested
    +00080 //   SERIAL_SCI0_BAUD_RATE 115200    BUS_CLOCK 24  Send Failed  Receive not tested
    +00081 
    +00082 #define SERIAL_SCI0_BAUD_RATE 38400
    +00083 #define SERIAL_SCI1_BAUD_RATE 9600
    +00084 
    +00085 
    +00086 
    +00087 
    +00088 
    +00089 
    +00090 // Several hardware definitions functions
    +00091 // --------------------------------------
    +00092 
    +00093 
    +00095 extern void initSCI_0 (void);
    +00096 
    +00098 extern void initSCI_1 (void);
    +00099 
    +00110 extern char *
    +00111 hex_convert (char *buf, unsigned long value, char lastCar);
    +00112 
    +00115 extern void printSCI_str (char sci, const char * str); 
    +00116 
    +00119 extern void printSCI_nbr (char sci, unsigned long nbr, char lastCar);
    +00120 
    +00123 extern void initPLL (void);
    +00124 
    +00126 extern void initHCS12 (void);
    +00127 
    +00128 // Integers
    +00129 #define INTEGER8 signed char
    +00130 #define INTEGER16 short
    +00131 #define INTEGER24
    +00132 #define INTEGER32 long
    +00133 #define INTEGER40
    +00134 #define INTEGER48
    +00135 #define INTEGER56
    +00136 #define INTEGER64
    +00137  
    +00138 // Unsigned integers
    +00139 #define UNS8   unsigned char
    +00140 #define UNS16  unsigned short
    +00141 #define UNS32  unsigned long
    +00142 #define UNS24
    +00143 #define UNS40
    +00144 #define UNS48
    +00145 #define UNS56
    +00146 #define UNS64 
    +00147 
    +00148 // Whatever your microcontroller, the timer wont work if 
    +00149 // TIMEVAL is not at least on 32 bits
    +00150 #define TIMEVAL UNS32 
    +00151 
    +00152 // The timer of the hcs12 counts from 0000 to 0xFFFF
    +00153 #define TIMEVAL_MAX 0xFFFF
    +00154 
    +00155 // The timer is incrementing every 4 us.
    +00156 #define MS_TO_TIMEVAL(ms) (ms * 250)
    +00157 #define US_TO_TIMEVAL(us) (us>>2)
    +00158 
    +00159 
    +00160 // Reals
    +00161 #define REAL32  float
    +00162 #define REAL64 double
    +00163 
    +00164 #include "can.h"
    +00165 
    +00166 
    +00168 // ---------------------
    +00169 #ifdef DEBUG_ERR_CONSOLE_ON
    +00170 #    define MSG_ERR(num, str, val)            \
    +00171           initSCI_0();                        \
    +00172           printSCI_nbr(SCI0, num, ' ');       \
    +00173           /* large printing on console  */    \
    +00174           printSCI_str(SCI0, str);            \
    +00175           printSCI_nbr(SCI0, val, '\n');      
    +00176 #else
    +00177 #    define MSG_ERR(num, str, val)
    +00178 #endif
    +00179 
    +00181 // ---------------------
    +00182 #ifdef DEBUG_WAR_CONSOLE_ON
    +00183 #    define MSG_WAR(num, str, val)          \
    +00184         initSCI_0();                        \
    +00185         printSCI_nbr(SCI0, num, ' ');       \
    +00186         /* large printing on console  */    \
    +00187         printSCI_str(SCI0, str);            \
    +00188         printSCI_nbr(SCI0, val, '\n');      
    +00189 #else
    +00190 #    define MSG_WAR(num, str, val)
    +00191 #endif
    +00192 
    +00193 
    +00194 #endif
    +00195 
    +00196 
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,904 @@ + + +CanFestival: include/hcs12/applicfg.h File Reference + + + + + + + +

    applicfg.h File Reference

    #include <string.h>
    +#include <stdio.h>
    +#include <../include/hcs12/asm-m68hc12/portsaccess.h>
    +#include <../include/hcs12/asm-m68hc12/ports_def.h>
    +#include <../include/hcs12/asm-m68hc12/ports.h>
    +#include <../include/hcs12/interrupt.h>
    +#include "can.h"
    + +

    +Include dependency graph for applicfg.h:

    + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define CANOPEN_BIG_ENDIAN   1
     Define the architecture : little_endian or big_endian.
    #define BUS_CLOCK   8
    #define SERIAL_SCI0_BAUD_RATE   38400
     Configuration of the serials port SCI0 and SCI1.
    #define SERIAL_SCI1_BAUD_RATE   9600
    #define INTEGER8   signed char
    #define INTEGER16   short
    #define INTEGER24
    #define INTEGER32   long
    #define INTEGER40
    #define INTEGER48
    #define INTEGER56
    #define INTEGER64
    #define UNS8   unsigned char
    #define UNS16   unsigned short
    #define UNS32   unsigned long
    #define UNS24
    #define UNS40
    #define UNS48
    #define UNS56
    #define UNS64
    #define TIMEVAL   UNS32
    #define TIMEVAL_MAX   0xFFFF
    #define MS_TO_TIMEVAL(ms)   (ms * 250)
    #define US_TO_TIMEVAL(us)   (us>>2)
    #define REAL32   float
    #define REAL64   double
    #define MSG_ERR(num, str, val)
     Definition of MSG_ERR.
    #define MSG_WAR(num, str, val)
     Definition of MSG_WAR.

    Functions

    void initSCI_0 (void)
     Initialisation of the serial port 0.
    void initSCI_1 (void)
     Initialisation of the serial port 1.
    char * hex_convert (char *buf, unsigned long value, char lastCar)
    void printSCI_str (char sci, const char *str)
    void printSCI_nbr (char sci, unsigned long nbr, char lastCar)
    void initPLL (void)
    void initHCS12 (void)
     Put here all the code to init the HCS12.
    +


    Define Documentation

    + +
    +
    + + + + +
    #define BUS_CLOCK   8
    +
    +
    + +

    + +

    +Definition at line 65 of file applicfg.h. +

    +Referenced by initSCI_0(), and initSCI_1(). +

    +

    + +

    +
    + + + + +
    #define CANOPEN_BIG_ENDIAN   1
    +
    +
    + +

    +Define the architecture : little_endian or big_endian. +

    + +

    +Definition at line 55 of file applicfg.h. +

    +Referenced by _writeNetworkDict(), and getReadResultNetworkDict(). +

    +

    + +

    +
    + + + + +
    #define INTEGER16   short
    +
    +
    + +

    + +

    +Definition at line 130 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER24
    +
    +
    + +

    + +

    +Definition at line 131 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER32   long
    +
    +
    + +

    + +

    +Definition at line 132 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER40
    +
    +
    + +

    + +

    +Definition at line 133 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER48
    +
    +
    + +

    + +

    +Definition at line 134 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER56
    +
    +
    + +

    + +

    +Definition at line 135 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER64
    +
    +
    + +

    + +

    +Definition at line 136 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER8   signed char
    +
    +
    + +

    + +

    +Definition at line 129 of file applicfg.h. +

    +Referenced by CopyBits(). +

    +

    + +

    +
    + + + + + + + + + +
    #define MS_TO_TIMEVAL (ms   )    (ms * 250)
    +
    +
    + +

    + +

    +Definition at line 156 of file applicfg.h. +

    +Referenced by heartbeatInit(), and proceedNODE_GUARD(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + +
    #define MSG_ERR (num,
    str,
    val   ) 
    +
    + +

    + +

    + +

    +
    + + + + +
    #define REAL32   float
    +
    +
    + +

    + +

    +Definition at line 161 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define REAL64   double
    +
    +
    + +

    + +

    +Definition at line 162 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define SERIAL_SCI0_BAUD_RATE   38400
    +
    +
    + +

    +Configuration of the serials port SCI0 and SCI1. +

    + +

    +Definition at line 82 of file applicfg.h. +

    +Referenced by initSCI_0(). +

    +

    + +

    +
    + + + + +
    #define SERIAL_SCI1_BAUD_RATE   9600
    +
    +
    + +

    + +

    +Definition at line 83 of file applicfg.h. +

    +Referenced by initSCI_1(). +

    +

    + +

    +
    + + + + +
    #define TIMEVAL   UNS32
    +
    + +

    + +

    +
    + + + + +
    #define TIMEVAL_MAX   0xFFFF
    +
    + +

    + +

    +
    + + + + +
    #define UNS16   unsigned short
    +
    + +

    + +

    +
    + + + + +
    #define UNS24
    +
    +
    + +

    + +

    +Definition at line 142 of file applicfg.h. +

    +

    + +

    + +

    +
    + + + + +
    #define UNS40
    +
    +
    + +

    + +

    +Definition at line 143 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS48
    +
    +
    + +

    + +

    +Definition at line 144 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS56
    +
    +
    + +

    + +

    +Definition at line 145 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS64
    +
    +
    + +

    + +

    +Definition at line 146 of file applicfg.h. +

    +

    + +

    + +

    +
    + + + + + + + + + +
    #define US_TO_TIMEVAL (us   )    (us>>2)
    +
    +
    + +

    + +

    +Definition at line 157 of file applicfg.h. +

    +Referenced by startSYNC(). +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    char* hex_convert (char *  buf,
    unsigned long  value,
    char  lastCar 
    )
    +
    +
    + +

    +Convert an integer to a string in hexadecimal format If you do not wants to use a lastCar, put lastCar = '' (end of string) ex : value = 0XABCDEF and lastCar = '
    +' buf[0] = '0' buf[1] = 'X' buf[2] = 'A' .... buf[7] = 'F' buf[8] = '
    +' buf[9] = '' +

    +Definition at line 135 of file canOpenDriver.c. +

    +Referenced by printSCI_nbr(). +

    +

    + +

    +
    + + + + + + + + + +
    void initHCS12 (void   ) 
    +
    +
    + +

    +Put here all the code to init the HCS12. +

    + +

    +Definition at line 199 of file canOpenDriver.c. +

    +References initPLL(), and MSG_WAR. +

    +Referenced by initSensor(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void initPLL (void   ) 
    +
    +
    + +

    +to start using the PLL. Bus clock becomes 24 MHz if the quartz on the board is at 16 MHz +

    +Definition at line 188 of file canOpenDriver.c. +

    +References CLKSEL, CRGFLG, IO_PORTS_8, PLLCTL, REFDV, and SYNR. +

    +Referenced by initHCS12(). +

    +

    + +

    +
    + + + + + + + + + +
    void initSCI_0 (void   ) 
    +
    +
    + +

    +Initialisation of the serial port 0. +

    + +

    +Definition at line 115 of file canOpenDriver.c. +

    +References BUS_CLOCK, IO_PORTS_16, IO_PORTS_8, SCI0, SCIBDH, SCICR1, SCICR2, and SERIAL_SCI0_BAUD_RATE. +

    +

    + +

    +
    + + + + + + + + + +
    void initSCI_1 (void   ) 
    +
    +
    + +

    +Initialisation of the serial port 1. +

    + +

    +Definition at line 124 of file canOpenDriver.c. +

    +References BUS_CLOCK, IO_PORTS_16, IO_PORTS_8, SCI1, SCIBDH, SCICR1, SCICR2, and SERIAL_SCI1_BAUD_RATE. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void printSCI_nbr (char  sci,
    unsigned long  nbr,
    char  lastCar 
    )
    +
    +
    + +

    +Print the number in hexadecimal to the serial port sci (sci takes the values SCI0 or SCI1) +

    +Definition at line 179 of file canOpenDriver.c. +

    +References hex_convert(), and printSCI_str(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    void printSCI_str (char  sci,
    const char *  str 
    )
    +
    +
    + +

    +Print the string to the serial port sci (sci takes the values SCI0 or SCI1) +

    +Definition at line 162 of file canOpenDriver.c. +

    +References IO_PORTS_8, SCIDRL, and SCISR1. +

    +Referenced by printSCI_nbr(). +

    +

    +


    Generated on Fri Jun 8 08:51:56 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#2a9aef0efc98c5b41ef97ef91ad403e5 161,6 265,30 +rect $canOpenDriver_8c.html#6e3075ae435e83aefc018e5218c197d0 164,54 263,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +241a10a9d178261b752c3cf8ffe2a6a4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.png Binary file doc/doxygen/html/hcs12_2applicfg_8h_80f5dbbc046cba0e5e9cf2bcc4c1e78e_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $can_8h.html 377,87 436,111 +rect $win32_2applicfg_8h.html 620,87 708,111 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0291bcc2059d7e9a049fffac11c0b0e6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h__incl.png Binary file doc/doxygen/html/hcs12_2applicfg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h_c71399958d35a7f703416f025603ee26_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h_c71399958d35a7f703416f025603ee26_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#51e71c727eb7a49e2fde962a3d190a6b 144,6 211,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h_c71399958d35a7f703416f025603ee26_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/hcs12_2applicfg_8h_c71399958d35a7f703416f025603ee26_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1248692d1f0171cec055d6d2c2b2efd7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/hcs12_2applicfg_8h_c71399958d35a7f703416f025603ee26_cgraph.png Binary file doc/doxygen/html/hcs12_2applicfg_8h_c71399958d35a7f703416f025603ee26_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,90 @@ + + +CanFestival: drivers/hcs12/interrupt.c Source File + + + + + + + +

    interrupt.c

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 /*
    +00024 Functions called by interrupts vectors.
    +00025 */
    +00026 /*
    +00027 This is a part of the driver, of course !
    +00028 But you have to put your code in this functions,
    +00029 if you plan to use interruptions.
    +00030 */
    +00031 
    +00032 #include "../include/data.h"
    +00033 #include "../include/hcs12/applicfg.h"
    +00034 #include "../include/hcs12/error.h"
    +00035 #include "../include/hcs12/candriver.h"
    +00036 #include "../include/hcs12/asm-m68hc12/regs.h"
    +00037 #include "../include/hcs12/asm-m68hc12/portsaccess.h"
    +00038 #include "../include/hcs12/asm-m68hc12/ports_def.h"
    +00039 #include "../include/hcs12/asm-m68hc12/ports.h"
    +00040 #include "../include/hcs12/interrupt.h"
    +00041 
    +00042 extern volatile char msgRecu;
    +00043 extern volatile Message canMsgRcv;
    +00044 
    +00045 
    +00046 
    +00047 /* Inhibe les interruptions */
    +00048 
    +00049 void lock (void)
    +00050 {
    +00051    unsigned short mask;
    +00052    __asm__ __volatile__ ("tpa\n\tsei" : "=d"(mask));
    +00053 
    +00054 }
    +00055 
    +00056 /* Autorise les interruptions */
    +00057 void unlock (void)
    +00058 { 
    +00059    __asm__ __volatile__ ("cli");
    +00060 }
    +00061 
    +00062 
    +00063 
    +00064 
    +

    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,149 @@ + + +CanFestival: drivers/hcs12/interrupt.c File Reference + + + + + + + +

    interrupt.c File Reference

    #include "../include/data.h"
    +#include "../include/hcs12/applicfg.h"
    +#include "../include/hcs12/error.h"
    +#include "../include/hcs12/candriver.h"
    +#include "../include/hcs12/asm-m68hc12/regs.h"
    +#include "../include/hcs12/asm-m68hc12/portsaccess.h"
    +#include "../include/hcs12/asm-m68hc12/ports_def.h"
    +#include "../include/hcs12/asm-m68hc12/ports.h"
    +#include "../include/hcs12/interrupt.h"
    + +

    +Include dependency graph for interrupt.c:

    + +

    +Go to the source code of this file. + + + + + + + + + + + +

    Functions

    void lock (void)
    void unlock (void)

    Variables

    volatile char msgRecu
    volatile Message canMsgRcv
    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void lock (void   ) 
    +
    +
    + +

    +Disable interrupts +

    +Definition at line 49 of file interrupt.c. +

    +References __asm__(). +

    +Referenced by initTimer(), and main(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void unlock (void   ) 
    +
    +
    + +

    +Enable interrupts +

    +Definition at line 57 of file interrupt.c. +

    +References __asm__(). +

    +Referenced by initSensor(), initTimer(), and main(). +

    +Here is the call graph for this function:

    + + + + +
    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    volatile Message canMsgRcv
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + +
    volatile char msgRecu
    +
    +
    + +

    + +

    +

    +


    Generated on Fri Jun 8 08:51:42 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c_987ce601d6d4c8eedd68b58db3b7811a_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c_987ce601d6d4c8eedd68b58db3b7811a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 121,6 199,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c_987ce601d6d4c8eedd68b58db3b7811a_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c_987ce601d6d4c8eedd68b58db3b7811a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +bce8a070d492f2ba5c15136a594a9cb4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c_987ce601d6d4c8eedd68b58db3b7811a_cgraph.png Binary file doc/doxygen/html/interrupt_8c_987ce601d6d4c8eedd68b58db3b7811a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9f693bcd622f596cb2c83e7e1d531784 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c__incl.png Binary file doc/doxygen/html/interrupt_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 105,6 183,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8c_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0bb02f7b239c3501a05674aaa9b2b555 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8c_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.png Binary file doc/doxygen/html/interrupt_8c_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,106 @@ + + +CanFestival: include/hcs12/interrupt.h Source File + + + + + + + +

    interrupt.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __INTERRUPT__
    +00024 #define __INTERRUPT__
    +00025 
    +00026  
    +00030 void lock (void);
    +00031 
    +00035 void unlock (void);
    +00036 
    +00040 void __attribute__((interrupt)) timerOvflHdl (void);
    +00041 
    +00045 void __attribute__((interrupt)) can0HdlTra (void);
    +00046 
    +00050 void __attribute__((interrupt)) can0HdlRcv (void);
    +00051 
    +00056 void __attribute__((interrupt)) can0HdlWup (void);
    +00057 
    +00061 void __attribute__((interrupt)) can0HdlErr (void);
    +00062 
    +00066 void __attribute__((interrupt)) can1HdlTra (void);
    +00067 
    +00071 void __attribute__((interrupt)) can1HdlRcv (void);
    +00072 
    +00076 void __attribute__((interrupt)) can1HdlWup (void);
    +00077 
    +00081 void __attribute__((interrupt)) can1HdlErr (void);
    +00082 
    +00086 void __attribute__((interrupt)) can2HdlTra (void);
    +00087 
    +00091 void __attribute__((interrupt)) can2HdlRcv (void);
    +00092 
    +00093 /*
    +00094 Message error on MSCAN 2
    +00095 */
    +00096 void __attribute__((interrupt)) can2HdlWup (void);
    +00097 
    +00101 void __attribute__((interrupt)) can2HdlErr (void);
    +00102 
    +00106 void __attribute__((interrupt)) can3HdlTra (void);
    +00107 
    +00111 void __attribute__((interrupt)) can3HdlRcv (void);
    +00112 
    +00116 void __attribute__((interrupt)) can3HdlWup (void);
    +00117 
    +00121 void __attribute__((interrupt)) can3HdlErr (void);
    +00122 
    +00126 void __attribute__((interrupt)) can4HdlTra (void);
    +00127 
    +00131 void __attribute__((interrupt)) can4HdlRcv (void);
    +00132 
    +00133 /*
    +00134 Message error on MSCAN 4
    +00135 */
    +00136 void __attribute__((interrupt)) can4HdlWup (void);
    +00137 
    +00141 void __attribute__((interrupt)) can4HdlErr (void);
    +00142 
    +00143 
    +00144 #endif /* __INTERRUPT__  */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,133 @@ + + +CanFestival: include/hcs12/interrupt.h File Reference + + + + + + + +

    interrupt.h File Reference

    +

    +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file. + + + + + + + + +

    Functions

    void lock (void)
    void unlock (void)
    void __attribute__ ((interrupt)) timerOvflHdl(void)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void __attribute__ ((interrupt)   ) 
    +
    +
    + +

    +Message transmitted on MSCAN 0 +

    +Definition at line 54 of file canOpenDriver.c. +

    +References IO_PORTS_16, and TC4H. +

    +

    + +

    +
    + + + + + + + + + +
    void lock (void   ) 
    +
    +
    + +

    +Disable interrupts +

    +Definition at line 49 of file interrupt.c. +

    +References __asm__(). +

    +Referenced by initTimer(), and main(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void unlock (void   ) 
    +
    +
    + +

    +Enable interrupts +

    +Definition at line 57 of file interrupt.c. +

    +References __asm__(). +

    +Referenced by initSensor(), initTimer(), and main(). +

    +Here is the call graph for this function:

    + + + + +
    +

    +


    Generated on Fri Jun 8 08:51:58 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h_987ce601d6d4c8eedd68b58db3b7811a_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h_987ce601d6d4c8eedd68b58db3b7811a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 121,6 199,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h_987ce601d6d4c8eedd68b58db3b7811a_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h_987ce601d6d4c8eedd68b58db3b7811a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +bce8a070d492f2ba5c15136a594a9cb4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h_987ce601d6d4c8eedd68b58db3b7811a_cgraph.png Binary file doc/doxygen/html/interrupt_8h_987ce601d6d4c8eedd68b58db3b7811a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $appli_8c.html 247,6 516,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +5ba9cfe83136b8950f5980b5f0242ce2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h__dep__incl.png Binary file doc/doxygen/html/interrupt_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 105,6 183,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupt_8h_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0bb02f7b239c3501a05674aaa9b2b555 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupt_8h_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.png Binary file doc/doxygen/html/interrupt_8h_eb99ff49b4a6d5157416f9b5bd0d9c2c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupts_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupts_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,86 @@ + + +CanFestival: include/hcs12/board/arch/interrupts.h Source File + + + + + + + +

    interrupts.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 /* Interrupt Vectors -- ROM mode
    +00023    Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    +00024    Written by Stephane Carrez (stcarrez@worldnet.fr)    
    +00025 
    +00026 This file is free software; you can redistribute it and/or modify it
    +00027 under the terms of the GNU General Public License as published by the
    +00028 Free Software Foundation; either version 2, or (at your option) any
    +00029 later version.
    +00030 
    +00031 In addition to the permissions in the GNU General Public License, the
    +00032 Free Software Foundation gives you unlimited permission to link the
    +00033 compiled version of this file with other programs, and to distribute
    +00034 those programs without any restriction coming from the use of this
    +00035 file.  (The General Public License restrictions do apply in other
    +00036 respects; for example, they cover modification of the file, and
    +00037 distribution when not linked into another program.)
    +00038 
    +00039 This file is distributed in the hope that it will be useful, but
    +00040 WITHOUT ANY WARRANTY; without even the implied warranty of
    +00041 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00042 General Public License for more details.
    +00043 
    +00044 You should have received a copy of the GNU General Public License
    +00045 along with this program; see the file COPYING.  If not, write to
    +00046 the Free Software Foundation, 59 Temple Place - Suite 330,
    +00047 Boston, MA 02111-1307, USA.  */
    +00048 
    +00049 #ifndef _M68HC11_ARCH_32K_INTERRUPTS_H
    +00050 #define _M68HC11_ARCH_32K_INTERRUPTS_H
    +00051 
    +00052 /* For ROM-boards, interrupts are in ROM and are not installed
    +00053    at run time.  Implementation is empty.  */
    +00054 extern inline void
    +00055 set_interrupt_handler (interrupt_vector_id id ATTRIBUTE_UNUSED,
    +00056                        interrupt_t handler ATTRIBUTE_UNUSED)
    +00057 {
    +00058 }
    +00059 
    +00060 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/interrupts_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/interrupts_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,66 @@ + + +CanFestival: include/hcs12/board/arch/interrupts.h File Reference + + + + + + + +

    interrupts.h File Reference

    +

    +Go to the source code of this file. + + + + +

    Functions

    void set_interrupt_handler (interrupt_vector_id id ATTRIBUTE_UNUSED, interrupt_t handler ATTRIBUTE_UNUSED)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void set_interrupt_handler (interrupt_vector_id id  ATTRIBUTE_UNUSED,
    interrupt_t handler  ATTRIBUTE_UNUSED 
    ) [inline]
    +
    +
    + +

    + +

    +Definition at line 55 of file interrupts.h. +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c-source.html --- a/doc/doxygen/html/lifegrd_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/lifegrd.c Source File +CanFestival: src/lifegrd.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/lifegrd.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    lifegrd.c

    Go to the documentation of this file.
    00001 /*
     00002   This file is part of CanFestival, a library implementing CanOpen
     00003   Stack.
     00004 
    @@ -39,142 +43,164 @@
     00022   USA
     00023 */
     00024 
    -00035 #include <data.h>
    -00036 #include "lifegrd.h"
    -00037 #include "canfestival.h"
    +00035 #include <data.h>
    +00036 #include "lifegrd.h"
    +00037 #include "canfestival.h"
     00038 
     00039 
    -00040 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id);
    +00040 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id);
     00041 
     00042 
    -00043 void ProducerHearbeatAlarm(CO_Data* d, UNS32 id);
    +00043 void ProducerHearbeatAlarm(CO_Data* d, UNS32 id);
     00044 
    -00045 UNS32 OnHearbeatProducerUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex);
    +00045 UNS32 OnHearbeatProducerUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex);
     00046 
    -00055 e_nodeState getNodeState (CO_Data* d, UNS8 nodeId)
    +00055 e_nodeState getNodeState (CO_Data* d, UNS8 nodeId)
     00056 {
    -00057   e_nodeState networkNodeState = d->NMTable[nodeId];
    +00057   e_nodeState networkNodeState = d->NMTable[nodeId];
     00058   return networkNodeState;
     00059 }
     00060 
    -00067 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id)
    +00067 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id)
     00068 {
     00069   /*MSG_WAR(0x00, "ConsumerHearbeatAlarm", 0x00);*/
     00070 
    -00072   (*d->heartbeatError)((UNS8)( ((d->ConsumerHeartbeatEntries[id]) & (UNS32)0x00FF0000) >> (UNS8)16 ));
    +00072   (*d->heartbeatError)((UNS8)( ((d->ConsumerHeartbeatEntries[id]) & (UNS32)0x00FF0000) >> (UNS8)16 ));
     00073 }
     00074 
    -00081 void proceedNODE_GUARD(CO_Data* d, Message* m )
    +00081 void proceedNODE_GUARD(CO_Data* d, Message* m )
     00082 {
    -00083   UNS8 nodeId = (UNS8) GET_NODE_ID((*m));
    +00083   UNS8 nodeId = (UNS8) GET_NODE_ID((*m));
     00084 
    -00085   if((m->rtr == 1) )
    +00085   if((m->rtr == 1) )
     00090     {
    -00097       if (nodeId == *d->bDeviceNodeId )
    +00097       if (nodeId == *d->bDeviceNodeId )
     00098         {
    -00099           Message msg;
    -00100           msg.cob_id.w = *d->bDeviceNodeId + 0x700;
    -00101           msg.len = (UNS8)0x01;
    -00102           msg.rtr = 0;
    -00103           msg.data[0] = d->nodeState;
    -00104           if (d->toggle)
    +00099           Message msg;
    +00100           msg.cob_id.w = *d->bDeviceNodeId + 0x700;
    +00101           msg.len = (UNS8)0x01;
    +00102           msg.rtr = 0;
    +00103           msg.data[0] = d->nodeState;
    +00104           if (d->toggle)
     00105             {
    -00106               msg.data[0] |= 0x80 ;
    -00107               d->toggle = 0 ;
    +00106               msg.data[0] |= 0x80 ;
    +00107               d->toggle = 0 ;
     00108             }
     00109           else
    -00110             d->toggle = 1 ;
    -00112           MSG_WAR(0x3130, "Sending NMT Nodeguard to master, state: ", d->nodeState);
    -00113           canSend(d->canHandle,&msg );
    +00110             d->toggle = 1 ;
    +00111           /* send the nodeguard response. */
    +00112           MSG_WAR(0x3130, "Sending NMT Nodeguard to master, state: ", d->nodeState);
    +00113           canSend(d->canHandle,&msg );
     00114         }
     00115 
    -00116     }else{ 
    -00118       MSG_WAR(0x3110, "Received NMT nodeId : ", nodeId);
    -00121       d->NMTable[nodeId] = (e_nodeState) ((*m).data[0] & 0x7F) ;
    +00116     }else{ /* Not a request CAN */
    +00117 
    +00118       MSG_WAR(0x3110, "Received NMT nodeId : ", nodeId);
    +00119       /* the slave's state receievd is stored in the NMTable */
    +00120       /* The state is stored on 7 bit */
    +00121       d->NMTable[nodeId] = (e_nodeState) ((*m).data[0] & 0x7F) ;
     00122 
    -00124       if ( d->NMTable[nodeId] == Initialisation)
    +00123       /* Boot-Up frame reception */
    +00124       if ( d->NMTable[nodeId] == Initialisation)
     00125         {
    -00135           MSG_WAR(0x3100, "The NMT is a bootup from node : ", nodeId);
    +00126           /*
    +00127           ** The device send the boot-up message (Initialisation)
    +00128           ** to indicate the master that it is entered in
    +00129           ** pre_operational mode
    +00130           ** Because the  device enter automaticaly in pre_operational
    +00131           ** mode,
    +00132           ** the pre_operational mode is stored
    +00133           ** NMTable[bus_id][nodeId] = Pre_operational
    +00134           */
    +00135           MSG_WAR(0x3100, "The NMT is a bootup from node : ", nodeId);
     00136         }
     00137 
    -00138       if( d->NMTable[nodeId] != Unknown_state ) {
    -00139         UNS8 index, ConsummerHeartBeat_nodeId ;
    -00140         for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ )
    +00138       if( d->NMTable[nodeId] != Unknown_state ) {
    +00139         UNS8 index, ConsummerHeartBeat_nodeId ;
    +00140         for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ )
     00141           {
    -00142             ConsummerHeartBeat_nodeId = (UNS8)( ((d->ConsumerHeartbeatEntries[index]) & (UNS32)0x00FF0000) >> (UNS8)16 );
    +00142             ConsummerHeartBeat_nodeId = (UNS8)( ((d->ConsumerHeartbeatEntries[index]) & (UNS32)0x00FF0000) >> (UNS8)16 );
     00143             if ( nodeId == ConsummerHeartBeat_nodeId )
     00144               {
    -00145                 TIMEVAL time = ( (d->ConsumerHeartbeatEntries[index]) & (UNS32)0x0000FFFF ) ;
    +00145                 TIMEVAL time = ( (d->ConsumerHeartbeatEntries[index]) & (UNS32)0x0000FFFF ) ;
     00146                 /* Renew alarm for next heartbeat. */
    -00147                 DelAlarm(d->ConsumerHeartBeatTimers[index]);
    -00148                 d->ConsumerHeartBeatTimers[index] = SetAlarm(d, index, &ConsumerHearbeatAlarm, MS_TO_TIMEVAL(time), 0);
    +00147                 DelAlarm(d->ConsumerHeartBeatTimers[index]);
    +00148                 d->ConsumerHeartBeatTimers[index] = SetAlarm(d, index, &ConsumerHearbeatAlarm, MS_TO_TIMEVAL(time), 0);
     00149               }
     00150           }
     00151       }
     00152     }
     00153 }
     00154 
    -00161 void ProducerHearbeatAlarm(CO_Data* d, UNS32 id)
    +00161 void ProducerHearbeatAlarm(CO_Data* d, UNS32 id)
     00162 {
    -00163   if(*d->ProducerHeartBeatTime)
    +00163   if(*d->ProducerHeartBeatTime)
     00164     {
    -00165       Message msg;
    -00172       msg.cob_id.w = *d->bDeviceNodeId + 0x700;
    -00173       msg.len = (UNS8)0x01;
    -00174       msg.rtr = 0;
    -00175       msg.data[0] = d->nodeState; 
    -00177       MSG_WAR(0x3130, "Producing heartbeat: ", d->nodeState);
    -00178       canSend(d->canHandle,&msg );
    +00165       Message msg;
    +00166       /* Time expired, the heartbeat must be sent immediately
    +00167       ** generate the correct node-id: this is done by the offset 1792
    +00168       ** (decimal) and additionaly
    +00169       ** the node-id of this device.
    +00170       */
    +00171 
    +00172       msg.cob_id.w = *d->bDeviceNodeId + 0x700;
    +00173       msg.len = (UNS8)0x01;
    +00174       msg.rtr = 0;
    +00175       msg.data[0] = d->nodeState; /* No toggle for heartbeat !*/
    +00176       /* send the heartbeat */
    +00177       MSG_WAR(0x3130, "Producing heartbeat: ", d->nodeState);
    +00178       canSend(d->canHandle,&msg );
     00179 
     00180     }else{
    -00181       d->ProducerHeartBeatTimer = DelAlarm(d->ProducerHeartBeatTimer);
    +00181       d->ProducerHeartBeatTimer = DelAlarm(d->ProducerHeartBeatTimer);
     00182     }
     00183 }
     00184 
    -00194 UNS32 OnHeartbeatProducerUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
    +00194 UNS32 OnHeartbeatProducerUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
     00195 {
    -00196   heartbeatStop(d);
    -00197   heartbeatInit(d);
    +00196   heartbeatStop(d);
    +00197   heartbeatInit(d);
     00198   return 0;
     00199 }
     00200 
    -00206 void heartbeatInit(CO_Data* d)
    +00206 void heartbeatInit(CO_Data* d)
     00207 {
     00208 
    -00209   UNS8 index; 
    -00210   RegisterSetODentryCallBack(d, 0x1017, 0x00, &OnHeartbeatProducerUpdate);
    +00209   UNS8 index; /* Index to scan the table of heartbeat consumers */
    +00210   RegisterSetODentryCallBack(d, 0x1017, 0x00, &OnHeartbeatProducerUpdate);
     00211 
    -00212   d->toggle = 0;
    +00212   d->toggle = 0;
     00213 
    -00214   for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ )
    +00214   for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ )
     00215     {
    -00216       TIMEVAL time = (UNS16) ( (d->ConsumerHeartbeatEntries[index]) & (UNS32)0x0000FFFF ) ;
    +00216       TIMEVAL time = (UNS16) ( (d->ConsumerHeartbeatEntries[index]) & (UNS32)0x0000FFFF ) ;
    +00217       /* MSG_WAR(0x3121, "should_time : ", should_time ) ; */
     00218       if ( time )
     00219         {
    -00220           d->ConsumerHeartBeatTimers[index] = SetAlarm(d, index, &ConsumerHearbeatAlarm, MS_TO_TIMEVAL(time), 0);
    +00220           d->ConsumerHeartBeatTimers[index] = SetAlarm(d, index, &ConsumerHearbeatAlarm, MS_TO_TIMEVAL(time), 0);
     00221         }
     00222     }
     00223 
    -00224   if ( *d->ProducerHeartBeatTime )
    +00224   if ( *d->ProducerHeartBeatTime )
     00225     {
    -00226       TIMEVAL time = *d->ProducerHeartBeatTime;
    -00227       d->ProducerHeartBeatTimer = SetAlarm(d, 0, &ProducerHearbeatAlarm, MS_TO_TIMEVAL(time), MS_TO_TIMEVAL(time));
    +00226       TIMEVAL time = *d->ProducerHeartBeatTime;
    +00227       d->ProducerHeartBeatTimer = SetAlarm(d, 0, &ProducerHearbeatAlarm, MS_TO_TIMEVAL(time), MS_TO_TIMEVAL(time));
     00228     }
     00229 }
     00230 
    -00236 void heartbeatStop(CO_Data* d)
    +00236 void heartbeatStop(CO_Data* d)
     00237 {
    -00238   UNS8 index;
    -00239   for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ )
    +00238   UNS8 index;
    +00239   for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ )
     00240     {
    -00241       d->ConsumerHeartBeatTimers[index + 1] = DelAlarm(d->ConsumerHeartBeatTimers[index + 1]);;
    +00241       d->ConsumerHeartBeatTimers[index + 1] = DelAlarm(d->ConsumerHeartBeatTimers[index + 1]);;
     00242     }
     00243 
    -00244   d->ProducerHeartBeatTimer = DelAlarm(d->ProducerHeartBeatTimer);;
    +00244   d->ProducerHeartBeatTimer = DelAlarm(d->ProducerHeartBeatTimer);;
     00245 }
     00246 
    -00252 void _heartbeatError(UNS8 heartbeatID){}
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +00252 void _heartbeatError(UNS8 heartbeatID){} +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c.html --- a/doc/doxygen/html/lifegrd_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/lifegrd.c File Reference +CanFestival: src/lifegrd.c File Reference @@ -8,39 +8,62 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/lifegrd.c File Reference

    #include <data.h>
    -#include "lifegrd.h"
    -#include "canfestival.h"
    - -

    -Include dependency graph for lifegrd.c:

    + +

    lifegrd.c File Reference

    #include <data.h>
    +#include "lifegrd.h"
    +#include "canfestival.h"
    + +

    +Include dependency graph for lifegrd.c:

    + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -85,7 +108,7 @@ - + @@ -117,6 +140,8 @@

    Definition at line 67 of file lifegrd.c.

    +References struct_CO_Data::ConsumerHeartbeatEntries, struct_s_timer_entry::d, struct_CO_Data::heartbeatError, UNS32, and UNS8. +

    Referenced by heartbeatInit(), and proceedNODE_GUARD().

    @@ -125,9 +150,9 @@


    Functions

    void ConsumerHearbeatAlarm (CO_Data *d, UNS32 id)
    void ProducerHearbeatAlarm (CO_Data *d, UNS32 id)
    UNS32 OnHearbeatProducerUpdate (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
    e_nodeState getNodeState (CO_Data *d, UNS8 nodeId)
    void proceedNODE_GUARD (CO_Data *d, Message *m)
    UNS32 OnHeartbeatProducerUpdate (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
    void heartbeatInit (CO_Data *d)
    void heartbeatStop (CO_Data *d)
    void ConsumerHearbeatAlarm (CO_Data *d, UNS32 id)
    void ProducerHearbeatAlarm (CO_Data *d, UNS32 id)
    UNS32 OnHearbeatProducerUpdate (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
    e_nodeState getNodeState (CO_Data *d, UNS8 nodeId)
    void proceedNODE_GUARD (CO_Data *d, Message *m)
    UNS32 OnHeartbeatProducerUpdate (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
    void heartbeatInit (CO_Data *d)
    void heartbeatStop (CO_Data *d)
    void _heartbeatError (UNS8 heartbeatID)
    void ConsumerHearbeatAlarm (CO_Data * CO_Data d,
    - - - + + + @@ -156,6 +181,10 @@

    Definition at line 55 of file lifegrd.c. +

    +References struct_s_timer_entry::d, and struct_CO_Data::NMTable. +

    +Referenced by GetChangeStateResults().

    @@ -165,7 +194,7 @@

    - + @@ -182,25 +211,24 @@

    -Index to scan the table of heartbeat consumers

    -MSG_WAR(0x3121, "should_time : ", should_time ) ; -

    Definition at line 206 of file lifegrd.c.

    -References ConsumerHearbeatAlarm(), OnHeartbeatProducerUpdate(), ProducerHearbeatAlarm(), RegisterSetODentryCallBack(), and SetAlarm(). +References ConsumerHearbeatAlarm(), struct_CO_Data::ConsumerHeartbeatCount, struct_CO_Data::ConsumerHeartbeatEntries, struct_CO_Data::ConsumerHeartBeatTimers, struct_s_timer_entry::d, MS_TO_TIMEVAL, OnHeartbeatProducerUpdate(), ProducerHearbeatAlarm(), struct_CO_Data::ProducerHeartBeatTime, struct_CO_Data::ProducerHeartBeatTimer, RegisterSetODentryCallBack(), SetAlarm(), TIMEVAL, struct_CO_Data::toggle, UNS16, UNS32, and UNS8.

    Referenced by OnHeartbeatProducerUpdate(), and switchCommunicationState().

    Here is the call graph for this function:

    - - - - - - - - + + + + + + + + + + @@ -212,7 +240,7 @@ - + @@ -231,7 +259,7 @@

    Definition at line 236 of file lifegrd.c.

    -References DelAlarm(). +References struct_CO_Data::ConsumerHeartbeatCount, struct_CO_Data::ConsumerHeartBeatTimers, struct_s_timer_entry::d, DelAlarm(), struct_CO_Data::ProducerHeartBeatTimer, and UNS8.

    Referenced by OnHeartbeatProducerUpdate(), and switchCommunicationState().

    @@ -249,13 +277,13 @@

    - - - - - - - + + + + + + + @@ -284,13 +312,13 @@ - - - - - - - + + + + + + + @@ -322,20 +350,22 @@

    Definition at line 194 of file lifegrd.c.

    -References heartbeatInit(), and heartbeatStop(). +References struct_s_timer_entry::d, heartbeatInit(), and heartbeatStop().

    Referenced by heartbeatInit().

    Here is the call graph for this function:

    - - - + + + - - - - + + + + + + @@ -347,13 +377,13 @@ - - - - - - - + + + + + + + @@ -375,25 +405,21 @@

    Notice that only the master can have sent this node guarding request

    -Receiving a NMT NodeGuarding (request of the state by the master) Only answer to the NMT NodeGuarding request, the master is not checked (not implemented)

    -send the nodeguard response.

    -Not a request CAN

    -the slave's state receievd is stored in the NMTable

    -The state is stored on 7 bit

    -Boot-Up frame reception

    -The device send the boot-up message (Initialisation) to indicate the master that it is entered in pre_operational mode Because the device enter automaticaly in pre_operational mode, the pre_operational mode is stored NMTable[bus_id][nodeId] = Pre_operational +Receiving a NMT NodeGuarding (request of the state by the master) Only answer to the NMT NodeGuarding request, the master is not checked (not implemented)

    Definition at line 81 of file lifegrd.c.

    -References ConsumerHearbeatAlarm(), DelAlarm(), and SetAlarm(). +References struct_CO_Data::bDeviceNodeId, struct_CO_Data::canHandle, canSend(), Message::cob_id, ConsumerHearbeatAlarm(), struct_CO_Data::ConsumerHeartbeatCount, struct_CO_Data::ConsumerHeartbeatEntries, struct_CO_Data::ConsumerHeartBeatTimers, struct_s_timer_entry::d, Message::data, DelAlarm(), GET_NODE_ID, Initialisation, Message::len, MS_TO_TIMEVAL, MSG_WAR, struct_CO_Data::NMTable, struct_CO_Data::nodeState, Message::rtr, SetAlarm(), TIMEVAL, struct_CO_Data::toggle, Unknown_state, UNS32, UNS8, and SHORT_CAN::w.

    Referenced by canDispatch().

    Here is the call graph for this function:

    - - - + + + + + @@ -405,7 +431,7 @@ - + @@ -433,24 +459,22 @@

    -Time expired, the heartbeat must be sent immediately generate the correct node-id: this is done by the offset 1792 (decimal) and additionaly the node-id of this device.

    -No toggle for heartbeat !

    -send the heartbeat -

    Definition at line 161 of file lifegrd.c.

    -References DelAlarm(). +References struct_CO_Data::bDeviceNodeId, struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::data, DelAlarm(), Message::len, MSG_WAR, struct_CO_Data::nodeState, struct_CO_Data::ProducerHeartBeatTime, struct_CO_Data::ProducerHeartBeatTimer, Message::rtr, UNS8, and SHORT_CAN::w.

    Referenced by heartbeatInit().

    Here is the call graph for this function:

    - - - - -

    -


    Generated on Tue Jun 5 18:32:06 2007 for CanFestival by  + + + + + + +

    +


    Generated on Fri Jun 8 08:52:10 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.map --- a/doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,9 +1,11 @@ base referer -rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 278,101 387,125 -rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 274,173 391,197 -rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 451,101 643,125 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 277,101 387,125 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 273,173 391,197 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 451,53 643,77 rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 455,149 639,173 -rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 440,5 654,29 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 506,53 588,77 -rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 716,175 799,199 -rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 702,5 814,29 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 440,101 653,125 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 505,5 588,29 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 717,149 797,173 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 716,199 799,223 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 863,149 993,173 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 701,101 813,125 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.md5 --- a/doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -2b3c7ebfc64fc7b75292577ffe4978e2 \ No newline at end of file +4376757a5c8cf4f6f209bce50c18e031 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.png Binary file doc/doxygen/html/lifegrd_8c_098c81fb9326fb2c7b43e88a55ce1368_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.map --- a/doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,2 +1,4 @@ base referer -rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 239,6 321,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 240,6 320,30 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 239,54 321,78 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 372,6 503,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.md5 --- a/doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -4d6048bd1f17e2d6bad54223d262ce03 \ No newline at end of file +12eda91242bca20b61ab9a6ee7f70b9d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.png Binary file doc/doxygen/html/lifegrd_8c_626b7d9e527a898682d9122f91454de9_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.map --- a/doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,9 +1,11 @@ base referer -rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 176,5 368,29 -rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 164,53 380,77 -rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 429,103 613,127 -rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 165,152 379,176 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 231,200 313,224 -rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 463,55 580,79 -rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 663,79 745,103 -rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 465,152 577,176 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 176,6 368,30 +rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 164,54 380,78 +rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 180,102 364,126 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 165,150 379,174 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 231,198 313,222 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 431,28 548,52 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 623,54 705,78 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 449,127 529,151 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 599,127 729,151 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 433,175 545,199 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.md5 --- a/doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -d2e02c59cc784556cef68d60f6bb42e3 \ No newline at end of file +c1d858a2e3a4f40c2c0f698be913fd5c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.png Binary file doc/doxygen/html/lifegrd_8c_8896f6846e4d020390f6953f3d98aa21_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c__incl.map --- a/doc/doxygen/html/lifegrd_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $data_8h.html 332,275 396,299 +rect $lifegrd_8h.html 479,494 556,518 +rect $win32_2canfestival_8h.html 156,567 263,591 +rect $win32_2applicfg_8h.html 741,440 829,464 +rect $def_8h.html 625,31 681,55 +rect $can_8h.html 488,542 547,566 +rect $objdictdef_8h.html 467,299 568,323 +rect $objacces_8h.html 471,203 564,227 +rect $sdo_8h.html 488,446 547,470 +rect $pdo_8h.html 488,104 547,128 +rect $states_8h.html 480,251 555,275 +rect $sync_8h.html 484,347 551,371 +rect $nmtMaster_8h.html 464,56 571,80 +rect $config_8h.html 748,31 823,55 +rect $timer_8h.html 619,440 688,464 +rect $win32_2timerscfg_8h.html 736,564 835,588 +rect $can__driver_8h.html 312,567 416,591 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c__incl.md5 --- a/doc/doxygen/html/lifegrd_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -0c582288fb66b790ccc6cc49bad880a8 \ No newline at end of file +d580376f287aa345e409fd830286e01c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c__incl.png Binary file doc/doxygen/html/lifegrd_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.map --- a/doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,4 +1,6 @@ base referer -rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 228,6 420,30 -rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 283,54 366,78 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 283,102 366,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 284,6 364,30 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 228,54 420,78 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 283,102 365,126 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 283,150 365,174 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 471,6 601,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.md5 --- a/doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -de951182784b9983a00dfa59251e8aac \ No newline at end of file +7afe82f9cc2a36e61e612c1cd09bbcb8 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.png Binary file doc/doxygen/html/lifegrd_8c_b3248945e06e8b05518beddf665f174d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,73 @@ + + +CanFestival: include/lifegrd.h Source File + + + + + + + +

    lifegrd.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __lifegrd_h__
    +00024 #define __lifegrd_h__
    +00025 
    +00026 
    +00027 #include <applicfg.h>
    +00028 
    +00029 typedef void (*heartbeatError_t)(UNS8);
    +00030 void _heartbeatError(UNS8 heartbeatID);
    +00031 
    +00032 #include "data.h"
    +00033 
    +00034 /*************************************************************************
    +00035  * Functions
    +00036  *************************************************************************/
    +00037 
    +00038 
    +00043 e_nodeState getNodeState (CO_Data* d, UNS8 nodeId);
    +00044 
    +00049 void heartbeatInit(CO_Data* d);
    +00050 
    +00053 void heartbeatStop(CO_Data* d);
    +00054 
    +00061 void proceedNODE_GUARD (CO_Data* d, Message* m);
    +00062 
    +00063 #endif /*__lifegrd_h__ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,314 @@ + + +CanFestival: include/lifegrd.h File Reference + + + + + + + +

    lifegrd.h File Reference

    #include <applicfg.h>
    +#include "data.h"
    + +

    +Include dependency graph for lifegrd.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file.

    e_nodeState getNodeState (CO_Data * e_nodeState getNodeState (CO_Data d,
    void heartbeatInit (CO_Data * CO_Data d  ) 
    void heartbeatStop (CO_Data * CO_Data d  ) 
    UNS32 OnHearbeatProducerUpdate (CO_Data *  d,
    const indextable * CO_Data d,
    const indextable unsused_indextable,
    UNS32 OnHeartbeatProducerUpdate (CO_Data *  d,
    const indextable * CO_Data d,
    const indextable unsused_indextable,
    void proceedNODE_GUARD (CO_Data *  d,
    Message * CO_Data d,
    Message m 
    void ProducerHearbeatAlarm (CO_Data * CO_Data d,
    + + + + + + + + + + + + + + + +

    Typedefs

    typedef void(*) heartbeatError_t (UNS8)

    Functions

    void _heartbeatError (UNS8 heartbeatID)
    e_nodeState getNodeState (CO_Data *d, UNS8 nodeId)
    void heartbeatInit (CO_Data *d)
    void heartbeatStop (CO_Data *d)
    void proceedNODE_GUARD (CO_Data *d, Message *m)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef void(*) heartbeatError_t(UNS8)
    +
    +
    + +

    + +

    +Definition at line 29 of file lifegrd.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void _heartbeatError (UNS8  heartbeatID  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    heartbeatID 
    +
    + +

    +Definition at line 252 of file lifegrd.c. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    e_nodeState getNodeState (CO_Data d,
    UNS8  nodeId 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    nodeId 
    +
    +
    Returns:
    + +

    +Definition at line 55 of file lifegrd.c. +

    +References struct_s_timer_entry::d, and struct_CO_Data::NMTable. +

    +Referenced by GetChangeStateResults(). +

    +

    + +

    + +

    +
    + + + + + + + + + +
    void heartbeatStop (CO_Data d  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    d 
    +
    + +

    +Definition at line 236 of file lifegrd.c. +

    +References struct_CO_Data::ConsumerHeartbeatCount, struct_CO_Data::ConsumerHeartBeatTimers, struct_s_timer_entry::d, DelAlarm(), struct_CO_Data::ProducerHeartBeatTimer, and UNS8. +

    +Referenced by OnHeartbeatProducerUpdate(), and switchCommunicationState(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    void proceedNODE_GUARD (CO_Data d,
    Message m 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    m 
    +
    + +

    +Notice that only the master can have sent this node guarding request

    +Receiving a NMT NodeGuarding (request of the state by the master) Only answer to the NMT NodeGuarding request, the master is not checked (not implemented) +

    +Definition at line 81 of file lifegrd.c. +

    +References struct_CO_Data::bDeviceNodeId, struct_CO_Data::canHandle, canSend(), Message::cob_id, ConsumerHearbeatAlarm(), struct_CO_Data::ConsumerHeartbeatCount, struct_CO_Data::ConsumerHeartbeatEntries, struct_CO_Data::ConsumerHeartBeatTimers, struct_s_timer_entry::d, Message::data, DelAlarm(), GET_NODE_ID, Initialisation, Message::len, MS_TO_TIMEVAL, MSG_WAR, struct_CO_Data::NMTable, struct_CO_Data::nodeState, Message::rtr, SetAlarm(), TIMEVAL, struct_CO_Data::toggle, Unknown_state, UNS32, UNS8, and SHORT_CAN::w. +

    +Referenced by canDispatch(). +

    +Here is the call graph for this function:

    + + + + + + + + +
    +

    +


    Generated on Fri Jun 8 08:51:59 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_1b73047269c2a02065e12af18c6053c7_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h_1b73047269c2a02065e12af18c6053c7_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 175,6 257,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_1b73047269c2a02065e12af18c6053c7_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h_1b73047269c2a02065e12af18c6053c7_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +afa1c03f73fda8fb59b9a8f1ad92e4d3 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_1b73047269c2a02065e12af18c6053c7_cgraph.png Binary file doc/doxygen/html/lifegrd_8h_1b73047269c2a02065e12af18c6053c7_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_8896f6846e4d020390f6953f3d98aa21_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h_8896f6846e4d020390f6953f3d98aa21_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 608,107 800,131 +rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 164,155 380,179 +rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 612,155 796,179 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 597,204 811,228 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 663,253 745,277 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 435,155 544,179 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 431,107 548,131 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 875,155 955,179 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 873,83 956,107 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 859,204 971,228 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_8896f6846e4d020390f6953f3d98aa21_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h_8896f6846e4d020390f6953f3d98aa21_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +c49f746d3797fbdc53fb5103bdb5b86f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_8896f6846e4d020390f6953f3d98aa21_cgraph.png Binary file doc/doxygen/html/lifegrd_8h_8896f6846e4d020390f6953f3d98aa21_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,19 @@ +base referer +rect $lifegrd_8c.html 744,228 846,252 +rect $data_8h.html 188,475 306,499 +rect $sync_8c.html 751,303 839,327 +rect $unix_8c.html 722,364 868,388 +rect $objdict_8h.html 372,427 655,451 +rect $TestMasterSlave_2TestMaster_8h.html 370,475 658,499 +rect $TestSlave_8h.html 372,523 655,547 +rect $TestMasterMicroMod_2TestMaster_8h.html 355,571 672,595 +rect $win32test_8h.html 394,619 634,643 +rect $objacces_8h.html 440,667 587,691 +rect $nmtMaster_8h.html 434,715 594,739 +rect $nmtSlave_8h.html 438,763 590,787 +rect $timer_8h.html 452,886 575,910 +rect $sdo_8h.html 739,824 851,848 +rect $pdo_8h.html 456,83 571,107 +rect $states_8h.html 450,131 578,155 +rect $unix_2canfestival_8h.html 416,179 611,203 +rect $win32_2canfestival_8h.html 410,278 618,302 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +17e4192c638dfb485ce1af326cfb5356 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h__dep__incl.png Binary file doc/doxygen/html/lifegrd_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $win32_2applicfg_8h.html 579,323 667,347 +rect $data_8h.html 188,299 252,323 +rect $def_8h.html 463,448 519,472 +rect $can_8h.html 462,127 520,151 +rect $objdictdef_8h.html 304,107 406,131 +rect $objacces_8h.html 308,251 402,275 +rect $sdo_8h.html 326,496 384,520 +rect $pdo_8h.html 326,397 384,421 +rect $states_8h.html 318,299 392,323 +rect $sync_8h.html 322,155 388,179 +rect $nmtMaster_8h.html 302,203 408,227 +rect $config_8h.html 586,448 660,472 +rect $timer_8h.html 456,496 526,520 +rect $win32_2timerscfg_8h.html 574,496 672,520 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +dd7403c4449ef6a56673ce6485efdb22 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h__incl.png Binary file doc/doxygen/html/lifegrd_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_b3248945e06e8b05518beddf665f174d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h_b3248945e06e8b05518beddf665f174d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 284,6 364,30 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 228,54 420,78 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 283,102 365,126 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 283,150 365,174 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 471,6 601,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_b3248945e06e8b05518beddf665f174d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lifegrd_8h_b3248945e06e8b05518beddf665f174d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7afe82f9cc2a36e61e612c1cd09bbcb8 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lifegrd_8h_b3248945e06e8b05518beddf665f174d_cgraph.png Binary file doc/doxygen/html/lifegrd_8h_b3248945e06e8b05518beddf665f174d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lincan_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,102 @@ + + +CanFestival: drivers/can_lincan/lincan.h Source File + + + + + + + +

    lincan.h

    Go to the documentation of this file.
    00001 /* can.h
    +00002  * Header file for the Linux CAN-bus driver.
    +00003  * Written by Arnaud Westenberg email:arnaud@wanadoo.nl
    +00004  * Rewritten for new CAN queues by Pavel Pisa - OCERA team member
    +00005  * email:pisa@cmp.felk.cvut.cz
    +00006  * This software is released under the GPL-License.
    +00007  * Version lincan-0.3  17 Jun 2004
    +00008  */
    +00009 
    +00010 #ifndef _CAN_DRVAPI_T_H
    +00011 #define _CAN_DRVAPI_T_H
    +00012 
    +00013 #ifdef __KERNEL__
    +00014 
    +00015 #include <linux/time.h>
    +00016 #include <linux/types.h>
    +00017 #include <linux/ioctl.h>
    +00018 
    +00019 #else /* __KERNEL__ */
    +00020 
    +00021 #include <sys/time.h>
    +00022 #include <sys/types.h>
    +00023 #include <sys/ioctl.h>
    +00024 
    +00025 #endif /* __KERNEL__ */
    +00026 
    +00027 #include "./canmsg.h"
    +00028 
    +00029 #ifdef __cplusplus
    +00030 extern "C" {
    +00031 #endif
    +00032 
    +00033 /* CAN ioctl magic number */
    +00034 #define CAN_IOC_MAGIC 'd'
    +00035 
    +00036 typedef unsigned long bittiming_t;
    +00037 typedef unsigned short channel_t;
    +00038 
    +00049 struct can_baudparams_t {
    +00050         long flags;
    +00051         long baudrate;
    +00052         long sjw;
    +00053         long sample_pt;
    +00054 };
    +00055 
    +00056 /* CAN ioctl functions */
    +00057 #define CAN_DRV_QUERY _IO(CAN_IOC_MAGIC, 0)
    +00058 #define CAN_DRV_QRY_BRANCH    0 /* returns driver branch value - "LINC" for LinCAN driver */
    +00059 #define CAN_DRV_QRY_VERSION   1 /* returns driver version as (major<<16) | (minor<<8) | patch */
    +00060 #define CAN_DRV_QRY_MSGFORMAT 2 /* format of canmsg_t structure */
    +00061 
    +00062 #define CMD_START _IOW(CAN_IOC_MAGIC, 1, channel_t)
    +00063 #define CMD_STOP _IOW(CAN_IOC_MAGIC, 2, channel_t)
    +00064 //#define CMD_RESET 3
    +00065 
    +00066 #define CONF_BAUD _IOW(CAN_IOC_MAGIC, 4, bittiming_t)
    +00067 //#define CONF_ACCM
    +00068 //#define CONF_XTDACCM
    +00069 //#define CONF_TIMING
    +00070 //#define CONF_OMODE
    +00071 #define CONF_FILTER _IOW(CAN_IOC_MAGIC, 8, unsigned char)
    +00072 
    +00073 //#define CONF_FENABLE
    +00074 //#define CONF_FDISABLE
    +00075 
    +00076 #define STAT _IO(CAN_IOC_MAGIC, 9)
    +00077 #define CANQUE_FILTER _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
    +00078 #define CANQUE_FLUSH  _IO(CAN_IOC_MAGIC, 11)
    +00079 #define CONF_BAUDPARAMS  _IOW(CAN_IOC_MAGIC, 11, struct can_baudparams_t)
    +00080 #define CANRTR_READ  _IOWR(CAN_IOC_MAGIC, 12, struct canmsg_t)
    +00081 
    +00082 #ifdef __cplusplus
    +00083 } /* extern "C"*/
    +00084 #endif
    +00085 
    +00086 #endif /*_CAN_DRVAPI_T_H*/
    +

    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lincan_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,358 @@ + + +CanFestival: drivers/can_lincan/lincan.h File Reference + + + + + + + +

    lincan.h File Reference

    #include <sys/time.h>
    +#include <sys/types.h>
    +#include <sys/ioctl.h>
    +#include "./canmsg.h"
    + +

    +Include dependency graph for lincan.h:

    + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  can_baudparams_t

    Defines

    #define CAN_IOC_MAGIC   'd'
    #define CAN_DRV_QUERY   _IO(CAN_IOC_MAGIC, 0)
    #define CAN_DRV_QRY_BRANCH   0
    #define CAN_DRV_QRY_VERSION   1
    #define CAN_DRV_QRY_MSGFORMAT   2
    #define CMD_START   _IOW(CAN_IOC_MAGIC, 1, channel_t)
    #define CMD_STOP   _IOW(CAN_IOC_MAGIC, 2, channel_t)
    #define CONF_BAUD   _IOW(CAN_IOC_MAGIC, 4, bittiming_t)
    #define CONF_FILTER   _IOW(CAN_IOC_MAGIC, 8, unsigned char)
    #define STAT   _IO(CAN_IOC_MAGIC, 9)
    #define CANQUE_FILTER   _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
    #define CANQUE_FLUSH   _IO(CAN_IOC_MAGIC, 11)
    #define CONF_BAUDPARAMS   _IOW(CAN_IOC_MAGIC, 11, struct can_baudparams_t)
    #define CANRTR_READ   _IOWR(CAN_IOC_MAGIC, 12, struct canmsg_t)

    Typedefs

    typedef unsigned long bittiming_t
    typedef unsigned short channel_t
    +


    Define Documentation

    + +
    +
    + + + + +
    #define CAN_DRV_QRY_BRANCH   0
    +
    +
    + +

    + +

    +Definition at line 58 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CAN_DRV_QRY_MSGFORMAT   2
    +
    +
    + +

    + +

    +Definition at line 60 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CAN_DRV_QRY_VERSION   1
    +
    +
    + +

    + +

    +Definition at line 59 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CAN_DRV_QUERY   _IO(CAN_IOC_MAGIC, 0)
    +
    +
    + +

    + +

    +Definition at line 57 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CAN_IOC_MAGIC   'd'
    +
    +
    + +

    + +

    +Definition at line 34 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CANQUE_FILTER   _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
    +
    +
    + +

    + +

    +Definition at line 77 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CANQUE_FLUSH   _IO(CAN_IOC_MAGIC, 11)
    +
    +
    + +

    + +

    +Definition at line 78 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CANRTR_READ   _IOWR(CAN_IOC_MAGIC, 12, struct canmsg_t)
    +
    +
    + +

    + +

    +Definition at line 80 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CMD_START   _IOW(CAN_IOC_MAGIC, 1, channel_t)
    +
    +
    + +

    + +

    +Definition at line 62 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CMD_STOP   _IOW(CAN_IOC_MAGIC, 2, channel_t)
    +
    +
    + +

    + +

    +Definition at line 63 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CONF_BAUD   _IOW(CAN_IOC_MAGIC, 4, bittiming_t)
    +
    +
    + +

    + +

    +Definition at line 66 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CONF_BAUDPARAMS   _IOW(CAN_IOC_MAGIC, 11, struct can_baudparams_t)
    +
    +
    + +

    + +

    +Definition at line 79 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define CONF_FILTER   _IOW(CAN_IOC_MAGIC, 8, unsigned char)
    +
    +
    + +

    + +

    +Definition at line 71 of file lincan.h. +

    +

    + +

    +
    + + + + +
    #define STAT   _IO(CAN_IOC_MAGIC, 9)
    +
    +
    + +

    + +

    +Definition at line 76 of file lincan.h. +

    +

    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef unsigned long bittiming_t
    +
    +
    + +

    + +

    +Definition at line 36 of file lincan.h. +

    +

    + +

    +
    + + + + +
    typedef unsigned short channel_t
    +
    +
    + +

    + +

    +Definition at line 37 of file lincan.h. +

    +

    +


    Generated on Fri Jun 8 08:51:40 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lincan_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $can__lincan_8c.html 257,6 489,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lincan_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +15e79039130c5970aaab300e2cdd60af \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h__dep__incl.png Binary file doc/doxygen/html/lincan_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lincan_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canmsg_8h.html 258,56 354,80 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/lincan_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d8e76333603bf019f5ca63e701d76922 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/lincan_8h__incl.png Binary file doc/doxygen/html/lincan_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main.html --- a/doc/doxygen/html/main.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/main.html Fri Jun 08 09:23:56 2007 +0200 @@ -8,11 +8,13 @@

    CanFestival Documentation

    -

    3


    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    3


    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,229 @@ + + +CanFestival: examples/win32test/main.c Source File + + + + + + + +

    main.c

    Go to the documentation of this file.
    00001 /**************************************************************************
    +00002 CanFestival3 win32 port example
    +00003 
    +00004 This sample demonstrates CanFestival usage with Win32
    +00005 
    +00006 Program implements master node. It starts CANOpen slave node, modifies OD, 
    +00007 performs SDO reads and prints some slave node information.
    +00008 
    +00009 Usage:
    +00010 
    +00011     win32test <node_id>
    +00012 
    +00013   where node_id is node ID in decimal format
    +00014 
    +00015 You should have CanFestival-3.dll CAN-uVCCM.dll in the search path to run this sample.
    +00016 Code will work with non-UNICODE CanFestival-3.dll CAN-uVCCM.dll libraries.
    +00017 
    +00018 Sample can work on other platdorms as well.
    +00019 
    +00020 Copyright (C) 2007  Leonid Tochinski (ltochinski AT chattenassociates DOT com)
    +00021 ***************************************************************************/
    +00022 
    +00023 #include <stdio.h>
    +00024 #include <stdlib.h> 
    +00025 #include "win32test.h"
    +00026 #include "canfestival.h"
    +00027 
    +00028 #ifdef WIN32
    +00029 #define sleep_proc(ms) Sleep(ms)
    +00030 #define uptime_ms_proc() GetTickCount()
    +00031 #else
    +00032 #include <time.h> 
    +00033 #define sleep_proc(ms)
    +00034 #define uptime_ms_proc (1000*(time()%86400))  // TOD
    +00035 #endif
    +00036 
    +00037 UNS8 GetChangeStateResults(UNS8 node_id, UNS8 expected_state, unsigned long timeout_ms)
    +00038    {
    +00039    unsigned long start_time = 0;
    +00040    
    +00041    // reset nodes state
    +00042    win32test_Data.NMTable[node_id] = Unknown_state;
    +00043 
    +00044    // request node state
    +00045    masterRequestNodeState(&win32test_Data, node_id);
    +00046    
    +00047    start_time = uptime_ms_proc();
    +00048    while(uptime_ms_proc() - start_time < timeout_ms)
    +00049       {
    +00050       if (getNodeState(&win32test_Data, node_id) == expected_state)
    +00051          return 0;
    +00052       sleep_proc(1);   
    +00053       }
    +00054    return 0xFF;
    +00055    }
    +00056 
    +00057 UNS8 ReadSDO(UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, void* data, UNS8* size)
    +00058    {
    +00059    UNS32 abortCode = 0;
    +00060    UNS8 res = SDO_UPLOAD_IN_PROGRESS;
    +00061    // Read SDO
    +00062    UNS8 err = readNetworkDict (&win32test_Data, nodeId, index, subIndex, dataType);
    +00063    if (err)
    +00064       return 0xFF;
    +00065    for(;;)
    +00066       {
    +00067       res = getReadResultNetworkDict (&win32test_Data, nodeId, data, size, &abortCode);
    +00068       if (res != SDO_UPLOAD_IN_PROGRESS)
    +00069          break;   
    +00070       sleep_proc(1);
    +00071       continue;
    +00072       }
    +00073    closeSDOtransfer(&win32test_Data, nodeId, SDO_CLIENT);
    +00074    if (res == SDO_FINISHED)
    +00075       return 0;
    +00076    return 0xFF;   
    +00077    }
    +00078 
    +00079 int main(int argc, char *argv[])
    +00080   {
    +00081    UNS8 node_id = 0;
    +00082    s_BOARD MasterBoard = {"1", "125K"};
    +00083    char* dll_file_name;
    +00084 
    +00085    /* process command line arguments */
    +00086    if (argc < 2)
    +00087       {
    +00088       printf("USAGE: win32test node_id [dll_file_name]\n");
    +00089       return 1;
    +00090       }
    +00091 
    +00092    node_id = atoi(argv[1]);
    +00093    if (node_id < 2 || node_id > 127)
    +00094       {
    +00095       printf("ERROR: node_id shoule be >=2 and <= 127\n");
    +00096       return 1;
    +00097       }
    +00098 
    +00099       if (argc > 2)
    +00100                 dll_file_name = argv[2];
    +00101           else
    +00102                 dll_file_name = "can_uvccm_win32.dll";
    +00103 
    +00104    // load can driver
    +00105    if (!LoadCanDriver(dll_file_name))
    +00106       {
    +00107       printf("ERROR: could not load diver %s\n", dll_file_name);
    +00108       return 1;
    +00109       }
    +00110    
    +00111    if (canOpen(&MasterBoard,&win32test_Data))
    +00112       {
    +00113       /* Defining the node Id */
    +00114       setNodeId(&win32test_Data, 0x01);
    +00115 
    +00116       /* init */
    +00117       setState(&win32test_Data, Initialisation);
    +00118 
    +00119       /****************************** START *******************************/
    +00120       /* Put the master in operational mode */
    +00121       setState(&win32test_Data, Operational);
    +00122 
    +00123       /* Ask slave node to go in operational mode */
    +00124       masterSendNMTstateChange (&win32test_Data, 0, NMT_Start_Node);
    +00125 
    +00126       printf("\nStarting node %d (%xh) ...\n",(int)node_id,(int)node_id);
    +00127       
    +00128       /* wait untill mode will switch to operational state*/
    +00129       if (GetChangeStateResults(node_id, Operational, 3000) != 0xFF)
    +00130          {
    +00131          /* modify Client SDO 1 Parameter */
    +00132          UNS32 COB_ID_Client_to_Server_Transmit_SDO = 0x600 + node_id;
    +00133          UNS32 COB_ID_Server_to_Client_Receive_SDO  = 0x580 + node_id;
    +00134          UNS32 Node_ID_of_the_SDO_Server = node_id;
    +00135          UNS8 ExpectedSize = sizeof (UNS32);
    +00136 
    +00137          if (OD_SUCCESSFUL ==  writeLocalDict(&win32test_Data, 0x1280, 1, &COB_ID_Client_to_Server_Transmit_SDO, &ExpectedSize, RW) 
    +00138               && OD_SUCCESSFUL ==  writeLocalDict(&win32test_Data, 0x1280, 2, &COB_ID_Server_to_Client_Receive_SDO, &ExpectedSize, RW) 
    +00139               && OD_SUCCESSFUL ==  writeLocalDict(&win32test_Data, 0x1280, 3, &Node_ID_of_the_SDO_Server, &ExpectedSize, RW))
    +00140             {
    +00141             UNS32 dev_type = 0;
    +00142             char device_name[64]="";
    +00143             char hw_ver[64]="";
    +00144             char sw_ver[64]="";   
    +00145             UNS32 vendor_id = 0;            
    +00146             UNS32 prod_code = 0;
    +00147             UNS32 ser_num = 0;
    +00148             UNS8 size;
    +00149             UNS8 res;
    +00150 
    +00151             printf("\nnode_id: %d (%xh) info\n",(int)node_id,(int)node_id);
    +00152             printf("********************************************\n");
    +00153 
    +00154             size = sizeof (dev_type);
    +00155             res = ReadSDO(node_id, 0x1000, 0, uint32, &dev_type, &size);
    +00156             printf("device type: %d\n",dev_type & 0xFFFF);
    +00157            
    +00158             size = sizeof (device_name);
    +00159             res = ReadSDO(node_id, 0x1008, 0, visible_string, device_name, &size);
    +00160             printf("device name: %s\n",device_name);
    +00161 
    +00162             size = sizeof (hw_ver);
    +00163             res = ReadSDO(node_id, 0x1009, 0, visible_string, hw_ver, &size);
    +00164             printf("HW version: %s\n",hw_ver);
    +00165 
    +00166             size = sizeof (sw_ver);
    +00167             res = ReadSDO(node_id, 0x100A, 0, visible_string, sw_ver, &size);
    +00168             printf("SW version: %s\n",sw_ver);            
    +00169             
    +00170             size = sizeof (vendor_id);
    +00171             res = ReadSDO(node_id, 0x1018, 1, uint32, &vendor_id, &size);
    +00172             printf("vendor id: %d\n",vendor_id);
    +00173 
    +00174             size = sizeof (prod_code);
    +00175             res = ReadSDO(node_id, 0x1018, 2, uint32, &prod_code, &size);
    +00176             printf("product code: %d\n",prod_code);
    +00177 
    +00178             size = sizeof (ser_num);
    +00179             res = ReadSDO(node_id, 0x1018, 4, uint32, &ser_num, &size);
    +00180             printf("serial number: %d\n",ser_num);
    +00181             
    +00182             printf("********************************************\n");
    +00183             } 
    +00184          else
    +00185             {
    +00186             printf("ERROR: Object dictionary access failed\n");
    +00187             }
    +00188          }
    +00189       else
    +00190          {
    +00191          printf("ERROR: node_id %d (%xh) is not responding\n",(int)node_id,(int)node_id);
    +00192          }
    +00193          
    +00194       masterSendNMTstateChange (&win32test_Data, 0x02, NMT_Stop_Node);
    +00195 
    +00196       setState(&win32test_Data, Stopped);
    +00197       
    +00198       canClose(&win32test_Data);
    +00199       }
    +00200    return 0;
    +00201   }
    +00202   
    +00203   
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,307 @@ + + +CanFestival: examples/win32test/main.c File Reference + + + + + + + +

    main.c File Reference

    #include <stdio.h>
    +#include <stdlib.h>
    +#include "win32test.h"
    +#include "canfestival.h"
    +#include <time.h>
    + +

    +Include dependency graph for main.c:

    + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + +

    Defines

    #define sleep_proc(ms)
    #define uptime_ms_proc   (1000*(time()%86400))

    Functions

    UNS8 GetChangeStateResults (UNS8 node_id, UNS8 expected_state, unsigned long timeout_ms)
    UNS8 ReadSDO (UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, void *data, UNS8 *size)
    int main (int argc, char *argv[])
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define sleep_proc (ms   ) 
    +
    +
    + +

    + +

    +Definition at line 33 of file main.c. +

    +Referenced by GetChangeStateResults(), and ReadSDO(). +

    +

    + +

    +
    + + + + +
    #define uptime_ms_proc   (1000*(time()%86400))
    +
    +
    + +

    + +

    +Definition at line 34 of file main.c. +

    +Referenced by GetChangeStateResults(). +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 GetChangeStateResults (UNS8  node_id,
    UNS8  expected_state,
    unsigned long  timeout_ms 
    )
    +
    +
    + +

    + +

    +Definition at line 37 of file main.c. +

    +References getNodeState(), masterRequestNodeState(), struct_CO_Data::NMTable, sleep_proc, Unknown_state, uptime_ms_proc, and win32test_Data. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    int main (int  argc,
    char *  argv[] 
    )
    +
    +
    + +

    + +

    +Definition at line 79 of file main.c. +

    +References canClose(), canOpen(), GetChangeStateResults(), Initialisation, LoadCanDriver(), MasterBoard, masterSendNMTstateChange(), NMT_Start_Node, NMT_Stop_Node, OD_SUCCESSFUL, Operational, ReadSDO(), RW, setNodeId(), setState(), Stopped, uint32, UNS32, UNS8, visible_string, win32test_Data, and writeLocalDict(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 ReadSDO (UNS8  nodeId,
    UNS16  index,
    UNS8  subIndex,
    UNS8  dataType,
    void *  data,
    UNS8 *  size 
    )
    +
    +
    + +

    + +

    +Definition at line 57 of file main.c. +

    +References closeSDOtransfer(), getReadResultNetworkDict(), readNetworkDict(), SDO_CLIENT, SDO_FINISHED, SDO_UPLOAD_IN_PROGRESS, sleep_proc, UNS32, UNS8, and win32test_Data. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + + +
    +

    +


    Generated on Fri Jun 8 08:51:54 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_0ddf1224851353fc92bfbff6f499fa97_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c_0ddf1224851353fc92bfbff6f499fa97_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,31 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 160,198 243,222 +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 160,246 243,270 +rect $main_8c.html#b324a2fad227690e3da744b69f7a8119 111,294 292,318 +rect $unix_8c.html#a6eed61fc15f41f772d4645d7a5edeb5 140,488 263,512 +rect $nmtMaster_8c.html#6170d95d9900ef756921a934c5fb37d2 343,227 559,251 +rect $main_8c.html#d4427585d0ce571277ff22b72adce526 159,440 244,464 +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 156,536 247,560 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 163,392 240,416 +rect $objacces_8c.html#7cc58d6e7711bd0d9fd75e8ff721ce36 143,586 260,610 +rect $lifegrd_8c.html#627254070e45c23f1776e12c524492ff 393,179 508,203 +rect $nmtMaster_8c.html#98bee3f402438056dbd653e752054796 353,56 548,80 +rect $nmtMaster_8c.html#f63689baeabb15103c2b7afe8885c5c4 609,6 815,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 896,55 976,79 +rect $sdo_8c.html#555a772d3a88a29c495f33513f8b2d58 643,443 781,467 +rect $sdo_8c.html#05b0c8eee1faee3c7a2f6e2ba3a16533 349,539 552,563 +rect $sdo_8c.html#0e102a0835e4115920cd406e80a8d135 384,491 517,515 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 865,479 1007,503 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 881,419 991,443 +rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 641,491 783,515 +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 395,392 507,416 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 348,275 553,299 +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 639,395 785,419 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 657,299 767,323 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 653,347 771,371 +rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 669,251 755,275 +rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 641,104 783,128 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 668,203 756,227 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 892,179 980,203 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 397,588 504,612 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 628,590 796,614 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c_0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +06962778c4197afedb6d18c4ed4d4446 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_0ddf1224851353fc92bfbff6f499fa97_cgraph.png Binary file doc/doxygen/html/main_8c_0ddf1224851353fc92bfbff6f499fa97_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,17 @@ +base referer +rect $win32test_8h.html 266,348 367,372 +rect $win32_2canfestival_8h.html 263,494 370,518 +rect $data_8h.html 439,299 503,323 +rect $win32_2applicfg_8h.html 731,395 819,419 +rect $def_8h.html 747,83 803,107 +rect $can_8h.html 595,542 654,566 +rect $objdictdef_8h.html 574,347 675,371 +rect $objacces_8h.html 578,155 671,179 +rect $sdo_8h.html 595,443 654,467 +rect $pdo_8h.html 595,107 654,131 +rect $states_8h.html 587,299 662,323 +rect $lifegrd_8h.html 586,395 663,419 +rect $sync_8h.html 591,203 658,227 +rect $nmtMaster_8h.html 571,251 678,275 +rect $win32_2timerscfg_8h.html 726,691 824,715 +rect $can__driver_8h.html 419,542 523,566 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +4eb36f0f19104582d3195149cc89ea87 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c__incl.png Binary file doc/doxygen/html/main_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_b324a2fad227690e3da744b69f7a8119_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c_b324a2fad227690e3da744b69f7a8119_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $lifegrd_8c.html#627254070e45c23f1776e12c524492ff 277,6 392,30 +rect $nmtMaster_8c.html#98bee3f402438056dbd653e752054796 237,54 432,78 +rect $nmtMaster_8c.html#f63689baeabb15103c2b7afe8885c5c4 481,54 687,78 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 737,54 817,78 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 868,54 999,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_b324a2fad227690e3da744b69f7a8119_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c_b324a2fad227690e3da744b69f7a8119_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +354cca6e20f5f28d7205d3fba17d2991 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_b324a2fad227690e3da744b69f7a8119_cgraph.png Binary file doc/doxygen/html/main_8c_b324a2fad227690e3da744b69f7a8119_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_d4427585d0ce571277ff22b72adce526_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c_d4427585d0ce571277ff22b72adce526_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $sdo_8c.html#555a772d3a88a29c495f33513f8b2d58 392,56 531,80 +rect $sdo_8c.html#05b0c8eee1faee3c7a2f6e2ba3a16533 139,7 341,31 +rect $sdo_8c.html#0e102a0835e4115920cd406e80a8d135 173,105 307,129 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 583,8 724,32 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 599,56 708,80 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 775,81 871,105 +rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 391,105 532,129 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 589,155 717,179 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 612,203 695,227 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 783,203 863,227 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_d4427585d0ce571277ff22b72adce526_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/main_8c_d4427585d0ce571277ff22b72adce526_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0b45f7ad6aa042522adfe2fb3c9d94a6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/main_8c_d4427585d0ce571277ff22b72adce526_cgraph.png Binary file doc/doxygen/html/main_8c_d4427585d0ce571277ff22b72adce526_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c-source.html --- a/doc/doxygen/html/nmtMaster_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtMaster_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/nmtMaster.c Source File +CanFestival: src/nmtMaster.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/nmtMaster.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    nmtMaster.c

    Go to the documentation of this file.
    00001 /*
     00002   This file is part of CanFestival, a library implementing CanOpen
     00003   Stack.
     00004 
    @@ -38,52 +42,60 @@
     00021   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
     00022   USA
     00023 */
    -00033 #include "nmtMaster.h"
    -00034 #include "canfestival.h"
    +00033 #include "nmtMaster.h"
    +00034 #include "canfestival.h"
     00035 
    -00045 UNS8 masterSendNMTstateChange(CO_Data* d, UNS8 Node_ID, UNS8 cs)
    +00045 UNS8 masterSendNMTstateChange(CO_Data* d, UNS8 Node_ID, UNS8 cs)
     00046 {
    -00047   Message m;
    +00047   Message m;
     00048 
    -00049   MSG_WAR(0x3501, "Send_NMT cs : ", cs);
    -00050   MSG_WAR(0x3502, "    to node : ", Node_ID);
    -00052   m.cob_id.w = 0x0000; /*(NMT) << 7*/
    -00053   m.rtr = NOT_A_REQUEST;
    -00054   m.len = 2;
    -00055   m.data[0] = cs;
    -00056   m.data[1] = Node_ID;
    +00049   MSG_WAR(0x3501, "Send_NMT cs : ", cs);
    +00050   MSG_WAR(0x3502, "    to node : ", Node_ID);
    +00051   /* message configuration */
    +00052   m.cob_id.w = 0x0000; /*(NMT) << 7*/
    +00053   m.rtr = NOT_A_REQUEST;
    +00054   m.len = 2;
    +00055   m.data[0] = cs;
    +00056   m.data[1] = Node_ID;
     00057 
    -00058   return canSend(d->canHandle,&m);
    +00058   return canSend(d->canHandle,&m);
     00059 }
     00060 
     00061 
    -00070 UNS8 masterSendNMTnodeguard(CO_Data* d, UNS8 nodeId)
    +00070 UNS8 masterSendNMTnodeguard(CO_Data* d, UNS8 nodeId)
     00071 {
    -00072   Message m;
    +00072   Message m;
     00073 
    -00074   MSG_WAR(0x3503, "Send_NODE_GUARD to node : ", nodeId);
    +00074   MSG_WAR(0x3503, "Send_NODE_GUARD to node : ", nodeId);
     00075 
     00076   /* message configuration */
    -00077   m.cob_id.w = nodeId | (NODE_GUARD << 7);
    -00078   m.rtr = REQUEST;
    -00079   m.len = 1;
    +00077   m.cob_id.w = nodeId | (NODE_GUARD << 7);
    +00078   m.rtr = REQUEST;
    +00079   m.len = 1;
     00080 
    -00081   return canSend(d->canHandle,&m);
    +00081   return canSend(d->canHandle,&m);
     00082 }
     00083 
    -00090 void masterRequestNodeState(CO_Data* d, UNS8 nodeId)
    +00090 void masterRequestNodeState(CO_Data* d, UNS8 nodeId)
     00091 {
    -00097   d->NMTable[nodeId] = Unknown_state; 
    -00100   if (nodeId == 0) { 
    -00101     UNS8 i = 0;
    -00102     for (i = 0 ; i < NMT_MAX_NODE_ID ; i++) {
    -00103       d->NMTable[i] = Unknown_state;
    +00092   /* FIXME: should warn for bad toggle bit. */
    +00093 
    +00094   /* NMTable configuration to indicate that the master is waiting
    +00095     for a Node_Guard frame from the slave whose node_id is ID
    +00096   */
    +00097   d->NMTable[nodeId] = Unknown_state; /* A state that does not exist
    +00098                                        */
    +00099 
    +00100   if (nodeId == 0) { /* NMT broadcast */
    +00101     UNS8 i = 0;
    +00102     for (i = 0 ; i < NMT_MAX_NODE_ID ; i++) {
    +00103       d->NMTable[i] = Unknown_state;
     00104     }
     00105   }
    -00106   masterSendNMTnodeguard(d,nodeId);
    +00106   masterSendNMTnodeguard(d,nodeId);
     00107 }
     00108 
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c.html --- a/doc/doxygen/html/nmtMaster_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtMaster_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/nmtMaster.c File Reference +CanFestival: src/nmtMaster.c File Reference @@ -8,28 +8,51 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/nmtMaster.c File Reference

    #include "nmtMaster.h"
    -#include "canfestival.h"
    - -

    -Include dependency graph for nmtMaster.c:

    + +

    nmtMaster.c File Reference

    #include "nmtMaster.h"
    +#include "canfestival.h"
    + +

    +Include dependency graph for nmtMaster.c:

    + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. - - - - - + + + + +

    Functions

    UNS8 masterSendNMTstateChange (CO_Data *d, UNS8 Node_ID, UNS8 cs)
    UNS8 masterSendNMTnodeguard (CO_Data *d, UNS8 nodeId)
    void masterRequestNodeState (CO_Data *d, UNS8 nodeId)
    UNS8 masterSendNMTstateChange (CO_Data *d, UNS8 Node_ID, UNS8 cs)
    UNS8 masterSendNMTnodeguard (CO_Data *d, UNS8 nodeId)
    void masterRequestNodeState (CO_Data *d, UNS8 nodeId)


    Detailed Description

    @@ -45,7 +68,7 @@ void masterRequestNodeState ( - CO_Data *  + CO_Datad, @@ -72,18 +95,17 @@

    -FIXME: should warn for bad toggle bit.

    -NMTable configuration to indicate that the master is waiting for a Node_Guard frame from the slave whose node_id is ID

    -A state that does not exist

    -NMT broadcast -

    Definition at line 90 of file nmtMaster.c.

    -References masterSendNMTnodeguard(). +References struct_s_timer_entry::d, masterSendNMTnodeguard(), NMT_MAX_NODE_ID, struct_CO_Data::NMTable, Unknown_state, and UNS8. +

    +Referenced by GetChangeStateResults().

    Here is the call graph for this function:

    + + @@ -95,7 +117,7 @@ UNS8 masterSendNMTnodeguard ( - CO_Data *  + CO_Datad, @@ -125,7 +147,16 @@

    Definition at line 70 of file nmtMaster.c.

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::len, MSG_WAR, NODE_GUARD, REQUEST, Message::rtr, and SHORT_CAN::w. +

    Referenced by masterRequestNodeState(). +

    +Here is the call graph for this function:

    + + + + +

    @@ -135,7 +166,7 @@ UNS8 masterSendNMTstateChange ( - CO_Data *  + CO_Datad, @@ -170,12 +201,21 @@

    Returns:

    -message configuration -

    Definition at line 45 of file nmtMaster.c. +

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::data, Message::len, MSG_WAR, NOT_A_REQUEST, Message::rtr, and SHORT_CAN::w. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + +

    -


    Generated on Tue Jun 5 18:32:06 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:11 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_6170d95d9900ef756921a934c5fb37d2_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8c_6170d95d9900ef756921a934c5fb37d2_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 273,6 353,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 404,6 535,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_6170d95d9900ef756921a934c5fb37d2_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8c_6170d95d9900ef756921a934c5fb37d2_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +61faa5c3ef01f2b804c33c972eca4043 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_6170d95d9900ef756921a934c5fb37d2_cgraph.png Binary file doc/doxygen/html/nmtMaster_8c_6170d95d9900ef756921a934c5fb37d2_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.map --- a/doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,2 +1,4 @@ base referer rect $nmtMaster_8c.html#f63689baeabb15103c2b7afe8885c5c4 249,6 455,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 505,6 585,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 636,6 767,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.md5 --- a/doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -2334127c3c97339f51e16aead79b4316 \ No newline at end of file +eacb93de34c11860ff7f03b225030e8e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.png Binary file doc/doxygen/html/nmtMaster_8c_98bee3f402438056dbd653e752054796_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c__incl.map --- a/doc/doxygen/html/nmtMaster_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtMaster_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $nmtMaster_8h.html 185,275 292,299 +rect $win32_2canfestival_8h.html 185,518 292,542 +rect $data_8h.html 361,275 425,299 +rect $win32_2applicfg_8h.html 765,306 853,330 +rect $def_8h.html 649,54 705,78 +rect $can_8h.html 515,494 573,518 +rect $objdictdef_8h.html 493,347 595,371 +rect $objacces_8h.html 497,251 591,275 +rect $sdo_8h.html 515,446 573,470 +rect $pdo_8h.html 515,104 573,128 +rect $states_8h.html 507,299 581,323 +rect $lifegrd_8h.html 505,152 583,176 +rect $sync_8h.html 511,6 577,30 +rect $config_8h.html 772,54 847,78 +rect $timer_8h.html 643,399 712,423 +rect $win32_2timerscfg_8h.html 760,474 859,498 +rect $can__driver_8h.html 341,518 445,542 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c__incl.md5 --- a/doc/doxygen/html/nmtMaster_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtMaster_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -5411ef332bb3ec852e585936be432632 \ No newline at end of file +b28241e9bedf8fe3ad39a9b00a1ed162 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c__incl.png Binary file doc/doxygen/html/nmtMaster_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_f63689baeabb15103c2b7afe8885c5c4_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8c_f63689baeabb15103c2b7afe8885c5c4_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 263,6 343,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 394,6 524,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_f63689baeabb15103c2b7afe8885c5c4_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8c_f63689baeabb15103c2b7afe8885c5c4_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7e01c20b5abf49a5d983866395b4ec2d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8c_f63689baeabb15103c2b7afe8885c5c4_cgraph.png Binary file doc/doxygen/html/nmtMaster_8c_f63689baeabb15103c2b7afe8885c5c4_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,62 @@ + + +CanFestival: include/nmtMaster.h Source File + + + + + + + +

    nmtMaster.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __nmtMaster_h__
    +00024 #define __nmtMaster_h__
    +00025 
    +00026 #include "data.h"
    +00027 
    +00045 UNS8 masterSendNMTstateChange (CO_Data* d, UNS8 Node_ID, UNS8 cs);
    +00046 
    +00052 UNS8 masterSendNMTnodeguard (CO_Data* d, UNS8 nodeId);
    +00053 
    +00054 
    +00061 void masterRequestNodeState (CO_Data* d, UNS8 nodeId);
    +00062 
    +00063 
    +00064 #endif /* __nmtMaster_h__ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,237 @@ + + +CanFestival: include/nmtMaster.h File Reference + + + + + + + +

    nmtMaster.h File Reference

    #include "data.h"
    + +

    +Include dependency graph for nmtMaster.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + +

    Functions

    UNS8 masterSendNMTstateChange (CO_Data *d, UNS8 Node_ID, UNS8 cs)
    UNS8 masterSendNMTnodeguard (CO_Data *d, UNS8 nodeId)
    void masterRequestNodeState (CO_Data *d, UNS8 nodeId)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void masterRequestNodeState (CO_Data d,
    UNS8  nodeId 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    nodeId 
    +
    + +

    +Definition at line 90 of file nmtMaster.c. +

    +References struct_s_timer_entry::d, masterSendNMTnodeguard(), NMT_MAX_NODE_ID, struct_CO_Data::NMTable, Unknown_state, and UNS8. +

    +Referenced by GetChangeStateResults(). +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 masterSendNMTnodeguard (CO_Data d,
    UNS8  nodeId 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    nodeId 
    +
    +
    Returns:
    + +

    +Definition at line 70 of file nmtMaster.c. +

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::len, MSG_WAR, NODE_GUARD, REQUEST, Message::rtr, and SHORT_CAN::w. +

    +Referenced by masterRequestNodeState(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 masterSendNMTstateChange (CO_Data d,
    UNS8  Node_ID,
    UNS8  cs 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + +
    d 
    Node_ID 
    cs 
    +
    +
    Returns:
    + +

    +Definition at line 45 of file nmtMaster.c. +

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::data, Message::len, MSG_WAR, NOT_A_REQUEST, Message::rtr, and SHORT_CAN::w. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:00 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_6170d95d9900ef756921a934c5fb37d2_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h_6170d95d9900ef756921a934c5fb37d2_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 273,6 353,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 404,6 535,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_6170d95d9900ef756921a934c5fb37d2_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h_6170d95d9900ef756921a934c5fb37d2_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +61faa5c3ef01f2b804c33c972eca4043 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_6170d95d9900ef756921a934c5fb37d2_cgraph.png Binary file doc/doxygen/html/nmtMaster_8h_6170d95d9900ef756921a934c5fb37d2_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_98bee3f402438056dbd653e752054796_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h_98bee3f402438056dbd653e752054796_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $nmtMaster_8c.html#f63689baeabb15103c2b7afe8885c5c4 249,6 455,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 505,6 585,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 636,6 767,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_98bee3f402438056dbd653e752054796_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h_98bee3f402438056dbd653e752054796_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eacb93de34c11860ff7f03b225030e8e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_98bee3f402438056dbd653e752054796_cgraph.png Binary file doc/doxygen/html/nmtMaster_8h_98bee3f402438056dbd653e752054796_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,20 @@ +base referer +rect $nmtMaster_8c.html 757,93 885,117 +rect $data_8h.html 215,532 332,556 +rect $lifegrd_8c.html 771,339 872,363 +rect $sync_8c.html 777,215 865,239 +rect $unix_8c.html 748,276 895,300 +rect $objdict_8h.html 399,388 681,412 +rect $TestMasterSlave_2TestMaster_8h.html 396,436 684,460 +rect $TestSlave_8h.html 399,484 681,508 +rect $TestMasterMicroMod_2TestMaster_8h.html 381,532 699,556 +rect $win32test_8h.html 420,580 660,604 +rect $objacces_8h.html 467,628 613,652 +rect $lifegrd_8h.html 475,676 605,700 +rect $nmtSlave_8h.html 464,724 616,748 +rect $timer_8h.html 479,772 601,796 +rect $sdo_8h.html 765,833 877,857 +rect $pdo_8h.html 483,895 597,919 +rect $states_8h.html 476,92 604,116 +rect $unix_2canfestival_8h.html 443,140 637,164 +rect $win32_2canfestival_8h.html 436,239 644,263 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0f02edf914faf84435d445d4d54efff9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h__dep__incl.png Binary file doc/doxygen/html/nmtMaster_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $data_8h.html 215,277 279,301 +rect $win32_2applicfg_8h.html 600,276 688,300 +rect $def_8h.html 484,13 540,37 +rect $can_8h.html 483,251 541,275 +rect $objdictdef_8h.html 328,152 429,176 +rect $objacces_8h.html 332,349 425,373 +rect $sdo_8h.html 349,496 408,520 +rect $pdo_8h.html 349,56 408,80 +rect $states_8h.html 341,104 416,128 +rect $lifegrd_8h.html 340,301 417,325 +rect $sync_8h.html 345,448 412,472 +rect $config_8h.html 607,13 681,37 +rect $timer_8h.html 477,400 547,424 +rect $win32_2timerscfg_8h.html 595,368 693,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a02abc3a88f99fbe602e07200ce4abff \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h__incl.png Binary file doc/doxygen/html/nmtMaster_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_f63689baeabb15103c2b7afe8885c5c4_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h_f63689baeabb15103c2b7afe8885c5c4_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 263,6 343,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 394,6 524,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_f63689baeabb15103c2b7afe8885c5c4_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8h_f63689baeabb15103c2b7afe8885c5c4_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7e01c20b5abf49a5d983866395b4ec2d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtMaster_8h_f63689baeabb15103c2b7afe8885c5c4_cgraph.png Binary file doc/doxygen/html/nmtMaster_8h_f63689baeabb15103c2b7afe8885c5c4_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c-source.html --- a/doc/doxygen/html/nmtSlave_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtSlave_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c Source File +CanFestival: src/nmtSlave.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    nmtSlave.c

    Go to the documentation of this file.
    00001 /*
     00002   This file is part of CanFestival, a library implementing CanOpen
     00003   Stack.
     00004 
    @@ -38,67 +42,73 @@
     00021   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
     00022   USA
     00023 */
    -00033 #include "nmtSlave.h"
    -00034 #include "states.h"
    -00035 #include "canfestival.h"
    +00033 #include "nmtSlave.h"
    +00034 #include "states.h"
    +00035 #include "canfestival.h"
     00036 
    -00043 void proceedNMTstateChange(CO_Data* d, Message *m)
    +00043 void proceedNMTstateChange(CO_Data* d, Message *m)
     00044 {
    -00045   if( d->nodeState == Pre_operational ||
    -00046       d->nodeState == Operational ||
    -00047       d->nodeState == Stopped ) {
    +00045   if( d->nodeState == Pre_operational ||
    +00046       d->nodeState == Operational ||
    +00047       d->nodeState == Stopped ) {
     00048 
    -00049     MSG_WAR(0x3400, "NMT received. for node :  ", (*m).data[1]);
    +00049     MSG_WAR(0x3400, "NMT received. for node :  ", (*m).data[1]);
     00050 
    -00054     if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == *d->bDeviceNodeId ) ){
    +00051     /* Check if this NMT-message is for this node */
    +00052     /* byte 1 = 0 : all the nodes are concerned (broadcast) */
    +00053 
    +00054     if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == *d->bDeviceNodeId ) ){
     00055 
    -00056       switch( (*m).data[0]){ 
    -00057       case NMT_Start_Node:
    -00058         if ( (d->nodeState == Pre_operational) || (d->nodeState == Stopped) )
    -00059           setState(d,Operational);
    +00056       switch( (*m).data[0]){ /* command specifier (cs) */
    +00057       case NMT_Start_Node:
    +00058         if ( (d->nodeState == Pre_operational) || (d->nodeState == Stopped) )
    +00059           setState(d,Operational);
     00060         break;
     00061 
    -00062       case NMT_Stop_Node:
    -00063         if ( d->nodeState == Pre_operational ||
    -00064              d->nodeState == Operational )
    -00065           setState(d,Stopped);
    +00062       case NMT_Stop_Node:
    +00063         if ( d->nodeState == Pre_operational ||
    +00064              d->nodeState == Operational )
    +00065           setState(d,Stopped);
     00066         break;
     00067 
    -00068       case NMT_Enter_PreOperational:
    -00069         if ( d->nodeState == Operational ||
    -00070              d->nodeState == Stopped )
    -00071           setState(d,Pre_operational);
    +00068       case NMT_Enter_PreOperational:
    +00069         if ( d->nodeState == Operational ||
    +00070              d->nodeState == Stopped )
    +00071           setState(d,Pre_operational);
     00072         break;
     00073 
    -00074       case NMT_Reset_Node:
    -00075         setState(d,Initialisation);
    +00074       case NMT_Reset_Node:
    +00075         setState(d,Initialisation);
     00076         break;
     00077 
    -00078       case NMT_Reset_Comunication:
    -00079         setState(d,Initialisation);
    +00078       case NMT_Reset_Comunication:
    +00079         setState(d,Initialisation);
     00080         break;
     00081 
    -00082       }
    -00084     }
    +00082       }/* end switch */
    +00083 
    +00084     }/* end if( ( (*m).data[1] == 0 ) || ( (*m).data[1] ==
    +00085         bDeviceNodeId ) ) */
     00086   }
     00087 }
     00088 
     00089 
    -00097 UNS8 slaveSendBootUp(CO_Data* d)
    +00097 UNS8 slaveSendBootUp(CO_Data* d)
     00098 {
    -00099   Message m;
    +00099   Message m;
     00100 
    -00101   MSG_WAR(0x3407, "Send a Boot-Up msg ", 0);
    +00101   MSG_WAR(0x3407, "Send a Boot-Up msg ", 0);
     00102 
    -00104   m.cob_id.w = NODE_GUARD << 7 | *d->bDeviceNodeId;
    -00105   m.rtr = NOT_A_REQUEST;
    -00106   m.len = 1;
    -00107   m.data[0] = 0x00;
    +00103   /* message configuration */
    +00104   m.cob_id.w = NODE_GUARD << 7 | *d->bDeviceNodeId;
    +00105   m.rtr = NOT_A_REQUEST;
    +00106   m.len = 1;
    +00107   m.data[0] = 0x00;
     00108 
    -00109   return canSend(d->canHandle,&m);
    +00109   return canSend(d->canHandle,&m);
     00110 }
     00111 
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c.html --- a/doc/doxygen/html/nmtSlave_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtSlave_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c File Reference +CanFestival: src/nmtSlave.c File Reference @@ -8,27 +8,51 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c File Reference

    #include "nmtSlave.h"
    -#include "states.h"
    -#include "canfestival.h"
    + +

    nmtSlave.c File Reference

    #include "nmtSlave.h"
    +#include "states.h"
    +#include "canfestival.h"

    -Include dependency graph for nmtSlave.c:

    +Include dependency graph for nmtSlave.c:

    + + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. - + - +

    Functions

    void proceedNMTstateChange (CO_Data *d, Message *m)
    void proceedNMTstateChange (CO_Data *d, Message *m)
    UNS8 slaveSendBootUp (CO_Data *d)
    UNS8 slaveSendBootUp (CO_Data *d)


    Detailed Description

    @@ -44,13 +68,13 @@ void proceedNMTstateChange ( - CO_Data *  + CO_Datad, - Message *  + Messagem  @@ -72,15 +96,9 @@

    -Check if this NMT-message is for this node

    -byte 1 = 0 : all the nodes are concerned (broadcast)

    -command specifier (cs)

    -end switch

    -end if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == bDeviceNodeId ) ) -

    Definition at line 43 of file nmtSlave.c.

    -References setState(). +References struct_CO_Data::bDeviceNodeId, struct_s_timer_entry::d, Initialisation, MSG_WAR, NMT_Enter_PreOperational, NMT_Reset_Comunication, NMT_Reset_Node, NMT_Start_Node, NMT_Stop_Node, struct_CO_Data::nodeState, Operational, Pre_operational, setState(), and Stopped.

    Referenced by canDispatch().

    @@ -107,7 +125,7 @@ UNS8 slaveSendBootUp ( - CO_Data *  + CO_Datad  )  @@ -125,14 +143,21 @@

    Returns:

    -message configuration -

    Definition at line 97 of file nmtSlave.c.

    +References struct_CO_Data::bDeviceNodeId, struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::data, Message::len, MSG_WAR, NODE_GUARD, NOT_A_REQUEST, Message::rtr, and SHORT_CAN::w. +

    Referenced by switchCommunicationState(). +

    +Here is the call graph for this function:

    + + + + +

    -


    Generated on Tue Jun 5 18:32:06 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:11 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c_97d175ea168c149c99b01dcde0989743_cgraph.md5 --- a/doc/doxygen/html/nmtSlave_8c_97d175ea168c149c99b01dcde0989743_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtSlave_8c_97d175ea168c149c99b01dcde0989743_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -d55d71723eeeaa54b2e7d56e1e9e951a \ No newline at end of file +aaa6a1cedce67414b0f5a0c727ed3073 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c_97d175ea168c149c99b01dcde0989743_cgraph.png Binary file doc/doxygen/html/nmtSlave_8c_97d175ea168c149c99b01dcde0989743_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c__incl.map --- a/doc/doxygen/html/nmtSlave_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtSlave_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,19 @@ base referer +rect $nmtSlave_8h.html 182,251 280,275 +rect $states_8h.html 502,56 576,80 +rect $win32_2canfestival_8h.html 178,616 284,640 +rect $win32_2applicfg_8h.html 763,432 851,456 +rect $data_8h.html 354,299 418,323 +rect $def_8h.html 647,143 703,167 +rect $can_8h.html 510,592 568,616 +rect $objdictdef_8h.html 488,347 590,371 +rect $objacces_8h.html 492,203 586,227 +rect $sdo_8h.html 510,493 568,517 +rect $pdo_8h.html 510,155 568,179 +rect $lifegrd_8h.html 500,395 578,419 +rect $sync_8h.html 506,251 572,275 +rect $nmtMaster_8h.html 486,299 592,323 +rect $config_8h.html 770,143 844,167 +rect $timer_8h.html 640,516 710,540 +rect $win32_2timerscfg_8h.html 758,585 856,609 +rect $can__driver_8h.html 334,616 438,640 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c__incl.md5 --- a/doc/doxygen/html/nmtSlave_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/nmtSlave_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -0a6d587d0df19542b8f568f70a892616 \ No newline at end of file +6ae670b239b9ae89c135ef5bacdbe4f2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c__incl.png Binary file doc/doxygen/html/nmtSlave_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c_aced28a97b2c256320dfde3c4b36a7d5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8c_aced28a97b2c256320dfde3c4b36a7d5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 196,6 276,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 327,6 457,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c_aced28a97b2c256320dfde3c4b36a7d5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8c_aced28a97b2c256320dfde3c4b36a7d5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +614912a1fc8a32c6572bda8e5db74dd4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8c_aced28a97b2c256320dfde3c4b36a7d5_cgraph.png Binary file doc/doxygen/html/nmtSlave_8c_aced28a97b2c256320dfde3c4b36a7d5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,60 @@ + + +CanFestival: include/nmtSlave.h Source File + + + + + + + +

    nmtSlave.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __nmtSlave_h__
    +00024 #define __nmtSlave_h__
    +00025 
    +00026 #include <applicfg.h>
    +00027 #include "data.h"
    +00028 
    +00035 void proceedNMTstateChange (CO_Data* d, Message * m);
    +00036 
    +00042 UNS8 slaveSendBootUp (CO_Data* d);
    +00043 
    +00044 
    +00045 #endif /* __nmtSlave_h__ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,162 @@ + + +CanFestival: include/nmtSlave.h File Reference + + + + + + + +

    nmtSlave.h File Reference

    #include <applicfg.h>
    +#include "data.h"
    + +

    +Include dependency graph for nmtSlave.h:

    + + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + +

    +Go to the source code of this file. + + + + + + +

    Functions

    void proceedNMTstateChange (CO_Data *d, Message *m)
    UNS8 slaveSendBootUp (CO_Data *d)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void proceedNMTstateChange (CO_Data d,
    Message m 
    )
    +
    +
    + +

    +put the slave in the state wanted by the master

    +

    Parameters:
    + + + +
    d 
    m 
    +
    + +

    +Definition at line 43 of file nmtSlave.c. +

    +References struct_CO_Data::bDeviceNodeId, struct_s_timer_entry::d, Initialisation, MSG_WAR, NMT_Enter_PreOperational, NMT_Reset_Comunication, NMT_Reset_Node, NMT_Start_Node, NMT_Stop_Node, struct_CO_Data::nodeState, Operational, Pre_operational, setState(), and Stopped. +

    +Referenced by canDispatch(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    UNS8 slaveSendBootUp (CO_Data d  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    d 
    +
    +
    Returns:
    + +

    +Definition at line 97 of file nmtSlave.c. +

    +References struct_CO_Data::bDeviceNodeId, struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::data, Message::len, MSG_WAR, NODE_GUARD, NOT_A_REQUEST, Message::rtr, and SHORT_CAN::w. +

    +Referenced by switchCommunicationState(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:00 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h_97d175ea168c149c99b01dcde0989743_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h_97d175ea168c149c99b01dcde0989743_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 247,101 324,125 +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 421,53 533,77 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 375,149 580,173 +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 629,5 776,29 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 648,53 757,77 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 644,101 761,125 +rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 660,149 745,173 +rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 632,197 773,221 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 659,245 747,269 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 824,271 912,295 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h_97d175ea168c149c99b01dcde0989743_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h_97d175ea168c149c99b01dcde0989743_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +aaa6a1cedce67414b0f5a0c727ed3073 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h_97d175ea168c149c99b01dcde0989743_cgraph.png Binary file doc/doxygen/html/nmtSlave_8h_97d175ea168c149c99b01dcde0989743_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $nmtSlave_8c.html 209,6 329,30 +rect $states_8c.html 220,54 319,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +4a69c6c13745d79ad588de1f37b98f77 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h__dep__incl.png Binary file doc/doxygen/html/nmtSlave_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $win32_2applicfg_8h.html 600,345 688,369 +rect $data_8h.html 209,299 273,323 +rect $def_8h.html 484,496 540,520 +rect $can_8h.html 483,125 541,149 +rect $objdictdef_8h.html 325,107 427,131 +rect $objacces_8h.html 329,251 423,275 +rect $sdo_8h.html 347,544 405,568 +rect $pdo_8h.html 347,445 405,469 +rect $states_8h.html 339,299 413,323 +rect $lifegrd_8h.html 337,347 415,371 +rect $sync_8h.html 343,155 409,179 +rect $nmtMaster_8h.html 323,203 429,227 +rect $config_8h.html 607,496 681,520 +rect $timer_8h.html 477,544 547,568 +rect $win32_2timerscfg_8h.html 595,544 693,568 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d6db3f27db0cc019bce691a5e3fcc892 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h__incl.png Binary file doc/doxygen/html/nmtSlave_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h_aced28a97b2c256320dfde3c4b36a7d5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h_aced28a97b2c256320dfde3c4b36a7d5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 196,6 276,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 327,6 457,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h_aced28a97b2c256320dfde3c4b36a7d5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8h_aced28a97b2c256320dfde3c4b36a7d5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +614912a1fc8a32c6572bda8e5db74dd4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/nmtSlave_8h_aced28a97b2c256320dfde3c4b36a7d5_cgraph.png Binary file doc/doxygen/html/nmtSlave_8h_aced28a97b2c256320dfde3c4b36a7d5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8c-source.html --- a/doc/doxygen/html/objacces_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/objacces_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/objacces.c Source File +CanFestival: src/objacces.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/objacces.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    objacces.c

    Go to the documentation of this file.
    00001 /*
     00002   This file is part of CanFestival, a library implementing CanOpen
     00003   Stack.
     00004 
    @@ -42,129 +46,134 @@
     00038 /* #define DEBUG_ERR_CONSOLE_ON */
     00039 
     00040 
    -00041 #include "objacces.h"
    +00041 #include "objacces.h"
     00042 
     00043 
    -00055 UNS8 accessDictionaryError(UNS16 index, UNS8 subIndex,
    -00056                            UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code)
    +00055 UNS8 accessDictionaryError(UNS16 index, UNS8 subIndex,
    +00056                            UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code)
     00057 {
     00058 #ifdef DEBUG_WAR_CONSOLE_ON
    -00059   MSG_WAR(0x2B09,"Dictionary index : ", index);
    -00060   MSG_WAR(0X2B10,"           subindex : ", subIndex);
    +00059   MSG_WAR(0x2B09,"Dictionary index : ", index);
    +00060   MSG_WAR(0X2B10,"           subindex : ", subIndex);
     00061   switch (code) {
    -00062   case  OD_NO_SUCH_OBJECT:
    -00063     MSG_WAR(0x2B11,"Index not found ", index);
    +00062   case  OD_NO_SUCH_OBJECT:
    +00063     MSG_WAR(0x2B11,"Index not found ", index);
     00064     break;
    -00065   case OD_NO_SUCH_SUBINDEX :
    -00066     MSG_WAR(0x2B12,"SubIndex not found ", subIndex);
    +00065   case OD_NO_SUCH_SUBINDEX :
    +00066     MSG_WAR(0x2B12,"SubIndex not found ", subIndex);
     00067     break;
    -00068   case OD_WRITE_NOT_ALLOWED :
    -00069     MSG_WAR(0x2B13,"Write not allowed, data is read only ", index);
    +00068   case OD_WRITE_NOT_ALLOWED :
    +00069     MSG_WAR(0x2B13,"Write not allowed, data is read only ", index);
     00070     break;
    -00071   case OD_LENGTH_DATA_INVALID :
    -00072     MSG_WAR(0x2B14,"Conflict size data. Should be (bytes)  : ", sizeDataDict);
    -00073     MSG_WAR(0x2B15,"But you have given the size  : ", sizeDataGiven);
    +00071   case OD_LENGTH_DATA_INVALID :
    +00072     MSG_WAR(0x2B14,"Conflict size data. Should be (bytes)  : ", sizeDataDict);
    +00073     MSG_WAR(0x2B15,"But you have given the size  : ", sizeDataGiven);
     00074     break;
    -00075   case OD_NOT_MAPPABLE :
    -00076     MSG_WAR(0x2B16,"Not mappable data in a PDO at index    : ", index);
    +00075   case OD_NOT_MAPPABLE :
    +00076     MSG_WAR(0x2B16,"Not mappable data in a PDO at index    : ", index);
     00077     break;
    -00078   case OD_VALUE_TOO_LOW :
    -00079     MSG_WAR(0x2B17,"Value range error : value too low. SDOabort : ", code);
    +00078   case OD_VALUE_TOO_LOW :
    +00079     MSG_WAR(0x2B17,"Value range error : value too low. SDOabort : ", code);
     00080     break;
    -00081   case OD_VALUE_TOO_HIGH :
    -00082     MSG_WAR(0x2B18,"Value range error : value too high. SDOabort : ", code);
    +00081   case OD_VALUE_TOO_HIGH :
    +00082     MSG_WAR(0x2B18,"Value range error : value too high. SDOabort : ", code);
     00083     break;
     00084   default :
    -00085     MSG_WAR(0x2B20, "Unknown error code : ", code);
    +00085     MSG_WAR(0x2B20, "Unknown error code : ", code);
     00086   }
     00087 #endif
     00088   return 0;
     00089 }
     00090 
    -00105 UNS32 _getODentry( CO_Data* d,
    -00106                    UNS16 wIndex,
    -00107                    UNS8 bSubindex,
    +00105 UNS32 _getODentry( CO_Data* d,
    +00106                    UNS16 wIndex,
    +00107                    UNS8 bSubindex,
     00108                    void * pDestData,
    -00109                    UNS8 * pExpectedSize,
    -00110                    UNS8 * pDataType,
    -00111                    UNS8 checkAccess,
    -00112                    UNS8 endianize)
    -00113 { 
    -00115   UNS32 errorCode;
    -00116   UNS8 szData;
    -00117   const indextable *ptrTable;
    -00118   ODCallback_t *Callback;
    +00109                    UNS8 * pExpectedSize,
    +00110                    UNS8 * pDataType,
    +00111                    UNS8 checkAccess,
    +00112                    UNS8 endianize)
    +00113 { /* DO NOT USE MSG_ERR because the macro may send a PDO -> infinite
    +00114     loop if it fails. */
    +00115   UNS32 errorCode;
    +00116   UNS8 szData;
    +00117   const indextable *ptrTable;
    +00118   ODCallback_t *Callback;
     00119 
    -00120   ptrTable = (*d->scanIndexOD)(wIndex, &errorCode, &Callback);
    +00120   ptrTable = (*d->scanIndexOD)(wIndex, &errorCode, &Callback);
     00121 
    -00122   if (errorCode != OD_SUCCESSFUL)
    +00122   if (errorCode != OD_SUCCESSFUL)
     00123     return errorCode;
    -00124   if( ptrTable->bSubCount <= bSubindex ) {
    +00124   if( ptrTable->bSubCount <= bSubindex ) {
     00125     /* Subindex not found */
    -00126     accessDictionaryError(wIndex, bSubindex, 0, 0, OD_NO_SUCH_SUBINDEX);
    -00127     return OD_NO_SUCH_SUBINDEX;
    +00126     accessDictionaryError(wIndex, bSubindex, 0, 0, OD_NO_SUCH_SUBINDEX);
    +00127     return OD_NO_SUCH_SUBINDEX;
     00128   }
     00129 
    -00130   if (checkAccess && !(ptrTable->pSubindex[bSubindex].bAccessType & WO)) {
    -00131     MSG_WAR(0x2B30, "Access Type : ", ptrTable->pSubindex[bSubindex].bAccessType);
    -00132     accessDictionaryError(wIndex, bSubindex, 0, 0, OD_WRITE_NOT_ALLOWED);
    -00133     return OD_READ_NOT_ALLOWED;
    +00130   if (checkAccess && !(ptrTable->pSubindex[bSubindex].bAccessType & WO)) {
    +00131     MSG_WAR(0x2B30, "Access Type : ", ptrTable->pSubindex[bSubindex].bAccessType);
    +00132     accessDictionaryError(wIndex, bSubindex, 0, 0, OD_WRITE_NOT_ALLOWED);
    +00133     return OD_READ_NOT_ALLOWED;
     00134   }
     00135 
    -00136   *pDataType = ptrTable->pSubindex[bSubindex].bDataType;
    -00137   szData = ptrTable->pSubindex[bSubindex].size;
    +00136   *pDataType = ptrTable->pSubindex[bSubindex].bDataType;
    +00137   szData = ptrTable->pSubindex[bSubindex].size;
     00138 
     00139   if(*pExpectedSize == 0 ||
     00140      *pExpectedSize == szData ||
    -00141      (*pDataType == visible_string && *pExpectedSize < szData)) {
    +00141      (*pDataType == visible_string && *pExpectedSize < szData)) {
    +00142     /* We
    +00143       allow to fetch a shorter string than expected */
    +00144 
     00145 #  ifdef CANOPEN_BIG_ENDIAN
    -00146     if(endianize && *pDataType > boolean && *pDataType < visible_string) {
    -00148       UNS8 i, j = 0;
    -00149       MSG_WAR(boolean, "data type ", *pDataType);
    -00150       MSG_WAR(visible_string, "data type ", *pDataType);
    +00146     if(endianize && *pDataType > boolean && *pDataType < visible_string) {
    +00147       /* data must be transmited with low byte first */
    +00148       UNS8 i, j = 0;
    +00149       MSG_WAR(boolean, "data type ", *pDataType);
    +00150       MSG_WAR(visible_string, "data type ", *pDataType);
     00151       for ( i = szData ; i > 0 ; i--) {
    -00152         MSG_WAR(i," ", j);
    -00153         ((UNS8*)pDestData)[j++] =
    -00154           ((UNS8*)ptrTable->pSubindex[bSubindex].pObject)[i-1];
    +00152         MSG_WAR(i," ", j);
    +00153         ((UNS8*)pDestData)[j++] =
    +00154           ((UNS8*)ptrTable->pSubindex[bSubindex].pObject)[i-1];
     00155       }
     00156     }
    -00157     else 
    -00158       memcpy(pDestData, ptrTable->pSubindex[bSubindex].pObject,szData);
    +00157     else /* It it is a visible string no endianisation to perform */
    +00158       memcpy(pDestData, ptrTable->pSubindex[bSubindex].pObject,szData);
     00159 #  else
    -00160     memcpy(pDestData, ptrTable->pSubindex[bSubindex].pObject,szData);
    +00160     memcpy(pDestData, ptrTable->pSubindex[bSubindex].pObject,szData);
     00161 #  endif
     00162 
     00163     *pExpectedSize = szData;
     00164 #if 0
    -00165 
    +00165     /* Me laisser a, please ! (FD) */
     00166     {
    -00167       UNS8 i;
    +00167       UNS8 i;
     00168       for (i = 0 ; i < 10 ; i++) {
    -00169         MSG_WAR(*pExpectedSize, "dic data= ",
    -00170                 *(UNS8 *)(ptrTable->pSubindex[bSubindex].pObject + i));
    +00169         MSG_WAR(*pExpectedSize, "dic data= ",
    +00170                 *(UNS8 *)(ptrTable->pSubindex[bSubindex].pObject + i));
     00171       }
     00172 
     00173     }
     00174 #endif
    -00175     return OD_SUCCESSFUL;
    +00175     return OD_SUCCESSFUL;
     00176   }
    -00177   else { 
    +00177   else { /* Error ! */
     00178     *pExpectedSize = szData;
     00179     accessDictionaryError(wIndex, bSubindex, szData,
    -00180                           *pExpectedSize, OD_LENGTH_DATA_INVALID);
    -00181     return OD_LENGTH_DATA_INVALID;
    +00180                           *pExpectedSize, OD_LENGTH_DATA_INVALID);
    +00181     return OD_LENGTH_DATA_INVALID;
     00182   }
     00183 }
     00184 
    -00198 UNS32 getODentry( CO_Data* d,
    -00199                   UNS16 wIndex,
    -00200                   UNS8 bSubindex,
    +00198 UNS32 getODentry( CO_Data* d,
    +00199                   UNS16 wIndex,
    +00200                   UNS8 bSubindex,
     00201                   void * pDestData,
    -00202                   UNS8 * pExpectedSize,
    -00203                   UNS8 * pDataType,
    -00204                   UNS8 checkAccess)
    +00202                   UNS8 * pExpectedSize,
    +00203                   UNS8 * pDataType,
    +00204                   UNS8 checkAccess)
     00205 {
    -00206   return _getODentry( d,
    +00206   return _getODentry( d,
     00207                       wIndex,
     00208                       bSubindex,
     00209                       pDestData,
    @@ -174,15 +183,15 @@
     00213                       1);//endianize
     00214 }
     00215 
    -00229 UNS32 readLocalDict( CO_Data* d,
    -00230                      UNS16 wIndex,
    -00231                      UNS8 bSubindex,
    +00229 UNS32 readLocalDict( CO_Data* d,
    +00230                      UNS16 wIndex,
    +00231                      UNS8 bSubindex,
     00232                      void * pDestData,
    -00233                      UNS8 * pExpectedSize,
    -00234                      UNS8 * pDataType,
    -00235                      UNS8 checkAccess)
    +00233                      UNS8 * pExpectedSize,
    +00234                      UNS8 * pDataType,
    +00235                      UNS8 checkAccess)
     00236 {
    -00237   return _getODentry( d,
    +00237   return _getODentry( d,
     00238                       wIndex,
     00239                       bSubindex,
     00240                       pDestData,
    @@ -192,86 +201,92 @@
     00244                       0);//do not endianize
     00245 }
     00246 
    -00260 UNS32 _setODentry( CO_Data* d,
    -00261                    UNS16 wIndex,
    -00262                    UNS8 bSubindex,
    +00260 UNS32 _setODentry( CO_Data* d,
    +00261                    UNS16 wIndex,
    +00262                    UNS8 bSubindex,
     00263                    void * pSourceData,
    -00264                    UNS8 * pExpectedSize,
    -00265                    UNS8 checkAccess,
    -00266                    UNS8 endianize)
    +00264                    UNS8 * pExpectedSize,
    +00265                    UNS8 checkAccess,
    +00266                    UNS8 endianize)
     00267 {
    -00268   UNS8 szData;
    -00269   UNS8 dataType;
    -00270   UNS32 errorCode;
    -00271   const indextable *ptrTable;
    -00272   ODCallback_t *Callback;
    +00268   UNS8 szData;
    +00269   UNS8 dataType;
    +00270   UNS32 errorCode;
    +00271   const indextable *ptrTable;
    +00272   ODCallback_t *Callback;
     00273 
    -00274   ptrTable =(*d->scanIndexOD)(wIndex, &errorCode, &Callback);
    -00275   if (errorCode != OD_SUCCESSFUL)
    +00274   ptrTable =(*d->scanIndexOD)(wIndex, &errorCode, &Callback);
    +00275   if (errorCode != OD_SUCCESSFUL)
     00276     return errorCode;
     00277 
    -00278   if( ptrTable->bSubCount <= bSubindex ) {
    -00280     accessDictionaryError(wIndex, bSubindex, 0, *pExpectedSize, OD_NO_SUCH_SUBINDEX);
    -00281     return OD_NO_SUCH_SUBINDEX;
    +00278   if( ptrTable->bSubCount <= bSubindex ) {
    +00279     /* Subindex not found */
    +00280     accessDictionaryError(wIndex, bSubindex, 0, *pExpectedSize, OD_NO_SUCH_SUBINDEX);
    +00281     return OD_NO_SUCH_SUBINDEX;
     00282   }
    -00283   if (checkAccess && (ptrTable->pSubindex[bSubindex].bAccessType == RO)) {
    -00284     MSG_WAR(0x2B25, "Access Type : ", ptrTable->pSubindex[bSubindex].bAccessType);
    -00285     accessDictionaryError(wIndex, bSubindex, 0, *pExpectedSize, OD_WRITE_NOT_ALLOWED);
    -00286     return OD_WRITE_NOT_ALLOWED;
    +00283   if (checkAccess && (ptrTable->pSubindex[bSubindex].bAccessType == RO)) {
    +00284     MSG_WAR(0x2B25, "Access Type : ", ptrTable->pSubindex[bSubindex].bAccessType);
    +00285     accessDictionaryError(wIndex, bSubindex, 0, *pExpectedSize, OD_WRITE_NOT_ALLOWED);
    +00286     return OD_WRITE_NOT_ALLOWED;
     00287   }
     00288 
     00289 
    -00290   dataType = ptrTable->pSubindex[bSubindex].bDataType;
    -00291   szData = ptrTable->pSubindex[bSubindex].size;
    +00290   dataType = ptrTable->pSubindex[bSubindex].bDataType;
    +00291   szData = ptrTable->pSubindex[bSubindex].size;
     00292 
     00293   if( *pExpectedSize == 0 ||
     00294       *pExpectedSize == szData ||
    -00295       (dataType == visible_string && *pExpectedSize < szData)) /* We
    +00295       (dataType == visible_string && *pExpectedSize < szData)) /* We
     00296                                                                   allow to store a shorter string than entry size */
     00297     {
     00298 #ifdef CANOPEN_BIG_ENDIAN
    -00299       if(endianize && dataType > boolean && dataType < visible_string)
    +00299       if(endianize && dataType > boolean && dataType < visible_string)
     00300         {
    -00304           UNS8 i;
    -00305           for ( i = 0 ; i < ( ptrTable->pSubindex[bSubindex].size >> 1)  ; i++)
    +00301           /* we invert the data source directly. This let us do range
    +00302             testing without */
    +00303           /* additional temp variable */
    +00304           UNS8 i;
    +00305           for ( i = 0 ; i < ( ptrTable->pSubindex[bSubindex].size >> 1)  ; i++)
     00306             {
    -00307               UNS8 tmp =((UNS8 *)pSourceData) [(ptrTable->pSubindex[bSubindex].size - 1) - i];
    -00308               ((UNS8 *)pSourceData) [(ptrTable->pSubindex[bSubindex].size - 1) - i] = ((UNS8 *)pSourceData)[i];
    +00307               UNS8 tmp =((UNS8 *)pSourceData) [(ptrTable->pSubindex[bSubindex].size - 1) - i];
    +00308               ((UNS8 *)pSourceData) [(ptrTable->pSubindex[bSubindex].size - 1) - i] = ((UNS8 *)pSourceData)[i];
     00309               ((UNS8 *)pSourceData)[i] = tmp;
     00310             }
     00311         }
     00312 #endif
    -00313       errorCode = (*d->valueRangeTest)(dataType, pSourceData);
    +00313       errorCode = (*d->valueRangeTest)(dataType, pSourceData);
     00314       if (errorCode) {
     00315         accessDictionaryError(wIndex, bSubindex, szData, *pExpectedSize, errorCode);
     00316         return errorCode;
     00317       }
    -00318       memcpy(ptrTable->pSubindex[bSubindex].pObject,pSourceData, *pExpectedSize);
    +00318       memcpy(ptrTable->pSubindex[bSubindex].pObject,pSourceData, *pExpectedSize);
     00319       *pExpectedSize = szData;
     00320 
    +00321       /* Callbacks */
     00322       if(Callback && Callback[bSubindex]){
    -00323         (*Callback[bSubindex])(d, ptrTable, bSubindex);
    +00323         (*Callback[bSubindex])(d, ptrTable, bSubindex);
     00324       }
     00325 
    -00327       if (ptrTable->pSubindex[bSubindex].bAccessType & TO_BE_SAVE){
    -00328         (*d->storeODSubIndex)(wIndex, bSubindex);
    +00326       /* TODO : Store dans NVRAM */
    +00327       if (ptrTable->pSubindex[bSubindex].bAccessType & TO_BE_SAVE){
    +00328         (*d->storeODSubIndex)(wIndex, bSubindex);
     00329       }
    -00330       return OD_SUCCESSFUL;
    +00330       return OD_SUCCESSFUL;
     00331     }else{
     00332       *pExpectedSize = szData;
    -00333       accessDictionaryError(wIndex, bSubindex, szData, *pExpectedSize, OD_LENGTH_DATA_INVALID);
    -00334       return OD_LENGTH_DATA_INVALID;
    +00333       accessDictionaryError(wIndex, bSubindex, szData, *pExpectedSize, OD_LENGTH_DATA_INVALID);
    +00334       return OD_LENGTH_DATA_INVALID;
     00335     }
     00336 }
     00337 
    -00350 UNS32 setODentry( CO_Data* d,
    -00351                   UNS16 wIndex,
    -00352                   UNS8 bSubindex,
    +00350 UNS32 setODentry( CO_Data* d,
    +00351                   UNS16 wIndex,
    +00352                   UNS8 bSubindex,
     00353                   void * pSourceData,
    -00354                   UNS8 * pExpectedSize,
    -00355                   UNS8 checkAccess)
    +00354                   UNS8 * pExpectedSize,
    +00355                   UNS8 checkAccess)
     00356 {
    -00357   return _setODentry( d,
    +00357   return _setODentry( d,
     00358                       wIndex,
     00359                       bSubindex,
     00360                       pSourceData,
    @@ -280,14 +295,14 @@
     00363                       1);//endianize
     00364 }
     00365 
    -00378 UNS32 writeLocalDict( CO_Data* d,
    -00379                       UNS16 wIndex,
    -00380                       UNS8 bSubindex,
    +00378 UNS32 writeLocalDict( CO_Data* d,
    +00379                       UNS16 wIndex,
    +00380                       UNS8 bSubindex,
     00381                       void * pSourceData,
    -00382                       UNS8 * pExpectedSize,
    -00383                       UNS8 checkAccess)
    +00382                       UNS8 * pExpectedSize,
    +00383                       UNS8 checkAccess)
     00384 {
    -00385   return _setODentry( d,
    +00385   return _setODentry( d,
     00386                       wIndex,
     00387                       bSubindex,
     00388                       pSourceData,
    @@ -296,24 +311,24 @@
     00391                       0);//do not endianize
     00392 }
     00393 
    -00404 const indextable * scanIndexOD (CO_Data* d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
    +00404 const indextable * scanIndexOD (CO_Data* d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
     00405 {
    -00406   return (*d->scanIndexOD)(wIndex, errorCode, Callback);
    +00406   return (*d->scanIndexOD)(wIndex, errorCode, Callback);
     00407 }
     00408 
    -00419 UNS32 RegisterSetODentryCallBack(CO_Data* d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
    +00419 UNS32 RegisterSetODentryCallBack(CO_Data* d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
     00420 {
    -00421   UNS32 errorCode;
    -00422   ODCallback_t *CallbackList;
    +00421   UNS32 errorCode;
    +00422   ODCallback_t *CallbackList;
     00423 
    -00424   scanIndexOD (d, wIndex, &errorCode, &CallbackList);
    -00425   if(errorCode == OD_SUCCESSFUL && CallbackList)
    +00424   scanIndexOD (d, wIndex, &errorCode, &CallbackList);
    +00425   if(errorCode == OD_SUCCESSFUL && CallbackList)
     00426     CallbackList[bSubindex] = Callback;
     00427   return errorCode;
     00428 }
     00429 
    -00436 void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex){}
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +00436 void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex){} +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8c.html --- a/doc/doxygen/html/objacces_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/objacces_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/objacces.c File Reference +CanFestival: src/objacces.c File Reference @@ -8,17 +8,38 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/objacces.c File Reference

    #include "objacces.h"
    - -

    -Include dependency graph for objacces.c:

    + +

    objacces.c File Reference

    #include "objacces.h"
    + +

    +Include dependency graph for objacces.c:

    + + + + + + + + + + + + + + + + +

    Go to the source code of this file. @@ -26,21 +47,21 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -58,7 +79,7 @@ - + @@ -128,13 +149,9 @@
    Returns:

    -DO NOT USE MSG_ERR because the macro may send a PDO -> infinite loop if it fails.

    -We allow to fetch a shorter string than expected

    -Error ! -

    Definition at line 105 of file objacces.c.

    -References accessDictionaryError(), and ptrTable. +References accessDictionaryError(), td_subindex::bAccessType, td_subindex::bDataType, td_indextable::bSubCount, struct_s_timer_entry::d, MSG_WAR, OD_LENGTH_DATA_INVALID, OD_NO_SUCH_SUBINDEX, OD_READ_NOT_ALLOWED, OD_SUCCESSFUL, OD_WRITE_NOT_ALLOWED, td_subindex::pObject, td_indextable::pSubindex, ptrTable, struct_CO_Data::scanIndexOD, td_subindex::size, UNS32, UNS8, visible_string, and WO.

    Referenced by getODentry(), and readLocalDict().

    @@ -152,7 +169,7 @@

    - + @@ -215,13 +232,9 @@
    Returns:

    -Subindex not found

    -Callbacks

    -TODO : Store dans NVRAM -

    Definition at line 260 of file objacces.c.

    -References accessDictionaryError(), and ptrTable. +References accessDictionaryError(), td_subindex::bAccessType, td_subindex::bDataType, td_indextable::bSubCount, struct_s_timer_entry::d, MSG_WAR, OD_LENGTH_DATA_INVALID, OD_NO_SUCH_SUBINDEX, OD_SUCCESSFUL, OD_WRITE_NOT_ALLOWED, td_subindex::pObject, td_indextable::pSubindex, ptrTable, RO, struct_CO_Data::scanIndexOD, td_subindex::size, struct_CO_Data::storeODSubIndex, TO_BE_SAVE, UNS32, UNS8, struct_CO_Data::valueRangeTest, and visible_string.

    Referenced by setODentry(), and writeLocalDict().

    @@ -327,6 +340,8 @@

    Definition at line 55 of file objacces.c.

    +References MSG_WAR, OD_LENGTH_DATA_INVALID, OD_NO_SUCH_OBJECT, OD_NO_SUCH_SUBINDEX, OD_NOT_MAPPABLE, OD_VALUE_TOO_HIGH, OD_VALUE_TOO_LOW, and OD_WRITE_NOT_ALLOWED. +

    Referenced by _getODentry(), and _setODentry().

    @@ -337,7 +352,7 @@

    - + @@ -402,7 +417,7 @@

    Definition at line 198 of file objacces.c.

    -References _getODentry(). +References _getODentry(), and struct_s_timer_entry::d.

    Referenced by objdictToSDOline(), proceedPDO(), and proceedSYNC().

    @@ -421,7 +436,7 @@

    - + @@ -486,7 +501,7 @@

    Definition at line 229 of file objacces.c.

    -References _getODentry(). +References _getODentry(), and struct_s_timer_entry::d.

    Here is the call graph for this function:

    @@ -503,7 +518,7 @@ - + @@ -521,7 +536,7 @@ - + @@ -547,9 +562,9 @@

    Definition at line 419 of file objacces.c.

    -References scanIndexOD(). -

    -Referenced by heartbeatInit(), and startSYNC(). +References struct_s_timer_entry::d, OD_SUCCESSFUL, scanIndexOD(), and UNS32. +

    +Referenced by heartbeatInit(), InitNodes(), and startSYNC().

    Here is the call graph for this function:

    @@ -563,9 +578,9 @@

    Functions

    UNS8 accessDictionaryError (UNS16 index, UNS8 subIndex, UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code)
    UNS32 _getODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess, UNS8 endianize)
    UNS32 getODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess)
    UNS32 readLocalDict (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess)
    UNS32 _setODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess, UNS8 endianize)
    UNS32 setODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess)
    UNS32 writeLocalDict (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess)
    const indextable * scanIndexOD (CO_Data *d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
    UNS32 RegisterSetODentryCallBack (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
    UNS32 _getODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess, UNS8 endianize)
    UNS32 getODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess)
    UNS32 readLocalDict (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess)
    UNS32 _setODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess, UNS8 endianize)
    UNS32 setODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess)
    UNS32 writeLocalDict (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess)
    const indextablescanIndexOD (CO_Data *d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
    UNS32 RegisterSetODentryCallBack (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
    void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex)
    UNS32 _getODentry (CO_Data * CO_Data d,
    UNS32 _setODentry (CO_Data * CO_Data d,
    UNS32 getODentry (CO_Data * CO_Data d,
    UNS32 readLocalDict (CO_Data * CO_Data d,
    UNS32 RegisterSetODentryCallBack (CO_Data * CO_Data d,
    ODCallback_t ODCallback_t  Callback 
    - - - + + + @@ -583,7 +598,7 @@ - + @@ -609,6 +624,8 @@

    Definition at line 404 of file objacces.c.

    +References struct_s_timer_entry::d, and struct_CO_Data::scanIndexOD. +

    Referenced by RegisterSetODentryCallBack().

    @@ -619,7 +636,7 @@

    - + @@ -677,7 +694,7 @@

    Definition at line 350 of file objacces.c.

    -References _setODentry(). +References _setODentry(), and struct_s_timer_entry::d.

    Referenced by proceedPDO(), and SDOlineToObjdict().

    @@ -696,7 +713,7 @@

    - + @@ -754,7 +771,9 @@

    Definition at line 378 of file objacces.c.

    -References _setODentry(). +References _setODentry(), and struct_s_timer_entry::d. +

    +Referenced by main(), and TestMaster_initialisation().

    Here is the call graph for this function:

    @@ -764,7 +783,7 @@

    -


    Generated on Tue Jun 5 18:32:07 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:12 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8c__incl.map --- a/doc/doxygen/html/objacces_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/objacces_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,16 @@ base referer +rect $objacces_8h.html 172,301 266,325 +rect $win32_2applicfg_8h.html 707,323 795,347 +rect $data_8h.html 316,301 380,325 +rect $def_8h.html 591,448 647,472 +rect $can_8h.html 590,248 648,272 +rect $objdictdef_8h.html 432,107 534,131 +rect $sdo_8h.html 454,547 512,571 +rect $pdo_8h.html 454,397 512,421 +rect $states_8h.html 446,301 520,325 +rect $lifegrd_8h.html 444,349 522,373 +rect $sync_8h.html 450,155 516,179 +rect $nmtMaster_8h.html 430,203 536,227 +rect $config_8h.html 714,448 788,472 +rect $timer_8h.html 584,496 654,520 +rect $win32_2timerscfg_8h.html 702,496 800,520 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8c__incl.md5 --- a/doc/doxygen/html/objacces_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/objacces_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -5aa0a83eb120249fd0868434e859e31c \ No newline at end of file +761d8bbdd5d7cfb41abb5c80bf1b25c5 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8c__incl.png Binary file doc/doxygen/html/objacces_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,163 @@ + + +CanFestival: include/objacces.h Source File + + + + + + + +

    objacces.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00034 #ifndef __objacces_h__
    +00035 #define __objacces_h__
    +00036 
    +00037 #include <applicfg.h>
    +00038 
    +00039 typedef UNS32 (*valueRangeTest_t)(UNS8 typeValue, void *Value);
    +00040 typedef void (* storeODSubIndex_t)(UNS16 wIndex, UNS8 bSubindex);
    +00041 void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex);
    +00042 
    +00043 #include "data.h"
    +00044 
    +00045 
    +00046 
    +00047 /*
    +00048 Print MSG_WAR (s) if error to the access to the object dictionary occurs.
    +00049 You must uncomment the lines
    +00050 //#define DEBUG_CAN
    +00051 //#define DEBUG_WAR_CONSOLE_ON
    +00052 //#define DEBUG_ERR_CONSOLE_ON
    +00053 in the file objaccess.c
    +00054 sizeDataDict : Size of the data defined in the dictionary
    +00055 sizeDataGiven : Size data given by the user.
    +00056 code : error code to print. (SDO abort code. See file def.h)
    +00057 Beware that sometimes, we force the sizeDataDict or sizeDataGiven to 0, when we wants to use
    +00058 this function but we do not have the access to the right value. One example is
    +00059 getSDOerror(). So do not take attention to these variables if they are null.
    +00060 */
    +00061 
    +00062 UNS8 accessDictionaryError(UNS16 index, UNS8 subIndex, 
    +00063                            UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code);
    +00064 
    +00065 
    +00066 /* Reads an entry from the object dictionary.\n
    +00067  *  \code
    +00068  *  // Example usage:
    +00069  *  UNS8  *pbData;
    +00070  *  UNS8 length;
    +00071  *  UNS32 returnValue;
    +00072  *
    +00073  *  returnValue = getODentry( (UNS16)0x100B, (UNS8)1, 
    +00074  *  (void * *)&pbData, (UNS8 *)&length );
    +00075  *  if( returnValue != SUCCESSFUL )
    +00076  *  {
    +00077  *      // error handling
    +00078  *  }
    +00079  *  \endcode 
    +00080  *  \param wIndex The index in the object dictionary where you want to read
    +00081  *                an entry
    +00082  *  \param bSubindex The subindex of the Index. e.g. mostly subindex 0 is
    +00083  *                   used to tell you how many valid entries you can find
    +00084  *                   in this index. Look at the canopen standard for further
    +00085  *                   information
    +00086  *  \param ppbData Pointer to the pointer which points to the variable where
    +00087  *                 the value of this object dictionary entry should be copied
    +00088  *  \param pdwSize This function writes the size of the copied value (in Byte)
    +00089  *                 into this variable.
    +00090  *  \param pDataType : The type of the data. See objdictdef.h
    +00091  *  \param CheckAccess if other than 0, do not read if the data is Write Only
    +00092  *                     [Not used today. Put always 0].
    +00093  *  \return OD_SUCCESSFUL or SDO abort code. (See file def.h)
    +00094  */
    +00095 UNS32 getODentry( CO_Data* d, 
    +00096                   UNS16 wIndex,
    +00097                   UNS8 bSubindex,
    +00098                   void * pDestData,
    +00099                   UNS8 * pExpectedSize,
    +00100                   UNS8 * pDataType,
    +00101                   UNS8 checkAccess);
    +00102 
    +00103 
    +00104 /* By this function you can write an entry into the object dictionary\n
    +00105  *  \code
    +00106  *  // Example usage:
    +00107  *  UNS8 B;
    +00108  *  B = 0xFF; // set transmission type
    +00109  *
    +00110  *  retcode = setODentry( (UNS16)0x1800, (UNS8)2, &B, sizeof(UNS8), 1 );
    +00111  *  \endocde
    +00112  *  \param wIndex The index in the object dictionary where you want to write
    +00113  *                an entry
    +00114  *  \param bSubindex The subindex of the Index. e.g. mostly subindex 0 is
    +00115  *                   used to tell you how many valid entries you can find
    +00116  *                   in this index. Look at the canopen standard for further
    +00117  *                   information
    +00118  *  \param pbData Pointer to the variable that holds the value that should
    +00119  *                 be copied into the object dictionary
    +00120  *  \param dwSize The size of the value (in Byte).
    +00121  *  \param CheckAccess if other than 0, do not read if the data is Read Only or Constant
    +00122  *  \return OD_SUCCESSFUL or SDO abort code. (See file def.h)
    +00123  */
    +00124 UNS32 setODentry( CO_Data* d, 
    +00125                   UNS16 wIndex,
    +00126                   UNS8 bSubindex, 
    +00127                   void * pSourceData, 
    +00128                   UNS8 * pExpectedSize, 
    +00129                   UNS8 checkAccess);
    +00130 
    +00131 /*The same, without endianisation*/
    +00132 UNS32 writeLocalDict( CO_Data* d, 
    +00133                   UNS16 wIndex,
    +00134                   UNS8 bSubindex, 
    +00135                   void * pSourceData, 
    +00136                   UNS8 * pExpectedSize, 
    +00137                   UNS8 checkAccess);
    +00138 
    +00139 
    +00140 /* Scan the index of object dictionary. Used only by setODentry and getODentry.
    +00141  *  *errorCode :  OD_SUCCESSFUL if index foundor SDO abort code. (See file def.h)
    +00142  *  Return NULL if index not found. Else : return the table part of the object dictionary.
    +00143  */
    +00144  const indextable * scanIndexOD (CO_Data* d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback);
    +00145 
    +00146 UNS32 RegisterSetODentryCallBack(CO_Data* d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback);
    +00147 
    +00148 #endif /* __objacces_h__ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,582 @@ + + +CanFestival: include/objacces.h File Reference + + + + + + + +

    objacces.h File Reference

    Responsible for accessing the object dictionary. More... +

    +#include <applicfg.h>
    +#include "data.h"
    + +

    +Include dependency graph for objacces.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + +

    +Go to the source code of this file.

    const indextable* scanIndexOD (CO_Data * const indextable* scanIndexOD (CO_Data d,
    ODCallback_t ** ODCallback_t **  Callback 
    UNS32 setODentry (CO_Data * CO_Data d,
    UNS32 writeLocalDict (CO_Data * CO_Data d,
    + + + + + + + + + + + + + + + + + + + + + +

    Typedefs

    typedef UNS32(*) valueRangeTest_t (UNS8 typeValue, void *Value)
    typedef void(*) storeODSubIndex_t (UNS16 wIndex, UNS8 bSubindex)

    Functions

    void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex)
    UNS8 accessDictionaryError (UNS16 index, UNS8 subIndex, UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code)
    UNS32 getODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pDestData, UNS8 *pExpectedSize, UNS8 *pDataType, UNS8 checkAccess)
    UNS32 setODentry (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess)
    UNS32 writeLocalDict (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, void *pSourceData, UNS8 *pExpectedSize, UNS8 checkAccess)
    const indextablescanIndexOD (CO_Data *d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
    UNS32 RegisterSetODentryCallBack (CO_Data *d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
    +


    Detailed Description

    +Responsible for accessing the object dictionary. +

    +This file contains functions for accessing the object dictionary and variables that are contained by the object dictionary. Accessing the object dictionary contains setting local variables as PDOs and accessing (read/write) all entries of the object dictionary

    Warning:
    Only the basic entries of an object dictionary are included at the moment.
    + +

    +Definition in file objacces.h.


    Typedef Documentation

    + +
    +
    + + + + +
    typedef void(* ) storeODSubIndex_t(UNS16 wIndex, UNS8 bSubindex)
    +
    +
    + +

    + +

    +Definition at line 40 of file objacces.h. +

    +

    + +

    +
    + + + + +
    typedef UNS32(*) valueRangeTest_t(UNS8 typeValue, void *Value)
    +
    +
    + +

    + +

    +Definition at line 39 of file objacces.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void _storeODSubIndex (UNS16  wIndex,
    UNS8  bSubindex 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    wIndex 
    bSubindex 
    +
    + +

    +Definition at line 436 of file objacces.c. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 accessDictionaryError (UNS16  index,
    UNS8  subIndex,
    UNS8  sizeDataDict,
    UNS8  sizeDataGiven,
    UNS32  code 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + +
    index 
    subIndex 
    sizeDataDict 
    sizeDataGiven 
    code 
    +
    +
    Returns:
    + +

    +Definition at line 55 of file objacces.c. +

    +References MSG_WAR, OD_LENGTH_DATA_INVALID, OD_NO_SUCH_OBJECT, OD_NO_SUCH_SUBINDEX, OD_NOT_MAPPABLE, OD_VALUE_TOO_HIGH, OD_VALUE_TOO_LOW, and OD_WRITE_NOT_ALLOWED. +

    +Referenced by _getODentry(), and _setODentry(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS32 getODentry (CO_Data d,
    UNS16  wIndex,
    UNS8  bSubindex,
    void *  pDestData,
    UNS8 *  pExpectedSize,
    UNS8 *  pDataType,
    UNS8  checkAccess 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + + +
    d 
    wIndex 
    bSubindex 
    pDestData 
    pExpectedSize 
    pDataType 
    checkAccess 
    +
    +
    Returns:
    + +

    +Definition at line 198 of file objacces.c. +

    +References _getODentry(), and struct_s_timer_entry::d. +

    +Referenced by objdictToSDOline(), proceedPDO(), and proceedSYNC(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS32 RegisterSetODentryCallBack (CO_Data d,
    UNS16  wIndex,
    UNS8  bSubindex,
    ODCallback_t  Callback 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + +
    d 
    wIndex 
    bSubindex 
    Callback 
    +
    +
    Returns:
    + +

    +Definition at line 419 of file objacces.c. +

    +References struct_s_timer_entry::d, OD_SUCCESSFUL, scanIndexOD(), and UNS32. +

    +Referenced by heartbeatInit(), InitNodes(), and startSYNC(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    const indextable* scanIndexOD (CO_Data d,
    UNS16  wIndex,
    UNS32 *  errorCode,
    ODCallback_t **  Callback 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + +
    d 
    wIndex 
    errorCode 
    Callback 
    +
    +
    Returns:
    + +

    +Definition at line 404 of file objacces.c. +

    +References struct_s_timer_entry::d, and struct_CO_Data::scanIndexOD. +

    +Referenced by RegisterSetODentryCallBack(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS32 setODentry (CO_Data d,
    UNS16  wIndex,
    UNS8  bSubindex,
    void *  pSourceData,
    UNS8 *  pExpectedSize,
    UNS8  checkAccess 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + +
    d 
    wIndex 
    bSubindex 
    pSourceData 
    pExpectedSize 
    checkAccess 
    +
    +
    Returns:
    + +

    +Definition at line 350 of file objacces.c. +

    +References _setODentry(), and struct_s_timer_entry::d. +

    +Referenced by proceedPDO(), and SDOlineToObjdict(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS32 writeLocalDict (CO_Data d,
    UNS16  wIndex,
    UNS8  bSubindex,
    void *  pSourceData,
    UNS8 *  pExpectedSize,
    UNS8  checkAccess 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + +
    d 
    wIndex 
    bSubindex 
    pSourceData 
    pExpectedSize 
    checkAccess 
    +
    +
    Returns:
    + +

    +Definition at line 378 of file objacces.c. +

    +References _setODentry(), and struct_s_timer_entry::d. +

    +Referenced by main(), and TestMaster_initialisation(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:01 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_17e598cc1b2e60380e2e4e75afe9b3b0_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_17e598cc1b2e60380e2e4e75afe9b3b0_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 152,6 259,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 308,6 476,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_17e598cc1b2e60380e2e4e75afe9b3b0_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_17e598cc1b2e60380e2e4e75afe9b3b0_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +93eda75497c77efb2be77afdc40b379b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_17e598cc1b2e60380e2e4e75afe9b3b0_cgraph.png Binary file doc/doxygen/html/objacces_8h_17e598cc1b2e60380e2e4e75afe9b3b0_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_39c263a4bc5d2d824fefe22fdb4c2dac_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_39c263a4bc5d2d824fefe22fdb4c2dac_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 156,6 263,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 313,6 481,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_39c263a4bc5d2d824fefe22fdb4c2dac_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_39c263a4bc5d2d824fefe22fdb4c2dac_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +80281ff93f6b8938e299fb458dc97526 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_39c263a4bc5d2d824fefe22fdb4c2dac_cgraph.png Binary file doc/doxygen/html/objacces_8h_39c263a4bc5d2d824fefe22fdb4c2dac_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_514e7b9c13835a86446b1cd38fa34049_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_514e7b9c13835a86446b1cd38fa34049_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 267,6 379,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_514e7b9c13835a86446b1cd38fa34049_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_514e7b9c13835a86446b1cd38fa34049_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +50a5ad0edf265be219c43988dbe445b3 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_514e7b9c13835a86446b1cd38fa34049_cgraph.png Binary file doc/doxygen/html/objacces_8h_514e7b9c13835a86446b1cd38fa34049_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_7cc58d6e7711bd0d9fd75e8ff721ce36_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_7cc58d6e7711bd0d9fd75e8ff721ce36_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 171,6 277,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 327,6 495,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_7cc58d6e7711bd0d9fd75e8ff721ce36_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h_7cc58d6e7711bd0d9fd75e8ff721ce36_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b1515b0a5eb7ac0f6dac382e7b2f6a16 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h_7cc58d6e7711bd0d9fd75e8ff721ce36_cgraph.png Binary file doc/doxygen/html/objacces_8h_7cc58d6e7711bd0d9fd75e8ff721ce36_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,6 @@ +base referer +rect $dcf_8c.html 224,6 301,30 +rect $objacces_8c.html 204,54 321,78 +rect $pdo_8c.html 221,102 304,126 +rect $sdo_8c.html 223,150 303,174 +rect $data_8h.html 204,198 321,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a751400058d581b8008519d547848691 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h__dep__incl.png Binary file doc/doxygen/html/objacces_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $win32_2applicfg_8h.html 595,323 683,347 +rect $data_8h.html 204,301 268,325 +rect $def_8h.html 479,448 535,472 +rect $can_8h.html 478,248 536,272 +rect $objdictdef_8h.html 320,107 422,131 +rect $sdo_8h.html 342,547 400,571 +rect $pdo_8h.html 342,397 400,421 +rect $states_8h.html 334,301 408,325 +rect $lifegrd_8h.html 332,349 410,373 +rect $sync_8h.html 338,155 404,179 +rect $nmtMaster_8h.html 318,203 424,227 +rect $config_8h.html 602,448 676,472 +rect $timer_8h.html 472,496 542,520 +rect $win32_2timerscfg_8h.html 590,496 688,520 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +dcc935def8e8a1b6065ec840dc63d0b8 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h__incl.png Binary file doc/doxygen/html/objacces_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,284 @@ + + +CanFestival: examples/gene_SYNC_HCS12/objdict.c Source File + + + + + + + +

    objdict.c

    Go to the documentation of this file.
    00001 
    +00002 /* File generated by gen_cfile.py. Should not be modified. */
    +00003 
    +00004 #include "objdict.h"
    +00005 
    +00006 /**************************************************************************/
    +00007 /* Declaration of the mapped variables                                    */
    +00008 /**************************************************************************/
    +00009 UNS16 acceptanceFilter1 = 0x0;          /* Mapped at index 0x2015, subindex 0x00 */
    +00010 UNS16 acceptanceFilter2 = 0x0;          /* Mapped at index 0x2016, subindex 0x00 */
    +00011 UNS16 acceptanceFilter3 = 0x0;          /* Mapped at index 0x2017, subindex 0x00 */
    +00012 UNS16 acceptanceFilter4 = 0x0;          /* Mapped at index 0x2018, subindex 0x00 */
    +00013 UNS16 mask1 = 0x0;              /* Mapped at index 0x2019, subindex 0x00 */
    +00014 UNS16 mask2 = 0x0;              /* Mapped at index 0x2020, subindex 0x00 */
    +00015 UNS16 mask3 = 0x0;              /* Mapped at index 0x2021, subindex 0x00 */
    +00016 UNS16 mask4 = 0x0;              /* Mapped at index 0x2022, subindex 0x00 */
    +00017 UNS8 applyDownloadedFilters = 0x0;              /* Mapped at index 0x2023, subindex 0x00 */
    +00018 
    +00019 /**************************************************************************/
    +00020 /* Declaration of the value range types                                   */
    +00021 /**************************************************************************/
    +00022 
    +00023 UNS32 gene_SYNC_valueRangeTest (UNS8 typeValue, void * value)
    +00024 {
    +00025   switch (typeValue) {
    +00026   }
    +00027   return 0;
    +00028 }
    +00029 
    +00030 /**************************************************************************/
    +00031 /* The node id                                                            */
    +00032 /**************************************************************************/
    +00033 /* node_id default value.*/
    +00034 UNS8 gene_SYNC_bDeviceNodeId = 0x03;
    +00035 
    +00036 /**************************************************************************/
    +00037 /* Array of message processing information */
    +00038 
    +00039 const UNS8 gene_SYNC_iam_a_slave = 1;
    +00040 
    +00041 TIMER_HANDLE gene_SYNC_heartBeatTimers[1];
    +00042 
    +00043 /*
    +00044 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    +00045 
    +00046                                OBJECT DICTIONARY
    +00047 
    +00048 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    +00049 */
    +00050 
    +00051 /* index 0x1000 :   Device Type. */
    +00052                     UNS32 gene_SYNC_obj1000 = 0x0;      /* 0 */
    +00053                     subindex gene_SYNC_Index1000[] = 
    +00054                      {
    +00055                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1000 }
    +00056                      };
    +00057 
    +00058 /* index 0x1001 :   Error Register. */
    +00059                     UNS8 gene_SYNC_obj1001 = 0x0;       /* 0 */
    +00060                     subindex gene_SYNC_Index1001[] = 
    +00061                      {
    +00062                        { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_obj1001 }
    +00063                      };
    +00064 
    +00065 /* index 0x1005 :   SYNC COB ID. */
    +00066                     UNS32 gene_SYNC_obj1005 = 0x40000080;       /* 1073741952 */
    +00067                     ODCallback_t gene_SYNC_Index1005_callbacks[] = 
    +00068                      {
    +00069                        NULL,
    +00070                      };
    +00071                     subindex gene_SYNC_Index1005[] = 
    +00072                      {
    +00073                        { RW, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1005 }
    +00074                      };
    +00075 
    +00076 /* index 0x1006 :   Communication / Cycle Period. */
    +00077                     UNS32 gene_SYNC_obj1006 = 0x2710;   /* 10000 */
    +00078                     ODCallback_t gene_SYNC_Index1006_callbacks[] = 
    +00079                      {
    +00080                        NULL,
    +00081                      };
    +00082                     subindex gene_SYNC_Index1006[] = 
    +00083                      {
    +00084                        { RW, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1006 }
    +00085                      };
    +00086 
    +00087 /* index 0x1008 :   Manufacturer Device Name. */
    +00088                     UNS8 gene_SYNC_obj1008[10] = "GENE_SYNC";
    +00089                     subindex gene_SYNC_Index1008[] = 
    +00090                      {
    +00091                        { RO, visible_string, sizeof (gene_SYNC_obj1008), (void*)&gene_SYNC_obj1008 }
    +00092                      };
    +00093 
    +00094 /* index 0x1016 :   Consumer Heartbeat Time */
    +00095                     UNS8 gene_SYNC_highestSubIndex_obj1016 = 0;
    +00096                     UNS32 gene_SYNC_obj1016[];
    +00097                     subindex gene_SYNC_Index1016[];
    +00098 
    +00099 /* index 0x1017 :   Producer Heartbeat Time */ 
    +00100                     UNS16 gene_SYNC_obj1017 = 0x0;   /* 0 */
    +00101 
    +00102 /* index 0x1018 :   Identity. */
    +00103                     UNS8 gene_SYNC_highestSubIndex_obj1018 = 4; /* number of subindex - 1*/
    +00104                     UNS32 gene_SYNC_obj1018_Vendor_ID = 0x0;    /* 0 */
    +00105                     UNS32 gene_SYNC_obj1018_Product_Code = 0x0; /* 0 */
    +00106                     UNS32 gene_SYNC_obj1018_Revision_Number = 0x0;      /* 0 */
    +00107                     UNS32 gene_SYNC_obj1018_Serial_Number = 0x0;        /* 0 */
    +00108                     subindex gene_SYNC_Index1018[] = 
    +00109                      {
    +00110                        { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_highestSubIndex_obj1018 },
    +00111                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Vendor_ID },
    +00112                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Product_Code },
    +00113                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Revision_Number },
    +00114                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Serial_Number }
    +00115                      };
    +00116 
    +00117 /* index 0x1200 :   Server SDO Parameter. */
    +00118                     UNS8 gene_SYNC_highestSubIndex_obj1200 = 2; /* number of subindex - 1*/
    +00119                     UNS32 gene_SYNC_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x0;  /* 0 */
    +00120                     UNS32 gene_SYNC_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x0; /* 0 */
    +00121                     subindex gene_SYNC_Index1200[] = 
    +00122                      {
    +00123                        { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_highestSubIndex_obj1200 },
    +00124                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1200_COB_ID_Client_to_Server_Receive_SDO },
    +00125                        { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1200_COB_ID_Server_to_Client_Transmit_SDO }
    +00126                      };
    +00127 
    +00128 /* index 0x2015 :   Mapped variable acceptanceFilter1 */
    +00129                     subindex gene_SYNC_Index2015[] = 
    +00130                      {
    +00131                        { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter1 }
    +00132                      };
    +00133 
    +00134 /* index 0x2016 :   Mapped variable acceptanceFilter2 */
    +00135                     subindex gene_SYNC_Index2016[] = 
    +00136                      {
    +00137                        { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter2 }
    +00138                      };
    +00139 
    +00140 /* index 0x2017 :   Mapped variable acceptanceFilter3 */
    +00141                     subindex gene_SYNC_Index2017[] = 
    +00142                      {
    +00143                        { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter3 }
    +00144                      };
    +00145 
    +00146 /* index 0x2018 :   Mapped variable acceptanceFilter4 */
    +00147                     subindex gene_SYNC_Index2018[] = 
    +00148                      {
    +00149                        { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter4 }
    +00150                      };
    +00151 
    +00152 /* index 0x2019 :   Mapped variable mask1 */
    +00153                     subindex gene_SYNC_Index2019[] = 
    +00154                      {
    +00155                        { RW, uint16, sizeof (UNS16), (void*)&mask1 }
    +00156                      };
    +00157 
    +00158 /* index 0x2020 :   Mapped variable mask2 */
    +00159                     subindex gene_SYNC_Index2020[] = 
    +00160                      {
    +00161                        { RW, uint16, sizeof (UNS16), (void*)&mask2 }
    +00162                      };
    +00163 
    +00164 /* index 0x2021 :   Mapped variable mask3 */
    +00165                     subindex gene_SYNC_Index2021[] = 
    +00166                      {
    +00167                        { RW, uint16, sizeof (UNS16), (void*)&mask3 }
    +00168                      };
    +00169 
    +00170 /* index 0x2022 :   Mapped variable mask4 */
    +00171                     subindex gene_SYNC_Index2022[] = 
    +00172                      {
    +00173                        { RW, uint16, sizeof (UNS16), (void*)&mask4 }
    +00174                      };
    +00175 
    +00176 /* index 0x2023 :   Mapped variable applyDownloadedFilters */
    +00177                     subindex gene_SYNC_Index2023[] = 
    +00178                      {
    +00179                        { RW, uint8, sizeof (UNS8), (void*)&applyDownloadedFilters }
    +00180                      };
    +00181 
    +00182 const indextable gene_SYNC_objdict[] = 
    +00183 {
    +00184   { (subindex*)gene_SYNC_Index1000,sizeof(gene_SYNC_Index1000)/sizeof(gene_SYNC_Index1000[0]), 0x1000},
    +00185   { (subindex*)gene_SYNC_Index1001,sizeof(gene_SYNC_Index1001)/sizeof(gene_SYNC_Index1001[0]), 0x1001},
    +00186   { (subindex*)gene_SYNC_Index1005,sizeof(gene_SYNC_Index1005)/sizeof(gene_SYNC_Index1005[0]), 0x1005},
    +00187   { (subindex*)gene_SYNC_Index1006,sizeof(gene_SYNC_Index1006)/sizeof(gene_SYNC_Index1006[0]), 0x1006},
    +00188   { (subindex*)gene_SYNC_Index1008,sizeof(gene_SYNC_Index1008)/sizeof(gene_SYNC_Index1008[0]), 0x1008},
    +00189   { (subindex*)gene_SYNC_Index1018,sizeof(gene_SYNC_Index1018)/sizeof(gene_SYNC_Index1018[0]), 0x1018},
    +00190   { (subindex*)gene_SYNC_Index1200,sizeof(gene_SYNC_Index1200)/sizeof(gene_SYNC_Index1200[0]), 0x1200},
    +00191   { (subindex*)gene_SYNC_Index2015,sizeof(gene_SYNC_Index2015)/sizeof(gene_SYNC_Index2015[0]), 0x2015},
    +00192   { (subindex*)gene_SYNC_Index2016,sizeof(gene_SYNC_Index2016)/sizeof(gene_SYNC_Index2016[0]), 0x2016},
    +00193   { (subindex*)gene_SYNC_Index2017,sizeof(gene_SYNC_Index2017)/sizeof(gene_SYNC_Index2017[0]), 0x2017},
    +00194   { (subindex*)gene_SYNC_Index2018,sizeof(gene_SYNC_Index2018)/sizeof(gene_SYNC_Index2018[0]), 0x2018},
    +00195   { (subindex*)gene_SYNC_Index2019,sizeof(gene_SYNC_Index2019)/sizeof(gene_SYNC_Index2019[0]), 0x2019},
    +00196   { (subindex*)gene_SYNC_Index2020,sizeof(gene_SYNC_Index2020)/sizeof(gene_SYNC_Index2020[0]), 0x2020},
    +00197   { (subindex*)gene_SYNC_Index2021,sizeof(gene_SYNC_Index2021)/sizeof(gene_SYNC_Index2021[0]), 0x2021},
    +00198   { (subindex*)gene_SYNC_Index2022,sizeof(gene_SYNC_Index2022)/sizeof(gene_SYNC_Index2022[0]), 0x2022},
    +00199   { (subindex*)gene_SYNC_Index2023,sizeof(gene_SYNC_Index2023)/sizeof(gene_SYNC_Index2023[0]), 0x2023},
    +00200 };
    +00201 
    +00202 const indextable * gene_SYNC_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
    +00203 {
    +00204         int i;
    +00205         *callbacks = NULL;
    +00206         switch(wIndex){
    +00207                 case 0x1000: i = 0;break;
    +00208                 case 0x1001: i = 1;break;
    +00209                 case 0x1005: i = 2;*callbacks = gene_SYNC_Index1005_callbacks; break;
    +00210                 case 0x1006: i = 3;*callbacks = gene_SYNC_Index1006_callbacks; break;
    +00211                 case 0x1008: i = 4;break;
    +00212                 case 0x1018: i = 5;break;
    +00213                 case 0x1200: i = 6;break;
    +00214                 case 0x2015: i = 7;break;
    +00215                 case 0x2016: i = 8;break;
    +00216                 case 0x2017: i = 9;break;
    +00217                 case 0x2018: i = 10;break;
    +00218                 case 0x2019: i = 11;break;
    +00219                 case 0x2020: i = 12;break;
    +00220                 case 0x2021: i = 13;break;
    +00221                 case 0x2022: i = 14;break;
    +00222                 case 0x2023: i = 15;break;
    +00223                 default:
    +00224                         *errorCode = OD_NO_SUCH_OBJECT;
    +00225                         return NULL;
    +00226         }
    +00227         *errorCode = OD_SUCCESSFUL;
    +00228         return &gene_SYNC_objdict[i];
    +00229 }
    +00230 
    +00231 /* To count at which received SYNC a PDO must be sent.
    +00232  * Even if no pdoTransmit are defined, at least one entry is computed
    +00233  * for compilations issues.
    +00234  */
    +00235 UNS8 gene_SYNC_count_sync[1] = {0,};
    +00236 
    +00237 quick_index gene_SYNC_firstIndex = {
    +00238   6, /* SDO_SVR */
    +00239   0, /* SDO_CLT */
    +00240   0, /* PDO_RCV */
    +00241   0, /* PDO_RCV_MAP */
    +00242   0, /* PDO_TRS */
    +00243   0 /* PDO_TRS_MAP */
    +00244 };
    +00245 
    +00246 quick_index gene_SYNC_lastIndex = {
    +00247   6, /* SDO_SVR */
    +00248   0, /* SDO_CLT */
    +00249   0, /* PDO_RCV */
    +00250   0, /* PDO_RCV_MAP */
    +00251   0, /* PDO_TRS */
    +00252   0 /* PDO_TRS_MAP */
    +00253 };
    +00254 
    +00255 UNS16 gene_SYNC_ObjdictSize = sizeof(gene_SYNC_objdict)/sizeof(gene_SYNC_objdict[0]); 
    +00256 
    +00257 CO_Data gene_SYNC_Data = CANOPEN_NODE_DATA_INITIALIZER(gene_SYNC);
    +00258 
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1274 @@ + + +CanFestival: examples/gene_SYNC_HCS12/objdict.c File Reference + + + + + + + +

    objdict.c File Reference

    #include "objdict.h"
    + +

    +Include dependency graph for objdict.c:

    + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    UNS32 gene_SYNC_valueRangeTest (UNS8 typeValue, void *value)
    const indextablegene_SYNC_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

    Variables

    UNS16 acceptanceFilter1 = 0x0
    UNS16 acceptanceFilter2 = 0x0
    UNS16 acceptanceFilter3 = 0x0
    UNS16 acceptanceFilter4 = 0x0
    UNS16 mask1 = 0x0
    UNS16 mask2 = 0x0
    UNS16 mask3 = 0x0
    UNS16 mask4 = 0x0
    UNS8 applyDownloadedFilters = 0x0
    UNS8 gene_SYNC_bDeviceNodeId = 0x03
    const UNS8 gene_SYNC_iam_a_slave = 1
    TIMER_HANDLE gene_SYNC_heartBeatTimers [1]
    UNS32 gene_SYNC_obj1000 = 0x0
    subindex gene_SYNC_Index1000 []
    UNS8 gene_SYNC_obj1001 = 0x0
    subindex gene_SYNC_Index1001 []
    UNS32 gene_SYNC_obj1005 = 0x40000080
    ODCallback_t gene_SYNC_Index1005_callbacks []
    subindex gene_SYNC_Index1005 []
    UNS32 gene_SYNC_obj1006 = 0x2710
    ODCallback_t gene_SYNC_Index1006_callbacks []
    subindex gene_SYNC_Index1006 []
    UNS8 gene_SYNC_obj1008 [10] = "GENE_SYNC"
    subindex gene_SYNC_Index1008 []
    UNS8 gene_SYNC_highestSubIndex_obj1016 = 0
    UNS32 gene_SYNC_obj1016 []
    subindex gene_SYNC_Index1016 []
    UNS16 gene_SYNC_obj1017 = 0x0
    UNS8 gene_SYNC_highestSubIndex_obj1018 = 4
    UNS32 gene_SYNC_obj1018_Vendor_ID = 0x0
    UNS32 gene_SYNC_obj1018_Product_Code = 0x0
    UNS32 gene_SYNC_obj1018_Revision_Number = 0x0
    UNS32 gene_SYNC_obj1018_Serial_Number = 0x0
    subindex gene_SYNC_Index1018 []
    UNS8 gene_SYNC_highestSubIndex_obj1200 = 2
    UNS32 gene_SYNC_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x0
    UNS32 gene_SYNC_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x0
    subindex gene_SYNC_Index1200 []
    subindex gene_SYNC_Index2015 []
    subindex gene_SYNC_Index2016 []
    subindex gene_SYNC_Index2017 []
    subindex gene_SYNC_Index2018 []
    subindex gene_SYNC_Index2019 []
    subindex gene_SYNC_Index2020 []
    subindex gene_SYNC_Index2021 []
    subindex gene_SYNC_Index2022 []
    subindex gene_SYNC_Index2023 []
    const indextable gene_SYNC_objdict []
    UNS8 gene_SYNC_count_sync [1] = {0,}
    quick_index gene_SYNC_firstIndex
    quick_index gene_SYNC_lastIndex
    UNS16 gene_SYNC_ObjdictSize = sizeof(gene_SYNC_objdict)/sizeof(gene_SYNC_objdict[0])
    CO_Data gene_SYNC_Data = CANOPEN_NODE_DATA_INITIALIZER(gene_SYNC)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    const indextable* gene_SYNC_scanIndexOD (UNS16  wIndex,
    UNS32 *  errorCode,
    ODCallback_t **  callbacks 
    )
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS32 gene_SYNC_valueRangeTest (UNS8  typeValue,
    void *  value 
    )
    +
    +
    + +

    + +

    +Definition at line 23 of file objdict.c. +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    UNS16 acceptanceFilter1 = 0x0
    +
    +
    + +

    + +

    +Definition at line 9 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 acceptanceFilter2 = 0x0
    +
    +
    + +

    + +

    +Definition at line 10 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 acceptanceFilter3 = 0x0
    +
    +
    + +

    + +

    +Definition at line 11 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 acceptanceFilter4 = 0x0
    +
    +
    + +

    + +

    +Definition at line 12 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS8 applyDownloadedFilters = 0x0
    +
    +
    + +

    + +

    +Definition at line 17 of file objdict.c. +

    +Referenced by gene_SYNC_operational(), and gene_SYNC_preOperational(). +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_bDeviceNodeId = 0x03
    +
    +
    + +

    + +

    +Definition at line 34 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_count_sync[1] = {0,}
    +
    +
    + +

    + +

    +Definition at line 235 of file objdict.c. +

    +

    + +

    +
    + + + + +
    CO_Data gene_SYNC_Data = CANOPEN_NODE_DATA_INITIALIZER(gene_SYNC)
    +
    +
    + +

    + +

    +Definition at line 257 of file objdict.c. +

    +Referenced by initSensor(), and main(). +

    +

    + +

    + +
    + +

    +Initial value:

     {
    +  6, 
    +  0, 
    +  0, 
    +  0, 
    +  0, 
    +  0 
    +}
    +
    +

    +Definition at line 237 of file objdict.c. +

    +

    + +

    +
    + + + + +
    TIMER_HANDLE gene_SYNC_heartBeatTimers[1]
    +
    +
    + +

    + +

    +Definition at line 41 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_highestSubIndex_obj1016 = 0
    +
    +
    + +

    + +

    +Definition at line 95 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_highestSubIndex_obj1018 = 4
    +
    +
    + +

    + +

    +Definition at line 103 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_highestSubIndex_obj1200 = 2
    +
    +
    + +

    + +

    +Definition at line 118 of file objdict.c. +

    +

    + +

    +
    + + + + +
    const UNS8 gene_SYNC_iam_a_slave = 1
    +
    +
    + +

    + +

    +Definition at line 39 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1000 }
    +                     }
    +
    +

    +Definition at line 53 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_obj1001 }
    +                     }
    +
    +

    +Definition at line 60 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1005 }
    +                     }
    +
    +

    +Definition at line 71 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       NULL,
    +                     }
    +
    +

    +Definition at line 67 of file objdict.c. +

    +Referenced by gene_SYNC_scanIndexOD(). +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1006 }
    +                     }
    +
    +

    +Definition at line 82 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       NULL,
    +                     }
    +
    +

    +Definition at line 78 of file objdict.c. +

    +Referenced by gene_SYNC_scanIndexOD(). +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, visible_string, sizeof (gene_SYNC_obj1008), (void*)&gene_SYNC_obj1008 }
    +                     }
    +
    +

    +Definition at line 89 of file objdict.c. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 97 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_highestSubIndex_obj1018 },
    +                       { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Vendor_ID },
    +                       { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Product_Code },
    +                       { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Revision_Number },
    +                       { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Serial_Number }
    +                     }
    +
    +

    +Definition at line 108 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

    +

    +Definition at line 121 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter1 }
    +                     }
    +
    +

    +Definition at line 129 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter2 }
    +                     }
    +
    +

    +Definition at line 135 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter3 }
    +                     }
    +
    +

    +Definition at line 141 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter4 }
    +                     }
    +
    +

    +Definition at line 147 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&mask1 }
    +                     }
    +
    +

    +Definition at line 153 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&mask2 }
    +                     }
    +
    +

    +Definition at line 159 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&mask3 }
    +                     }
    +
    +

    +Definition at line 165 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint16, sizeof (UNS16), (void*)&mask4 }
    +                     }
    +
    +

    +Definition at line 171 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint8, sizeof (UNS8), (void*)&applyDownloadedFilters }
    +                     }
    +
    +

    +Definition at line 177 of file objdict.c. +

    +

    + +

    + +
    + +

    +Initial value:

     {
    +  6, 
    +  0, 
    +  0, 
    +  0, 
    +  0, 
    +  0 
    +}
    +
    +

    +Definition at line 246 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1000 = 0x0
    +
    +
    + +

    + +

    +Definition at line 52 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_obj1001 = 0x0
    +
    +
    + +

    + +

    +Definition at line 59 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1005 = 0x40000080
    +
    +
    + +

    + +

    +Definition at line 66 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1006 = 0x2710
    +
    +
    + +

    + +

    +Definition at line 77 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS8 gene_SYNC_obj1008[10] = "GENE_SYNC"
    +
    +
    + +

    + +

    +Definition at line 88 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1016[]
    +
    +
    + +

    + +

    +Definition at line 96 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS16 gene_SYNC_obj1017 = 0x0
    +
    +
    + +

    + +

    +Definition at line 100 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1018_Product_Code = 0x0
    +
    +
    + +

    + +

    +Definition at line 105 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1018_Revision_Number = 0x0
    +
    +
    + +

    + +

    +Definition at line 106 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1018_Serial_Number = 0x0
    +
    +
    + +

    + +

    +Definition at line 107 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS32 gene_SYNC_obj1018_Vendor_ID = 0x0
    +
    +
    + +

    + +

    +Definition at line 104 of file objdict.c. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 119 of file objdict.c. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 120 of file objdict.c. +

    +

    + +

    +
    + + + + +
    const indextable gene_SYNC_objdict[]
    +
    +
    + +

    +Initial value:

     
    +{
    +  { (subindex*)gene_SYNC_Index1000,sizeof(gene_SYNC_Index1000)/sizeof(gene_SYNC_Index1000[0]), 0x1000},
    +  { (subindex*)gene_SYNC_Index1001,sizeof(gene_SYNC_Index1001)/sizeof(gene_SYNC_Index1001[0]), 0x1001},
    +  { (subindex*)gene_SYNC_Index1005,sizeof(gene_SYNC_Index1005)/sizeof(gene_SYNC_Index1005[0]), 0x1005},
    +  { (subindex*)gene_SYNC_Index1006,sizeof(gene_SYNC_Index1006)/sizeof(gene_SYNC_Index1006[0]), 0x1006},
    +  { (subindex*)gene_SYNC_Index1008,sizeof(gene_SYNC_Index1008)/sizeof(gene_SYNC_Index1008[0]), 0x1008},
    +  { (subindex*)gene_SYNC_Index1018,sizeof(gene_SYNC_Index1018)/sizeof(gene_SYNC_Index1018[0]), 0x1018},
    +  { (subindex*)gene_SYNC_Index1200,sizeof(gene_SYNC_Index1200)/sizeof(gene_SYNC_Index1200[0]), 0x1200},
    +  { (subindex*)gene_SYNC_Index2015,sizeof(gene_SYNC_Index2015)/sizeof(gene_SYNC_Index2015[0]), 0x2015},
    +  { (subindex*)gene_SYNC_Index2016,sizeof(gene_SYNC_Index2016)/sizeof(gene_SYNC_Index2016[0]), 0x2016},
    +  { (subindex*)gene_SYNC_Index2017,sizeof(gene_SYNC_Index2017)/sizeof(gene_SYNC_Index2017[0]), 0x2017},
    +  { (subindex*)gene_SYNC_Index2018,sizeof(gene_SYNC_Index2018)/sizeof(gene_SYNC_Index2018[0]), 0x2018},
    +  { (subindex*)gene_SYNC_Index2019,sizeof(gene_SYNC_Index2019)/sizeof(gene_SYNC_Index2019[0]), 0x2019},
    +  { (subindex*)gene_SYNC_Index2020,sizeof(gene_SYNC_Index2020)/sizeof(gene_SYNC_Index2020[0]), 0x2020},
    +  { (subindex*)gene_SYNC_Index2021,sizeof(gene_SYNC_Index2021)/sizeof(gene_SYNC_Index2021[0]), 0x2021},
    +  { (subindex*)gene_SYNC_Index2022,sizeof(gene_SYNC_Index2022)/sizeof(gene_SYNC_Index2022[0]), 0x2022},
    +  { (subindex*)gene_SYNC_Index2023,sizeof(gene_SYNC_Index2023)/sizeof(gene_SYNC_Index2023[0]), 0x2023},
    +}
    +
    +

    +Definition at line 182 of file objdict.c. +

    +Referenced by gene_SYNC_scanIndexOD(). +

    +

    + +

    +
    + + + + +
    UNS16 gene_SYNC_ObjdictSize = sizeof(gene_SYNC_objdict)/sizeof(gene_SYNC_objdict[0])
    +
    +
    + +

    + +

    +Definition at line 255 of file objdict.c. +

    +

    + +

    +
    + + + + +
    UNS16 mask1 = 0x0
    +
    +
    + +

    + +

    +Definition at line 13 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 mask2 = 0x0
    +
    +
    + +

    + +

    +Definition at line 14 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 mask3 = 0x0
    +
    +
    + +

    + +

    +Definition at line 15 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 mask4 = 0x0
    +
    +
    + +

    + +

    +Definition at line 16 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    +


    Generated on Fri Jun 8 08:51:46 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $objdict_8h.html 337,299 417,323 +rect $data_8h.html 468,299 532,323 +rect $win32_2applicfg_8h.html 737,251 825,275 +rect $def_8h.html 753,32 809,56 +rect $can_8h.html 605,203 664,227 +rect $objdictdef_8h.html 584,155 685,179 +rect $objacces_8h.html 588,299 681,323 +rect $sdo_8h.html 605,251 664,275 +rect $pdo_8h.html 605,56 664,80 +rect $states_8h.html 597,395 672,419 +rect $lifegrd_8h.html 596,347 673,371 +rect $sync_8h.html 601,443 668,467 +rect $nmtMaster_8h.html 581,491 688,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1a0dbd0d942cf4ff836c759b737578c2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8c__incl.png Binary file doc/doxygen/html/objdict_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,60 @@ + + +CanFestival: examples/gene_SYNC_HCS12/objdict.h Source File + + + + + + + +

    objdict.h

    Go to the documentation of this file.
    00001 
    +00002 /* File generated by gen_cfile.py. Should not be modified. */
    +00003 
    +00004 #include "data.h"
    +00005 
    +00006 /* Prototypes of function provided by object dictionnary */
    +00007 UNS32 gene_SYNC_valueRangeTest (UNS8 typeValue, void * value);
    +00008 const indextable * gene_SYNC_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks);
    +00009 
    +00010 /* prototypes of function to be filled by app. */
    +00011 void gene_SYNC_heartbeatError(UNS8);
    +00012 
    +00013 UNS8 gene_SYNC_canSend(Message *);
    +00014 
    +00015 void gene_SYNC_initialisation(void);
    +00016 void gene_SYNC_preOperational(void);
    +00017 void gene_SYNC_operational(void);
    +00018 void gene_SYNC_stopped(void);
    +00019 
    +00020 void gene_SYNC_post_sync(void);
    +00021 void gene_SYNC_post_TPDO(void);
    +00022 
    +00023 /* Master node data struct */
    +00024 extern CO_Data gene_SYNC_Data;
    +00025 
    +00026 extern UNS16 acceptanceFilter1;         /* Mapped at index 0x2015, subindex 0x00*/
    +00027 extern UNS16 acceptanceFilter2;         /* Mapped at index 0x2016, subindex 0x00*/
    +00028 extern UNS16 acceptanceFilter3;         /* Mapped at index 0x2017, subindex 0x00*/
    +00029 extern UNS16 acceptanceFilter4;         /* Mapped at index 0x2018, subindex 0x00*/
    +00030 extern UNS16 mask1;             /* Mapped at index 0x2019, subindex 0x00*/
    +00031 extern UNS16 mask2;             /* Mapped at index 0x2020, subindex 0x00*/
    +00032 extern UNS16 mask3;             /* Mapped at index 0x2021, subindex 0x00*/
    +00033 extern UNS16 mask4;             /* Mapped at index 0x2022, subindex 0x00*/
    +00034 extern UNS8 applyDownloadedFilters;             /* Mapped at index 0x2023, subindex 0x00*/
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,598 @@ + + +CanFestival: examples/gene_SYNC_HCS12/objdict.h File Reference + + + + + + + +

    objdict.h File Reference

    #include "data.h"
    + +

    +Include dependency graph for objdict.h:

    + + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    UNS32 gene_SYNC_valueRangeTest (UNS8 typeValue, void *value)
    const indextablegene_SYNC_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)
    void gene_SYNC_heartbeatError (UNS8)
    UNS8 gene_SYNC_canSend (Message *)
    void gene_SYNC_initialisation (void)
    void gene_SYNC_preOperational (void)
    void gene_SYNC_operational (void)
    void gene_SYNC_stopped (void)
    void gene_SYNC_post_sync (void)
    void gene_SYNC_post_TPDO (void)

    Variables

    CO_Data gene_SYNC_Data
    UNS16 acceptanceFilter1
    UNS16 acceptanceFilter2
    UNS16 acceptanceFilter3
    UNS16 acceptanceFilter4
    UNS16 mask1
    UNS16 mask2
    UNS16 mask3
    UNS16 mask4
    UNS8 applyDownloadedFilters
    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    UNS8 gene_SYNC_canSend (Message  ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_heartbeatError (UNS8   ) 
    +
    +
    + +

    + +

    +Definition at line 265 of file appli.c. +

    +References MSG_ERR. +

    +Referenced by main(). +

    +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_initialisation (void   ) 
    +
    +
    + +

    + +

    +Definition at line 272 of file appli.c. +

    +References initSensor(), IO_PORTS_8, MSG_WAR, and PORTB. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_operational (void   ) 
    +
    +
    + +

    + +

    +Definition at line 314 of file appli.c. +

    +References acceptanceFilter1, acceptanceFilter2, acceptanceFilter3, acceptanceFilter4, applyDownloadedFilters, canChangeFilter(), CANOPEN_LINE_NUMBER_USED, IO_PORTS_8, mask1, mask2, mask3, mask4, MSG_WAR, PORTB, UNS16, and UNS8. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_post_sync (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_post_TPDO (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_preOperational (void   ) 
    +
    +
    + +

    + +

    +Definition at line 284 of file appli.c. +

    +References applyDownloadedFilters, canChangeFilter(), CANOPEN_LINE_NUMBER_USED, IO_PORTS_8, MSG_WAR, and PORTB. +

    +Referenced by main(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    const indextable* gene_SYNC_scanIndexOD (UNS16  wIndex,
    UNS32 *  errorCode,
    ODCallback_t **  callbacks 
    )
    +
    + +

    + +

    +
    + + + + + + + + + +
    void gene_SYNC_stopped (void   ) 
    +
    +
    + +

    + +

    +Definition at line 368 of file appli.c. +

    +References IO_PORTS_8, MSG_WAR, and PORTB. +

    +Referenced by main(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS32 gene_SYNC_valueRangeTest (UNS8  typeValue,
    void *  value 
    )
    +
    +
    + +

    + +

    +Definition at line 23 of file objdict.c. +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    UNS16 acceptanceFilter1
    +
    +
    + +

    + +

    +Definition at line 9 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 acceptanceFilter2
    +
    +
    + +

    + +

    +Definition at line 10 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 acceptanceFilter3
    +
    +
    + +

    + +

    +Definition at line 11 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 acceptanceFilter4
    +
    +
    + +

    + +

    +Definition at line 12 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS8 applyDownloadedFilters
    +
    +
    + +

    + +

    +Definition at line 17 of file objdict.c. +

    +Referenced by gene_SYNC_operational(), and gene_SYNC_preOperational(). +

    +

    + +

    +
    + + + + +
    CO_Data gene_SYNC_Data
    +
    +
    + +

    + +

    +Definition at line 257 of file objdict.c. +

    +Referenced by initSensor(), and main(). +

    +

    + +

    +
    + + + + +
    UNS16 mask1
    +
    +
    + +

    + +

    +Definition at line 13 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 mask2
    +
    +
    + +

    + +

    +Definition at line 14 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 mask3
    +
    +
    + +

    + +

    +Definition at line 15 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    + +

    +
    + + + + +
    UNS16 mask4
    +
    +
    + +

    + +

    +Definition at line 16 of file objdict.c. +

    +Referenced by gene_SYNC_operational(). +

    +

    +


    Generated on Fri Jun 8 08:51:47 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_0c4a1f975f361d0a6f744c3254743594_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h_0c4a1f975f361d0a6f744c3254743594_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $canOpenDriver_8c.html#751a41c9747b96ab400b5599370cea83 239,152 370,176 +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 435,5 536,29 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 610,104 740,128 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 434,104 538,128 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 428,152 543,176 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 422,200 550,224 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 426,296 546,320 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 420,248 551,272 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 602,272 748,296 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_0c4a1f975f361d0a6f744c3254743594_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h_0c4a1f975f361d0a6f744c3254743594_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +043b00f6839442aa3685c7bbfcba511c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_0c4a1f975f361d0a6f744c3254743594_cgraph.png Binary file doc/doxygen/html/objdict_8h_0c4a1f975f361d0a6f744c3254743594_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_398570bf126805099a8b551500c34f40_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h_398570bf126805099a8b551500c34f40_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $canOpenDriver_8c.html#751a41c9747b96ab400b5599370cea83 263,152 394,176 +rect $canOpenDriver_8c.html#b4502eef7616b25c74b1ac5a2245b085 459,5 560,29 +rect $canOpenDriver_8c.html#6beefe951b3c9de786c585257488fa82 634,104 764,128 +rect $canOpenDriver_8c.html#0b98e4800c82d99981833aa4207f1eb9 458,104 562,128 +rect $canOpenDriver_8c.html#00ffb46abacfdfa56ebc70e15164113e 452,152 567,176 +rect $canOpenDriver_8c.html#5ad8616a3276f7f40149b551f09aa6a1 446,200 574,224 +rect $canOpenDriver_8c.html#c7773223579ec7e0fab5238df214da89 450,296 570,320 +rect $canOpenDriver_8c.html#a89f28005eea54f5b216eb72a18d45f3 444,248 575,272 +rect $canOpenDriver_8c.html#fa79f2ac95a8143c2fb087260df39820 626,272 772,296 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_398570bf126805099a8b551500c34f40_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h_398570bf126805099a8b551500c34f40_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7939b39099479462cdb3fa89e358295e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_398570bf126805099a8b551500c34f40_cgraph.png Binary file doc/doxygen/html/objdict_8h_398570bf126805099a8b551500c34f40_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_7b7bf51feb35fc1d708cf5cde9f1f5a7_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h_7b7bf51feb35fc1d708cf5cde9f1f5a7_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,13 @@ +base referer +rect $appli_8c.html#ff8c2bab7ede63d3529f62b4fa3aca8c 243,174 333,198 +rect $can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57 395,6 461,30 +rect $states_8c.html#3020f2e5762f6e389a21382ec827b6a6 383,54 473,78 +rect $canOpenDriver_8c.html#c71399958d35a7f703416f025603ee26 384,102 472,126 +rect $appli_8c.html#c17a18fa3b7965bf6e850effaba7179a 388,150 468,174 +rect $appli_8c.html#b7c33a91e5101b8d7371482fcfd6111d 388,198 468,222 +rect $canOpenDriver_8c.html#02922529b60419a94afe8f369dda070b 387,246 469,270 +rect $states_8c.html#d47a53979b9311a374d029f7923abbe1 383,294 473,318 +rect $interrupt_8c.html#987ce601d6d4c8eedd68b58db3b7811a 395,342 461,366 +rect $can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32 524,6 681,30 +rect $canOpenDriver_8c.html#51e71c727eb7a49e2fde962a3d190a6b 569,102 636,126 +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 564,342 641,366 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_7b7bf51feb35fc1d708cf5cde9f1f5a7_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h_7b7bf51feb35fc1d708cf5cde9f1f5a7_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eed662c703e4c65a37eba8b54fd71ae4 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h_7b7bf51feb35fc1d708cf5cde9f1f5a7_cgraph.png Binary file doc/doxygen/html/objdict_8h_7b7bf51feb35fc1d708cf5cde9f1f5a7_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $appli_8c.html 346,6 615,30 +rect $objdict_8c.html 339,54 622,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +663b41dd73f1ebba0199bb2363b9b962 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h__dep__incl.png Binary file doc/doxygen/html/objdict_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $data_8h.html 340,301 404,325 +rect $win32_2applicfg_8h.html 731,276 819,300 +rect $def_8h.html 615,13 671,37 +rect $can_8h.html 614,251 672,275 +rect $objdictdef_8h.html 456,152 558,176 +rect $objacces_8h.html 460,349 554,373 +rect $sdo_8h.html 478,397 536,421 +rect $pdo_8h.html 478,56 536,80 +rect $states_8h.html 470,104 544,128 +rect $lifegrd_8h.html 468,301 546,325 +rect $sync_8h.html 474,445 540,469 +rect $nmtMaster_8h.html 454,493 560,517 +rect $config_8h.html 738,13 812,37 +rect $timer_8h.html 608,400 678,424 +rect $win32_2timerscfg_8h.html 726,368 824,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdict_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +cb322acffda18b7fa6d47ebb0eb273d1 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdict_8h__incl.png Binary file doc/doxygen/html/objdict_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdictdef_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdictdef_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,144 @@ + + +CanFestival: include/objdictdef.h Source File + + + + + + + +

    objdictdef.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __objdictdef_h__
    +00024 #define __objdictdef_h__
    +00025 
    +00026 /************************* CONSTANTES **********************************/
    +00032 #define boolean         0x01
    +00033 #define int8            0x02
    +00034 #define int16           0x03
    +00035 #define int32           0x04
    +00036 #define uint8           0x05
    +00037 #define uint16          0x06
    +00038 #define uint32          0x07
    +00039 #define real32          0x08
    +00040 #define visible_string  0x09
    +00041 #define octet_string    0x0A
    +00042 #define unicode_string  0x0B
    +00043 #define time_of_day     0x0C
    +00044 #define time_difference 0x0D
    +00045 
    +00046 #define domain          0x0F
    +00047 #define int24           0x10
    +00048 #define real64          0x11
    +00049 #define int40           0x12
    +00050 #define int48           0x13
    +00051 #define int56           0x14
    +00052 #define int64           0x15
    +00053 #define uint24          0x16
    +00054 
    +00055 #define uint40          0x18
    +00056 #define uint48          0x19
    +00057 #define uint56          0x1A
    +00058 #define uint64          0x1B
    +00059 
    +00060 #define pdo_communication_parameter 0x20
    +00061 #define pdo_mapping                 0x21
    +00062 #define sdo_parameter               0x22
    +00063 #define identity                    0x23
    +00064 
    +00065 /* CanFestival is using 0x24 to 0xFF to define some types containing a 
    +00066  value range (See how it works in objdict.c)
    +00067  */
    +00068 
    +00069 
    +00070 
    +00075 #define TRANS_EVERY_N_SYNC(n) (n) /*n = 1 to 240 */
    +00076 #define TRANS_SYNC_MIN        1    /* Trans after reception of n SYNC. n = 1 to 240 */
    +00077 #define TRANS_SYNC_MAX        240  /* Trans after reception of n SYNC. n = 1 to 240 */
    +00078 #define TRANS_RTR_SYNC        252  /* Transmission on request */
    +00079 #define TRANS_RTR             253  /* Transmission on request */
    +00080 #define TRANS_EVENT           255  /* Transmission on event */
    +00081 
    +00085 #define RW     0x00  
    +00086 #define WO     0x01
    +00087 #define RO     0x02
    +00088 
    +00089 #define TO_BE_SAVE  0x04
    +00090 
    +00091 /************************ STRUCTURES ****************************/
    +00095 typedef struct td_subindex
    +00096 {
    +00097     UNS8                    bAccessType;
    +00098     UNS8                    bDataType; /* Defines of what datatype the entry is */
    +00099     UNS8                    size;      /* The size (in Byte) of the variable */
    +00100     void*                   pObject;   /* This is the pointer of the Variable */
    +00101 } subindex;
    +00102 
    +00105 typedef struct td_indextable
    +00106 {
    +00107     subindex*   pSubindex;   /* Pointer to the subindex */
    +00108     UNS8   bSubCount;   /* the count of valid entries for this subindex
    +00109                          * This count here defines how many memory has been
    +00110                          * allocated. this memory does not have to be used.
    +00111                          */
    +00112     UNS16   index;
    +00113 } indextable;
    +00114 
    +00115 typedef struct s_quick_index{
    +00116         UNS16 SDO_SVR;
    +00117         UNS16 SDO_CLT;
    +00118         UNS16 PDO_RCV;
    +00119         UNS16 PDO_RCV_MAP;
    +00120         UNS16 PDO_TRS;
    +00121         UNS16 PDO_TRS_MAP;
    +00122 }quick_index;
    +00123 
    +00124 
    +00125 /*typedef struct struct_CO_Data CO_Data; */
    +00126 typedef UNS32 (*ODCallback_t)(CO_Data* d, const indextable *, UNS8 bSubindex);
    +00127 typedef const indextable * (*scanIndexOD_t)(UNS16 wIndex, UNS32 * errorCode, ODCallback_t **Callback);
    +00128 
    +00129 /************************** MACROS *********************************/
    +00130 
    +00131 /* CANopen usefull helpers */
    +00132 #define GET_NODE_ID(m)         (m.cob_id.w & 0x7f)
    +00133 #define GET_FUNCTION_CODE(m)     (m.cob_id.w >> 7)
    +00134 
    +00135 #endif /* __objdictdef_h__ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdictdef_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdictdef_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,975 @@ + + +CanFestival: include/objdictdef.h File Reference + + + + + + + +

    objdictdef.h File Reference

    +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  td_subindex
    struct  td_indextable
    struct  s_quick_index

    Defines

    #define boolean   0x01
    #define int8   0x02
    #define int16   0x03
    #define int32   0x04
    #define uint8   0x05
    #define uint16   0x06
    #define uint32   0x07
    #define real32   0x08
    #define visible_string   0x09
    #define octet_string   0x0A
    #define unicode_string   0x0B
    #define time_of_day   0x0C
    #define time_difference   0x0D
    #define domain   0x0F
    #define int24   0x10
    #define real64   0x11
    #define int40   0x12
    #define int48   0x13
    #define int56   0x14
    #define int64   0x15
    #define uint24   0x16
    #define uint40   0x18
    #define uint48   0x19
    #define uint56   0x1A
    #define uint64   0x1B
    #define pdo_communication_parameter   0x20
    #define pdo_mapping   0x21
    #define sdo_parameter   0x22
    #define identity   0x23
    #define TRANS_EVERY_N_SYNC(n)   (n)
    #define TRANS_SYNC_MIN   1
    #define TRANS_SYNC_MAX   240
    #define TRANS_RTR_SYNC   252
    #define TRANS_RTR   253
    #define TRANS_EVENT   255
    #define RW   0x00
    #define WO   0x01
    #define RO   0x02
    #define TO_BE_SAVE   0x04
    #define GET_NODE_ID(m)   (m.cob_id.w & 0x7f)
    #define GET_FUNCTION_CODE(m)   (m.cob_id.w >> 7)

    Typedefs

    typedef td_subindex subindex
    typedef td_indextable indextable
    typedef s_quick_index quick_index
    typedef UNS32(*) ODCallback_t (CO_Data *d, const indextable *, UNS8 bSubindex)
    typedef const indextable *(*) scanIndexOD_t (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
    +


    Define Documentation

    + +
    +
    + + + + +
    #define boolean   0x01
    +
    +
    + +

    +this are static defined datatypes taken fCODE the canopen standard. They are located at index 0x0001 to 0x001B. As described in the standard, they are in the object dictionary for definition purpose only. a device does not to support all of this datatypes. +

    +Definition at line 32 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define domain   0x0F
    +
    +
    + +

    + +

    +Definition at line 46 of file objdictdef.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define GET_FUNCTION_CODE (  )    (m.cob_id.w >> 7)
    +
    +
    + +

    + +

    +Definition at line 133 of file objdictdef.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define GET_NODE_ID (  )    (m.cob_id.w & 0x7f)
    +
    +
    + +

    + +

    +Definition at line 132 of file objdictdef.h. +

    +Referenced by proceedNODE_GUARD(). +

    +

    + +

    +
    + + + + +
    #define identity   0x23
    +
    +
    + +

    + +

    +Definition at line 63 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int16   0x03
    +
    +
    + +

    + +

    +Definition at line 34 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int24   0x10
    +
    +
    + +

    + +

    +Definition at line 47 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int32   0x04
    +
    +
    + +

    + +

    +Definition at line 35 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int40   0x12
    +
    +
    + +

    + +

    +Definition at line 49 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int48   0x13
    +
    +
    + +

    + +

    +Definition at line 50 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int56   0x14
    +
    +
    + +

    + +

    +Definition at line 51 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int64   0x15
    +
    +
    + +

    + +

    +Definition at line 52 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define int8   0x02
    +
    +
    + +

    + +

    +Definition at line 33 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define octet_string   0x0A
    +
    +
    + +

    + +

    +Definition at line 41 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define pdo_communication_parameter   0x20
    +
    +
    + +

    + +

    +Definition at line 60 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define pdo_mapping   0x21
    +
    +
    + +

    + +

    +Definition at line 61 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define real32   0x08
    +
    +
    + +

    + +

    +Definition at line 39 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define real64   0x11
    +
    +
    + +

    + +

    +Definition at line 48 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define RO   0x02
    +
    +
    + +

    + +

    +Definition at line 87 of file objdictdef.h. +

    +Referenced by _setODentry(). +

    +

    + +

    +
    + + + + +
    #define RW   0x00
    +
    +
    + +

    +Each entry of the object dictionary can be READONLY (RO), READ/WRITE (RW), WRITE-ONLY (WO) +

    +Definition at line 85 of file objdictdef.h. +

    +Referenced by main(), and TestMaster_initialisation(). +

    +

    + +

    +
    + + + + +
    #define sdo_parameter   0x22
    +
    +
    + +

    + +

    +Definition at line 62 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define time_difference   0x0D
    +
    +
    + +

    + +

    +Definition at line 44 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define time_of_day   0x0C
    +
    +
    + +

    + +

    +Definition at line 43 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define TO_BE_SAVE   0x04
    +
    +
    + +

    + +

    +Definition at line 89 of file objdictdef.h. +

    +Referenced by _setODentry(). +

    +

    + +

    +
    + + + + +
    #define TRANS_EVENT   255
    +
    +
    + +

    + +

    +Definition at line 80 of file objdictdef.h. +

    +Referenced by proceedPDO(). +

    +

    + +

    +
    + + + + + + + + + +
    #define TRANS_EVERY_N_SYNC (  )    (n)
    +
    +
    + +

    +definitions of the different types of PDOs' transmission

    +SYNCHRO(n) means that the PDO will be transmited every n SYNC signal. +

    +Definition at line 75 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define TRANS_RTR   253
    +
    +
    + +

    + +

    +Definition at line 79 of file objdictdef.h. +

    +Referenced by proceedPDO(). +

    +

    + +

    +
    + + + + +
    #define TRANS_RTR_SYNC   252
    +
    +
    + +

    + +

    +Definition at line 78 of file objdictdef.h. +

    +Referenced by proceedPDO(). +

    +

    + +

    +
    + + + + +
    #define TRANS_SYNC_MAX   240
    +
    +
    + +

    + +

    +Definition at line 77 of file objdictdef.h. +

    +Referenced by proceedSYNC(). +

    +

    + +

    +
    + + + + +
    #define TRANS_SYNC_MIN   1
    +
    +
    + +

    + +

    +Definition at line 76 of file objdictdef.h. +

    +Referenced by proceedSYNC(). +

    +

    + +

    +
    + + + + +
    #define uint16   0x06
    +
    +
    + +

    + +

    +Definition at line 37 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define uint24   0x16
    +
    +
    + +

    + +

    +Definition at line 53 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define uint32   0x07
    +
    +
    + +

    + +

    +Definition at line 38 of file objdictdef.h. +

    +Referenced by main(). +

    +

    + +

    +
    + + + + +
    #define uint40   0x18
    +
    +
    + +

    + +

    +Definition at line 55 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define uint48   0x19
    +
    +
    + +

    + +

    +Definition at line 56 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define uint56   0x1A
    +
    +
    + +

    + +

    +Definition at line 57 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define uint64   0x1B
    +
    +
    + +

    + +

    +Definition at line 58 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define uint8   0x05
    +
    +
    + +

    + +

    +Definition at line 36 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define unicode_string   0x0B
    +
    +
    + +

    + +

    +Definition at line 42 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    #define visible_string   0x09
    +
    +
    + +

    + +

    +Definition at line 40 of file objdictdef.h. +

    +Referenced by _getODentry(), _setODentry(), getReadResultNetworkDict(), and main(). +

    +

    + +

    +
    + + + + +
    #define WO   0x01
    +
    +
    + +

    + +

    +Definition at line 86 of file objdictdef.h. +

    +Referenced by _getODentry(). +

    +

    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef struct td_indextable indextable
    +
    +
    + +

    +Struct for creating entries in the communictaion profile +

    +

    + +

    +
    + + + + +
    typedef UNS32(*) ODCallback_t(CO_Data *d, const indextable *, UNS8 bSubindex)
    +
    +
    + +

    + +

    +Definition at line 126 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    typedef struct s_quick_index quick_index
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + +
    typedef const indextable*(*) scanIndexOD_t(UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback)
    +
    +
    + +

    + +

    +Definition at line 127 of file objdictdef.h. +

    +

    + +

    +
    + + + + +
    typedef struct td_subindex subindex
    +
    +
    + +

    +This are some structs which are neccessary for creating the entries of the object dictionary. +

    +

    +


    Generated on Fri Jun 8 08:52:01 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdictdef_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdictdef_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ +base referer +rect $data_8h.html 248,548 365,572 +rect $candriver_8h.html 209,596 404,620 +rect $lifegrd_8c.html 843,111 944,135 +rect $sync_8c.html 849,184 937,208 +rect $unix_8c.html 820,245 967,269 +rect $objdict_8h.html 471,308 753,332 +rect $TestMasterSlave_2TestMaster_8h.html 468,356 756,380 +rect $TestSlave_8h.html 471,404 753,428 +rect $TestMasterMicroMod_2TestMaster_8h.html 453,452 771,476 +rect $win32test_8h.html 492,500 732,524 +rect $objacces_8h.html 539,548 685,572 +rect $lifegrd_8h.html 547,111 677,135 +rect $nmtMaster_8h.html 532,596 692,620 +rect $nmtSlave_8h.html 536,644 688,668 +rect $timer_8h.html 551,767 673,791 +rect $sdo_8h.html 837,705 949,729 +rect $pdo_8h.html 555,815 669,839 +rect $states_8h.html 548,863 676,887 +rect $unix_2canfestival_8h.html 515,911 709,935 +rect $win32_2canfestival_8h.html 508,159 716,183 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdictdef_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objdictdef_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1f9f20e710453025158c64f3abf8a2d9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objdictdef_8h__dep__incl.png Binary file doc/doxygen/html/objdictdef_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/param_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/param_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,96 @@ + + +CanFestival: include/hcs12/board/arch/param.h Source File + + + + + + + +

    param.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 /* param.h - 32K Board specific parameters
    +00023    Copyright (C) 2002 Free Software Foundation, Inc.
    +00024    Written by Stephane Carrez (stcarrez@worldnet.fr)    
    +00025 
    +00026 This file is free software; you can redistribute it and/or modify it
    +00027 under the terms of the GNU General Public License as published by the
    +00028 Free Software Foundation; either version 2, or (at your option) any
    +00029 later version.
    +00030 
    +00031 In addition to the permissions in the GNU General Public License, the
    +00032 Free Software Foundation gives you unlimited permission to link the
    +00033 compiled version of this file with other programs, and to distribute
    +00034 those programs without any restriction coming from the use of this
    +00035 file.  (The General Public License restrictions do apply in other
    +00036 respects; for example, they cover modification of the file, and
    +00037 distribution when not linked into another program.)
    +00038 
    +00039 This file is distributed in the hope that it will be useful, but
    +00040 WITHOUT ANY WARRANTY; without even the implied warranty of
    +00041 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00042 General Public License for more details.
    +00043 
    +00044 You should have received a copy of the GNU General Public License
    +00045 along with this program; see the file COPYING.  If not, write to
    +00046 the Free Software Foundation, 59 Temple Place - Suite 330,
    +00047 Boston, MA 02111-1307, USA.  */
    +00048 
    +00049 #ifndef _M68HC11_ARCH_32K_PARAM_H
    +00050 #define _M68HC11_ARCH_32K_PARAM_H
    +00051 
    +00052 /* Generic 32K board.  */
    +00053 #define M6811_ARCH_32K
    +00054 
    +00055 #undef M6811_DEF_BAUD
    +00056 #define M6811_DEF_BAUD 0x30            /* 9600 baud.  */
    +00057 
    +00058 #undef RAM_SIZE
    +00059 #define RAM_SIZE       32768           /* 32Kb of memory.  */
    +00060 
    +00061 #undef ROM_SIZE
    +00062 #define ROM_SIZE       32768           /* 32Kb of rom.  */
    +00063 
    +00064 #undef DATA_SIZE
    +00065 #define DATA_SIZE      (0x8000-0x1040) /* Data section size.  */
    +00066 
    +00067 #undef TEXT_SIZE
    +00068 #define TEXT_SIZE      ROM_SIZE        /* Text section size.  */
    +00069 
    +00070 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/param_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/param_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,147 @@ + + +CanFestival: include/hcs12/board/arch/param.h File Reference + + + + + + + +

    param.h File Reference

    +

    +Go to the source code of this file. + + + + + + + + + + + + + + +

    Defines

    #define M6811_ARCH_32K
    #define M6811_DEF_BAUD   0x30
    #define RAM_SIZE   32768
    #define ROM_SIZE   32768
    #define DATA_SIZE   (0x8000-0x1040)
    #define TEXT_SIZE   ROM_SIZE
    +


    Define Documentation

    + +
    +
    + + + + +
    #define DATA_SIZE   (0x8000-0x1040)
    +
    +
    + +

    + +

    +Definition at line 65 of file param.h. +

    +

    + +

    +
    + + + + +
    #define M6811_ARCH_32K
    +
    +
    + +

    + +

    +Definition at line 53 of file param.h. +

    +

    + +

    +
    + + + + +
    #define M6811_DEF_BAUD   0x30
    +
    +
    + +

    + +

    +Definition at line 56 of file param.h. +

    +

    + +

    +
    + + + + +
    #define RAM_SIZE   32768
    +
    +
    + +

    + +

    +Definition at line 59 of file param.h. +

    +

    + +

    +
    + + + + +
    #define ROM_SIZE   32768
    +
    +
    + +

    + +

    +Definition at line 62 of file param.h. +

    +

    + +

    +
    + + + + +
    #define TEXT_SIZE   ROM_SIZE
    +
    +
    + +

    + +

    +Definition at line 68 of file param.h. +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c-source.html --- a/doc/doxygen/html/pdo_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/pdo.c Source File +CanFestival: src/pdo.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/pdo.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    pdo.c

    Go to the documentation of this file.
    00001 /*
     00002   This file is part of CanFestival, a library implementing CanOpen
     00003   Stack.
     00004 
    @@ -38,55 +42,62 @@
     00021   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
     00022   USA
     00023 */
    -00024 #include "pdo.h"
    -00025 #include "objacces.h"
    -00026 #include "canfestival.h"
    +00024 #include "pdo.h"
    +00025 #include "objacces.h"
    +00026 #include "canfestival.h"
     00027 
    -00037 UNS8 sendPDO(CO_Data* d, s_PDO pdo, UNS8 req)
    +00037 UNS8 sendPDO(CO_Data* d, s_PDO pdo, UNS8 req)
     00038 {
    -00039   UNS8 i;
    -00040   if( d->nodeState == Operational ) {
    -00041     Message m;
    +00039   UNS8 i;
    +00040   if( d->nodeState == Operational ) {
    +00041     Message m;
     00042 
    -00044     m.cob_id.w = pdo.cobId & 0x7FF; 
    -00046     if ( req == NOT_A_REQUEST ) {
    -00047       UNS8 i;
    -00048       m.rtr = NOT_A_REQUEST;
    -00049       m.len = pdo.len;
    -00052       for (i = 0 ; i < pdo.len ; i++)
    -00053         m.data[i] = pdo.data[i];
    +00043     /* Message copy for sending */
    +00044     m.cob_id.w = pdo.cobId & 0x7FF; /* Because the cobId is 11 bytes
    +00045                                       length */
    +00046     if ( req == NOT_A_REQUEST ) {
    +00047       UNS8 i;
    +00048       m.rtr = NOT_A_REQUEST;
    +00049       m.len = pdo.len;
    +00050       /* memcpy(&m.data, &pdo.data, m.len); */
    +00051       /* This Memcpy depends on packing structure. Avoid */
    +00052       for (i = 0 ; i < pdo.len ; i++)
    +00053         m.data[i] = pdo.data[i];
     00054     }
     00055     else {
    -00056       m.rtr = REQUEST;
    -00057       m.len = 0;
    +00056       m.rtr = REQUEST;
    +00057       m.len = 0;
     00058     }
     00059 
    -00060     MSG_WAR(0x3901, "sendPDO cobId :", m.cob_id.w);
    -00061     MSG_WAR(0x3902,  "     Nb octets  : ",  m.len);
    -00062     for (i = 0 ; i < m.len ; i++) {
    -00063       MSG_WAR(0x3903,"           data : ", m.data[i]);
    +00060     MSG_WAR(0x3901, "sendPDO cobId :", m.cob_id.w);
    +00061     MSG_WAR(0x3902,  "     Nb octets  : ",  m.len);
    +00062     for (i = 0 ; i < m.len ; i++) {
    +00063       MSG_WAR(0x3903,"           data : ", m.data[i]);
     00064     }
     00065 
    -00066     return canSend(d->canHandle,&m);
    -00067   } 
    +00066     return canSend(d->canHandle,&m);
    +00067   } /* end if */
     00068   return 0xFF;
     00069 }
     00070 
    -00079 UNS8 PDOmGR(CO_Data* d, UNS32 cobId)
    +00079 UNS8 PDOmGR(CO_Data* d, UNS32 cobId)
     00080 {
    -00081   UNS8 res;
    -00082   UNS8 i;
    -00083   s_PDO pdo;
    +00081   UNS8 res;
    +00082   UNS8 i;
    +00083   s_PDO pdo;
     00084 
    -00085   MSG_WAR(0x3905, "PDOmGR",0);
    +00085   MSG_WAR(0x3905, "PDOmGR",0);
     00086 
    -00089   pdo.cobId = cobId;
    -00090   pdo.len =  d->process_var.count;
    +00087   /* if PDO is waiting for transmission,
    +00088     preparation of the message to send */
    +00089   pdo.cobId = cobId;
    +00090   pdo.len =  d->process_var.count;
    +00091   /* memcpy(&(pdo.data), &(process_var.data), pdo.len); */
     00092      /* Ce memcpy devrait tre portable */
    -00093     for ( i = 0 ; i < pdo.len ; i++) 
    -00094       pdo.data[i] = d->process_var.data[i];
    +00093     for ( i = 0 ; i < pdo.len ; i++) 
    +00094       pdo.data[i] = d->process_var.data[i];
     00095 
    -00096     res = sendPDO(d, pdo, NOT_A_REQUEST);
    +00096     res = sendPDO(d, pdo, NOT_A_REQUEST);
     00097 
     00098     return res;
     00099 }
    @@ -96,291 +107,348 @@
     00103 /* TODO : implement bit mapping                                                  */
     00104 /*********************************************************************/
     00105 
    -00106 UNS8 buildPDO(CO_Data* d, UNS16 index)
    +00106 UNS8 buildPDO(CO_Data* d, UNS16 index)
     00107 { /* DO NOT USE MSG_ERR because the macro may send a PDO -> infinite loop if it fails. */       
    -00108   UNS16 ind;
    -00109   UNS8      subInd;
    +00108   UNS16 ind;
    +00109   UNS8      subInd;
     00110 
    -00111   UNS8 *     pMappingCount = NULL;      /* count of mapped objects... */
    +00111   UNS8 *     pMappingCount = NULL;      /* count of mapped objects... */
     00112   /* pointer to the var which is mapped to a pdo */
     00113 /*  void *     pMappedAppObject = NULL;  */
     00114   /* pointer fo the var which holds the mapping parameter of an mapping entry  */ 
     00115  
    -00116   UNS32 *    pMappingParameter = NULL;
    +00116   UNS32 *    pMappingParameter = NULL;
     00117 
    -00118   UNS8      Size;
    -00119   UNS8      dataType;
    -00120   UNS8      offset;
    -00121   UNS16     offsetObjdict;
    -00122   UNS16     offsetObjdictPrm;
    -00123   UNS32     objDict;
    +00118   UNS8      Size;
    +00119   UNS8      dataType;
    +00120   UNS8      offset;
    +00121   UNS16     offsetObjdict;
    +00122   UNS16     offsetObjdictPrm;
    +00123   UNS32     objDict;
     00124 
    -00125   subInd=(UNS8)0x00;
    +00125   subInd=(UNS8)0x00;
     00126   offset = 0x00;
     00127   ind = index - 0x1800;
     00128 
    -00129   MSG_WAR(0x3910,"Prepare PDO to send index :", index);
    +00129   MSG_WAR(0x3910,"Prepare PDO to send index :", index);
     00130 
    -00132   if( d->nodeState != Operational ) {
    -00133     MSG_WAR(0x2911, "Unable to send the PDO (node not in OPERATIONAL mode). Node : ", index);
    +00131   /* only operational state allows PDO transmission */
    +00132   if( d->nodeState != Operational ) {
    +00133     MSG_WAR(0x2911, "Unable to send the PDO (node not in OPERATIONAL mode). Node : ", index);
     00134     return 0xFF;
     00135   }
    -00136   offsetObjdictPrm = d->firstIndex->PDO_TRS;
    -00137   offsetObjdict = d->firstIndex->PDO_TRS_MAP;
    +00136   offsetObjdictPrm = d->firstIndex->PDO_TRS;
    +00137   offsetObjdict = d->firstIndex->PDO_TRS_MAP;
     00138 
     00139   if (offsetObjdictPrm && offsetObjdict)
     00140     {
    -00142       pMappingCount = (d->objdict + offsetObjdict + ind)->pSubindex[0].pObject;
    -00143       MSG_WAR(0x3912, "Nb maped objects : ",* pMappingCount);
    -00144       MSG_WAR(0x3913, "        at index : ", 0x1A00 + ind);
    -00145       while (subInd < *pMappingCount) { 
    -00147         pMappingParameter = (d->objdict + offsetObjdict + ind)->pSubindex[subInd + 1].pObject;
    -00148         MSG_WAR(0x3914, "Get the mapping      at index : ", (UNS16)0x1A00 + ind);
    -00149         MSG_WAR(0x3915, "                     subIndex : ", subInd + 1);
    -00150         MSG_WAR(0x3916, "                     value    : ", *(UNS32 *)pMappingParameter);
    -00152         Size = ((UNS8)(((*pMappingParameter) & 0xFF) >> 3));
    -00153         objDict = getODentry(d, (UNS16)((*pMappingParameter) >> 16),
    -00154                              (UNS8)(((*pMappingParameter) >> 8 ) & 0x000000FF),
    -00155                              (void *)&d->process_var.data[offset], &Size, &dataType, 0 );
    +00141       /* get mapped objects number to transmit with this PDO */
    +00142       pMappingCount = (d->objdict + offsetObjdict + ind)->pSubindex[0].pObject;
    +00143       MSG_WAR(0x3912, "Nb maped objects : ",* pMappingCount);
    +00144       MSG_WAR(0x3913, "        at index : ", 0x1A00 + ind);
    +00145       while (subInd < *pMappingCount) { /* Loop on mapped variables */
    +00146         /* get mapping parameters */
    +00147         pMappingParameter = (d->objdict + offsetObjdict + ind)->pSubindex[subInd + 1].pObject;
    +00148         MSG_WAR(0x3914, "Get the mapping      at index : ", (UNS16)0x1A00 + ind);
    +00149         MSG_WAR(0x3915, "                     subIndex : ", subInd + 1);
    +00150         MSG_WAR(0x3916, "                     value    : ", *(UNS32 *)pMappingParameter);
    +00151         /* Get the mapped variable */
    +00152         Size = ((UNS8)(((*pMappingParameter) & 0xFF) >> 3));
    +00153         objDict = getODentry(d, (UNS16)((*pMappingParameter) >> 16),
    +00154                              (UNS8)(((*pMappingParameter) >> 8 ) & 0x000000FF),
    +00155                              (void *)&d->process_var.data[offset], &Size, &dataType, 0 );
     00156 
    -00157         if (objDict != OD_SUCCESSFUL) {
    -00158           MSG_WAR(0x2919, "error accessing to the mapped var : ", subInd + 1);
    -00159           MSG_WAR(0x2920, "         Mapped at index : ", (*pMappingParameter) >> 16);
    -00160           MSG_WAR(0x2921, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
    +00157         if (objDict != OD_SUCCESSFUL) {
    +00158           MSG_WAR(0x2919, "error accessing to the mapped var : ", subInd + 1);
    +00159           MSG_WAR(0x2920, "         Mapped at index : ", (*pMappingParameter) >> 16);
    +00160           MSG_WAR(0x2921, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
     00161           return 0xFF;
     00162         }
     00163 
     00164         offset += Size;
    -00165         d->process_var.count = offset;
    +00165         d->process_var.count = offset;
     00166         subInd++;
    -00167       }
    +00167       }/* end Loop on mapped variables  */
     00168     }
     00169   return 0;
     00170 }
     00171 #endif
     00172 
    -00181 UNS8 sendPDOrequest( CO_Data* d, UNS32 cobId )
    +00181 UNS8 sendPDOrequest( CO_Data* d, UNS32 cobId )
     00182 {
    -00183   UNS32 * pwCobId;
    -00184   UNS16          offset;
    -00185   UNS16          lastIndex;
    -00186   UNS8           err;
    +00183   UNS32 * pwCobId;
    +00184   UNS16          offset;
    +00185   UNS16          lastIndex;
    +00186   UNS8           err;
     00187 
    -00188   MSG_WAR(0x3930, "sendPDOrequest ",0);
    -00192   offset = d->firstIndex->PDO_RCV;
    -00193   lastIndex = d->lastIndex->PDO_RCV;
    +00188   MSG_WAR(0x3930, "sendPDOrequest ",0);
    +00189   /* Sending the request only if the cobid have been found on the PDO
    +00190      receive */
    +00191   /* part dictionary */
    +00192   offset = d->firstIndex->PDO_RCV;
    +00193   lastIndex = d->lastIndex->PDO_RCV;
     00194   if (offset)
     00195     while (offset <= lastIndex) {
    -00197       pwCobId = d->objdict[offset].pSubindex[1].pObject;
    +00196       /* get the CobId*/
    +00197       pwCobId = d->objdict[offset].pSubindex[1].pObject;
     00198 
     00199       if ( *pwCobId  == cobId ) {
    -00200         s_PDO pdo;
    -00201         pdo.cobId = *pwCobId;
    -00202         pdo.len = 0;
    -00203         err  = sendPDO(d, pdo, REQUEST);
    +00200         s_PDO pdo;
    +00201         pdo.cobId = *pwCobId;
    +00202         pdo.len = 0;
    +00203         err  = sendPDO(d, pdo, REQUEST);
     00204         return err;
     00205       }
     00206       offset++;
     00207     }
    -00208   MSG_WAR(0x1931, "sendPDOrequest : COBID not found : ", cobId);
    +00208   MSG_WAR(0x1931, "sendPDOrequest : COBID not found : ", cobId);
     00209   return 0xFF;
     00210 }
     00211 
     00212 
    -00221 UNS8 proceedPDO(CO_Data* d, Message *m)
    +00221 UNS8 proceedPDO(CO_Data* d, Message *m)
     00222 {
    -00223   UNS8   numPdo;
    -00224   UNS8   numMap;  
    -00225   UNS8 i;
    -00226   UNS8 *     pMappingCount = NULL;    
    -00231   UNS32 *    pMappingParameter = NULL;
    -00232   UNS8  *    pTransmissionType = NULL; 
    -00234   UNS32 *    pwCobId = NULL;
    -00235   UNS8       Size;
    -00236   UNS8       dataType;
    -00237   UNS8       offset;
    -00238   UNS8       status;
    -00239   UNS32      objDict;
    -00240   UNS16      offsetObjdict;
    -00241   UNS16      lastIndex;
    -00242   status = state1;
    +00223   UNS8   numPdo;
    +00224   UNS8   numMap;  /* Number of the mapped varable */
    +00225   UNS8 i;
    +00226   UNS8 *     pMappingCount = NULL;    /* count of mapped objects... */
    +00227   /* pointer to the var which is mapped to a pdo... */
    +00228   /*  void *     pMappedAppObject = NULL;   */
    +00229   /* pointer fo the var which holds the mapping parameter of an
    +00230      mapping entry */
    +00231   UNS32 *    pMappingParameter = NULL;
    +00232   UNS8  *    pTransmissionType = NULL; /* pointer to the transmission
    +00233                                          type */
    +00234   UNS32 *    pwCobId = NULL;
    +00235   UNS8       Size;
    +00236   UNS8       dataType;
    +00237   UNS8       offset;
    +00238   UNS8       status;
    +00239   UNS32      objDict;
    +00240   UNS16      offsetObjdict;
    +00241   UNS16      lastIndex;
    +00242   status = state1;
     00243 
    -00244   MSG_WAR(0x3935, "proceedPDO, cobID : ", ((*m).cob_id.w & 0x7ff));
    +00244   MSG_WAR(0x3935, "proceedPDO, cobID : ", ((*m).cob_id.w & 0x7ff));
     00245   offset = 0x00;
     00246   numPdo = 0;
     00247   numMap = 0;
    -00248   if((*m).rtr == NOT_A_REQUEST ) { 
    -00250     offsetObjdict = d->firstIndex->PDO_RCV;
    -00251     lastIndex = d->lastIndex->PDO_RCV;
    +00248   if((*m).rtr == NOT_A_REQUEST ) { /* The PDO received is not a
    +00249                                      request. */
    +00250     offsetObjdict = d->firstIndex->PDO_RCV;
    +00251     lastIndex = d->lastIndex->PDO_RCV;
     00252 
    +00253     /* study of all the PDO stored in the dictionary */
     00254     if(offsetObjdict)
     00255       while (offsetObjdict <= lastIndex) {
     00256 
     00257         switch( status ) {
     00258 
    -00259         case state1:
    -00262           for ( i = 0 ; i < m->len ; i++)
    -00263             d->process_var.data[i] = m->data[i];
    -00264           d->process_var.count = (*m).len;
    +00259         case state1:/* data are stored in process_var array */
    +00260           /* memcpy(&(process_var.data), &m->data, (*m).len); */
    +00261           /* Ce memcpy devrait etre portable */
    +00262           for ( i = 0 ; i < m->len ; i++)
    +00263             d->process_var.data[i] = m->data[i];
    +00264           d->process_var.count = (*m).len;
     00265 
    -00266           status = state2;
    +00266           status = state2;
     00267           break;
     00268 
    -00269         case state2:
    -00272           pwCobId = d->objdict[offsetObjdict].pSubindex[1].pObject;
    +00269         case state2:
    +00270           /* get CobId of the dictionary correspondant to the received
    +00271              PDO */
    +00272           pwCobId = d->objdict[offsetObjdict].pSubindex[1].pObject;
    +00273           /* check the CobId coherance */
    +00274           /*pwCobId is the cobId read in the dictionary at the state 3
    +00275             */
     00276           if ( *pwCobId == (*m).cob_id.w ){
    -00278             status = state4;
    -00279             MSG_WAR(0x3936, "cobId found at index ", 0x1400 + numPdo);
    +00277             /* The cobId is recognized */
    +00278             status = state4;
    +00279             MSG_WAR(0x3936, "cobId found at index ", 0x1400 + numPdo);
     00280             break;
     00281           }
     00282           else {
    +00283             /* cobId received does not match with those write in the
    +00284               dictionnary */
     00285             numPdo++;
     00286             offsetObjdict++;
    -00287             status = state2;
    +00287             status = state2;
     00288             break;
     00289           }
     00290 
    -00291             case state4:
    -00294                offsetObjdict = d->firstIndex->PDO_RCV_MAP;
    -00295              lastIndex = d->lastIndex->PDO_RCV_MAP;
    -00296              pMappingCount = (d->objdict + offsetObjdict + numPdo)->pSubindex[0].pObject;
    +00291             case state4:/* Get Mapped Objects Number */
    +00292                /* The cobId of the message received has been found in the
    +00293                  dictionnary. */
    +00294                offsetObjdict = d->firstIndex->PDO_RCV_MAP;
    +00295              lastIndex = d->lastIndex->PDO_RCV_MAP;
    +00296              pMappingCount = (d->objdict + offsetObjdict + numPdo)->pSubindex[0].pObject;
     00297              numMap = 0;
     00298              while (numMap < *pMappingCount) {
    -00299                UNS8 tmp[]= {0,0,0,0,0,0,0,0};
    -00300                UNS8 ByteSize;
    -00301                pMappingParameter = (d->objdict + offsetObjdict + numPdo)->pSubindex[numMap + 1].pObject;
    +00299                UNS8 tmp[]= {0,0,0,0,0,0,0,0};
    +00300                UNS8 ByteSize;
    +00301                pMappingParameter = (d->objdict + offsetObjdict + numPdo)->pSubindex[numMap + 1].pObject;
     00302                if (pMappingParameter == NULL) {
    -00303                  MSG_ERR(0x1937, "Couldn't get mapping parameter : ", numMap + 1);
    +00303                  MSG_ERR(0x1937, "Couldn't get mapping parameter : ", numMap + 1);
     00304                  return 0xFF;
     00305                }
    -00313                Size = (UNS8)(*pMappingParameter);
    +00306                /* Get the addresse of the mapped variable. */
    +00307                /* detail of *pMappingParameter : */
    +00308                /* The 16 hight bits contains the index, the medium 8 bits
    +00309                  contains the subindex, */
    +00310                /* and the lower 8 bits contains the size of the mapped
    +00311                  variable. */
    +00312 
    +00313                Size = (UNS8)(*pMappingParameter);
     00314 
    -00316                CopyBits(Size, (UNS8*)&d->process_var.data[offset>>3], offset%8, 0, ((UNS8*)tmp), 0, 0);
    +00315                /* copy bit per bit in little endian */
    +00316                CopyBits(Size, (UNS8*)&d->process_var.data[offset>>3], offset%8, 0, ((UNS8*)tmp), 0, 0);
     00317 
     00318                ByteSize = 1 + ((Size - 1) >> 3); /*1->8 => 1 ; 9->16 =>
     00319                                                    2, ... */
     00320 
    -00321                objDict = setODentry(d, (UNS16)((*pMappingParameter) >> 16),
    -00322                                     (UNS8)(((*pMappingParameter) >> 8 ) & 0xFF),
    +00321                objDict = setODentry(d, (UNS16)((*pMappingParameter) >> 16),
    +00322                                     (UNS8)(((*pMappingParameter) >> 8 ) & 0xFF),
     00323                                  tmp, &ByteSize, 0 );
     00324 
    -00325                if(objDict != OD_SUCCESSFUL) {
    -00326                  MSG_ERR(0x1938, "error accessing to the mapped var : ", numMap + 1);
    -00327                  MSG_WAR(0x2939, "         Mapped at index : ", (*pMappingParameter) >> 16);
    -00328                  MSG_WAR(0x2940, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
    +00325                if(objDict != OD_SUCCESSFUL) {
    +00326                  MSG_ERR(0x1938, "error accessing to the mapped var : ", numMap + 1);
    +00327                  MSG_WAR(0x2939, "         Mapped at index : ", (*pMappingParameter) >> 16);
    +00328                  MSG_WAR(0x2940, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
     00329                  return 0xFF;
     00330                }
     00331 
    -00332                MSG_WAR(0x3942, "Variable updated with value received by PDO cobid : ", m->cob_id.w);
    -00333                MSG_WAR(0x3943, "         Mapped at index : ", (*pMappingParameter) >> 16);
    -00334                MSG_WAR(0x3944, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
    +00332                MSG_WAR(0x3942, "Variable updated with value received by PDO cobid : ", m->cob_id.w);
    +00333                MSG_WAR(0x3943, "         Mapped at index : ", (*pMappingParameter) >> 16);
    +00334                MSG_WAR(0x3944, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
    +00335                /* MSG_WAR(0x3945, "                data : ",*((UNS32*)pMappedAppObject)); */
     00336                offset += Size;
     00337                numMap++;
    -00338              } 
    +00338              } /* end loop while on mapped variables */
    +00339 
     00340              offset=0x00;
     00341              numMap = 0;
     00342              return 0;
     00343 
    -00344         }
    -00345       }
    -00346   }
    -00347   else if ((*m).rtr == REQUEST ){
    -00348     MSG_WAR(0x3946, "Receive a PDO request cobId : ", m->cob_id.w);
    -00349     status = state1;
    -00350     offsetObjdict = d->firstIndex->PDO_TRS;
    -00351     lastIndex = d->lastIndex->PDO_TRS;
    +00344         }/* end switch status*/
    +00345       }/* end while*/
    +00346   }/* end if Donnees */
    +00347   else if ((*m).rtr == REQUEST ){
    +00348     MSG_WAR(0x3946, "Receive a PDO request cobId : ", m->cob_id.w);
    +00349     status = state1;
    +00350     offsetObjdict = d->firstIndex->PDO_TRS;
    +00351     lastIndex = d->lastIndex->PDO_TRS;
     00352     if(offsetObjdict) while( offsetObjdict  <= lastIndex ){
    +00353       /* study of all PDO stored in the objects dictionary */
    +00354 
     00355       switch( status ){
     00356 
    -00357       case state1:
    -00360         pwCobId = (d->objdict + offsetObjdict)->pSubindex[1].pObject;
    +00357       case state1:/* check the CobId */
    +00358         /* get CobId of the dictionary which match to the received PDO
    +00359          */
    +00360         pwCobId = (d->objdict + offsetObjdict)->pSubindex[1].pObject;
     00361         if ( *pwCobId == (*m).cob_id.w ) {
    -00362           status = state4;
    +00362           status = state4;
     00363           break;
     00364         }
     00365         else {
     00366           numPdo++;
     00367           offsetObjdict++;
     00368         }
    -00369         status = state1;
    +00369         status = state1;
     00370         break;
     00371 
     00372 
    -00373       case state4:
    -00374         pTransmissionType = d->objdict[offsetObjdict].pSubindex[2].pObject;
    -00375         if ( (*pTransmissionType == TRANS_RTR) || (*pTransmissionType == TRANS_RTR_SYNC ) || (*pTransmissionType == TRANS_EVENT) ) {
    -00376           status = state5;
    +00373       case state4:/* check transmission type (after request?) */
    +00374         pTransmissionType = d->objdict[offsetObjdict].pSubindex[2].pObject;
    +00375         if ( (*pTransmissionType == TRANS_RTR) || (*pTransmissionType == TRANS_RTR_SYNC ) || (*pTransmissionType == TRANS_EVENT) ) {
    +00376           status = state5;
     00377           break;
     00378         }
     00379         else {
    -00382           MSG_WAR(0x2947, "PDO is not to send on request : ", m->cob_id.w);
    +00380           /* The requested PDO is not to send on request. So, does
    +00381             nothing. */
    +00382           MSG_WAR(0x2947, "PDO is not to send on request : ", m->cob_id.w);
     00383           return 0xFF;
     00384         }
     00385 
    -00386       case state5:
    -00387         offsetObjdict = d->firstIndex->PDO_TRS_MAP;
    -00388         lastIndex = d->lastIndex->PDO_TRS_MAP;
    -00389         pMappingCount = (d->objdict + offsetObjdict + numPdo)->pSubindex[0].pObject;
    +00386       case state5:/* get mapped objects number */
    +00387         offsetObjdict = d->firstIndex->PDO_TRS_MAP;
    +00388         lastIndex = d->lastIndex->PDO_TRS_MAP;
    +00389         pMappingCount = (d->objdict + offsetObjdict + numPdo)->pSubindex[0].pObject;
     00390         numMap = 0;
     00391         while (numMap < *pMappingCount) {
    -00392           pMappingParameter = (d->objdict + offsetObjdict + numPdo)->pSubindex[numMap + 1].pObject;
    -00394           Size = ((UNS8)(((*pMappingParameter) & 0xFF) >> 3));
    -00395           objDict = getODentry( d, (UNS16)((*pMappingParameter) >> (UNS8)16),
    -00396                                 (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & 0xFF),
    -00397                                 (void *)&d->process_var.data[offset], &Size, &dataType, 0 );
    -00398           if (objDict != OD_SUCCESSFUL) {
    -00399             MSG_ERR(0x1948, "error accessing to the mapped var : ", numMap + 1);
    -00400             MSG_WAR(0x2949, "         Mapped at index : ", (*pMappingParameter) >> 16);
    -00401             MSG_WAR(0x2950, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
    +00392           pMappingParameter = (d->objdict + offsetObjdict + numPdo)->pSubindex[numMap + 1].pObject;
    +00393           /* Get the mapped variable */
    +00394           Size = ((UNS8)(((*pMappingParameter) & 0xFF) >> 3));
    +00395           objDict = getODentry( d, (UNS16)((*pMappingParameter) >> (UNS8)16),
    +00396                                 (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & 0xFF),
    +00397                                 (void *)&d->process_var.data[offset], &Size, &dataType, 0 );
    +00398           if (objDict != OD_SUCCESSFUL) {
    +00399             MSG_ERR(0x1948, "error accessing to the mapped var : ", numMap + 1);
    +00400             MSG_WAR(0x2949, "         Mapped at index : ", (*pMappingParameter) >> 16);
    +00401             MSG_WAR(0x2950, "                subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF);
     00402             return 0xFF;
     00403           }
    -00404           offset += (UNS8) (((*pMappingParameter) & 0xFF) >> 3);
    -00405           d->process_var.count = offset;
    +00404           offset += (UNS8) (((*pMappingParameter) & 0xFF) >> 3);
    +00405           d->process_var.count = offset;
     00406           numMap++;
     00407 
    -00408         } 
    -00409         PDOmGR( d, *pwCobId ); 
    +00408         } /* end while */
    +00409         PDOmGR( d, *pwCobId ); /* Transmit the PDO */
     00410         return 0;
     00411 
    -00412       }
    -00413     }
    -00414   }
    +00412       }/* end switch status */
    +00413     }/* end while */
    +00414   }/* end if Requete */
    +00415 
     00416   return 0;
     00417 }
     00418 
    -00430 void CopyBits(UNS8 NbBits, UNS8* SrcByteIndex, UNS8 SrcBitIndex, UNS8 SrcBigEndian, UNS8* DestByteIndex, UNS8 DestBitIndex, UNS8 DestBigEndian)
    +00430 void CopyBits(UNS8 NbBits, UNS8* SrcByteIndex, UNS8 SrcBitIndex, UNS8 SrcBigEndian, UNS8* DestByteIndex, UNS8 DestBitIndex, UNS8 DestBigEndian)
     00431 {
    +00432   /* This loop copy as many bits that it can each time, crossing*/
    +00433   /* successively bytes*/
     00434   // boundaries from LSB to MSB.
     00435   while(NbBits > 0)
     00436     {
    -00438       INTEGER8 Vect = DestBitIndex - SrcBitIndex;
    +00437       /* Bit missalignement between src and dest*/
    +00438       INTEGER8 Vect = DestBitIndex - SrcBitIndex;
     00439 
    -00441       UNS8 Aligned = Vect>0 ? *SrcByteIndex << Vect : *SrcByteIndex >> -Vect;
    +00440       /* We can now get src and align it to dest*/
    +00441       UNS8 Aligned = Vect>0 ? *SrcByteIndex << Vect : *SrcByteIndex >> -Vect;
     00442 
    -00444       UNS8 BoudaryLimit = (Vect>0 ? 8 - DestBitIndex :  8 - SrcBitIndex );
    -00445       UNS8 BitsToCopy = BoudaryLimit > NbBits ? NbBits : BoudaryLimit;
    +00443       /* Compute the nb of bit we will be able to copy*/
    +00444       UNS8 BoudaryLimit = (Vect>0 ? 8 - DestBitIndex :  8 - SrcBitIndex );
    +00445       UNS8 BitsToCopy = BoudaryLimit > NbBits ? NbBits : BoudaryLimit;
     00446 
    -00448       UNS8 Mask = ((0xff << (DestBitIndex + BitsToCopy)) | (0xff >> (8 - DestBitIndex)));
    +00447       /* Create a mask that will serve in:*/
    +00448       UNS8 Mask = ((0xff << (DestBitIndex + BitsToCopy)) | (0xff >> (8 - DestBitIndex)));
     00449 
    -00451       UNS8 Filtered = Aligned & ~Mask;
    +00450       /* - Filtering src*/
    +00451       UNS8 Filtered = Aligned & ~Mask;
     00452 
    +00453       /* - and erase bits where we write, preserve where we don't*/
     00454       *DestByteIndex &= Mask;
     00455 
    +00456       /* Then write.*/
     00457       *DestByteIndex |= Filtered ;
     00458 
    -00460       if((SrcBitIndex += BitsToCopy)>7)
    +00459       /*Compute next time cursors for src*/
    +00460       if((SrcBitIndex += BitsToCopy)>7)/* cross boundary ?*/
     00461         {
    -00462           SrcBitIndex = 0;
    -00463           SrcByteIndex += (SrcBigEndian ? -1 : 1);
    +00462           SrcBitIndex = 0;/* First bit*/
    +00463           SrcByteIndex += (SrcBigEndian ? -1 : 1);/* Next byte*/
     00464         }
     00465 
     00466 
    +00467       /*Compute next time cursors for dest*/
     00468       if((DestBitIndex += BitsToCopy)>7)
     00469         {
    -00470           DestBitIndex = 0;
    -00471           DestByteIndex += (DestBigEndian ? -1 : 1);
    +00470           DestBitIndex = 0;/* First bit*/
    +00471           DestByteIndex += (DestBigEndian ? -1 : 1);/* Next byte*/
     00472         }
     00473 
    +00474       /*And decrement counter.*/
     00475       NbBits -= BitsToCopy;
     00476     }
     00477 
    @@ -393,79 +461,89 @@
     00484  */
     00485 /*********************************************************************/
     00486 
    -00495 UNS8 sendPDOevent( CO_Data* d, void * variable )
    -00496 { 
    -00498   UNS32           objDict = 0;
    -00499   UNS8            ind, sub_ind;
    -00500   UNS8            status;
    -00501   UNS8            offset;
    -00502   UNS8 *     pMappingCount = NULL;
    -00503   UNS32 *    pMappingParameter = NULL;
    +00495 UNS8 sendPDOevent( CO_Data* d, void * variable )
    +00496 { /* DO NOT USE MSG_ERR because the macro may send a PDO -> infinite
    +00497     loop if it fails.*/
    +00498   UNS32           objDict = 0;
    +00499   UNS8            ind, sub_ind;
    +00500   UNS8            status;
    +00501   UNS8            offset;
    +00502   UNS8 *     pMappingCount = NULL;
    +00503   UNS32 *    pMappingParameter = NULL;
     00504   void *     pMappedAppObject = NULL;
    -00505   UNS8 *     pTransmissionType = NULL; 
    -00507   UNS32 *    pwCobId = NULL;
    -00508   UNS8 *     pSize;
    -00509   UNS8       size;
    -00510   UNS8       dataType;
    -00511   UNS16      offsetObjdict;
    -00512   UNS16      offsetObjdictPrm;
    -00513   UNS16      lastIndex;
    -00514   UNS8       numMap;
    +00505   UNS8 *     pTransmissionType = NULL; /* pointer to the transmission
    +00506                                          type */
    +00507   UNS32 *    pwCobId = NULL;
    +00508   UNS8 *     pSize;
    +00509   UNS8       size;
    +00510   UNS8       dataType;
    +00511   UNS16      offsetObjdict;
    +00512   UNS16      offsetObjdictPrm;
    +00513   UNS16      lastIndex;
    +00514   UNS8       numMap;
     00515   ind     = 0x00;
     00516   sub_ind = 1;
     00517   offset  = 0x00;
     00518   pSize   = &size;
    -00519   status  = state1;
    +00519   status  = state1;
     00520 
     00521 
    -00525   MSG_WAR (0x3960, "sendPDOevent", 0);
    -00526   offsetObjdictPrm = d->firstIndex->PDO_TRS;
    +00522   /* look for the index and subindex where the variable is mapped */
    +00523   /* Then, send the pdo which contains the variable. */
    +00524 
    +00525   MSG_WAR (0x3960, "sendPDOevent", 0);
    +00526   offsetObjdictPrm = d->firstIndex->PDO_TRS;
     00527 
    -00528   offsetObjdict = d->firstIndex->PDO_TRS_MAP;
    -00529   lastIndex = d->lastIndex->PDO_TRS_MAP;
    +00528   offsetObjdict = d->firstIndex->PDO_TRS_MAP;
    +00529   lastIndex = d->lastIndex->PDO_TRS_MAP;
     00530 
     00531   if (offsetObjdictPrm && offsetObjdict)
    +00532     /* Loop on PDO Transmit */
     00533     while(offsetObjdict <= lastIndex){
    -00535       pTransmissionType = d->objdict[offsetObjdictPrm].pSubindex[2].pObject;
    -00536       if (*pTransmissionType != TRANS_EVENT) {
    +00534       /* Check the transmission mode */
    +00535       pTransmissionType = d->objdict[offsetObjdictPrm].pSubindex[2].pObject;
    +00536       if (*pTransmissionType != TRANS_EVENT) {
     00537         ind++;
     00538         offsetObjdict++;
     00539         offsetObjdictPrm++;
     00540         continue;
     00541       }
    -00542       pMappingCount = d->objdict[offsetObjdict].pSubindex[0].pObject;
    -00543       numMap = 1; 
    +00542       pMappingCount = d->objdict[offsetObjdict].pSubindex[0].pObject;
    +00543       numMap = 1; /* mapped variable */
     00544       while (numMap <= *pMappingCount) {
    -00545         pMappingParameter = d->objdict[offsetObjdict].pSubindex[numMap].pObject;
    -00547         objDict = getODentry( d,
    -00548                               (UNS16)((*pMappingParameter) >> 16),
    -00549                               (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF),
    +00545         pMappingParameter = d->objdict[offsetObjdict].pSubindex[numMap].pObject;
    +00546         /* Get the variable */
    +00547         objDict = getODentry( d,
    +00548                               (UNS16)((*pMappingParameter) >> 16),
    +00549                               (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF),
     00550                               (void * *)&pMappedAppObject, pSize, &dataType, 0 );
    -00551         if( objDict != OD_SUCCESSFUL ) {
    -00552           MSG_WAR(0x2961, "Error in dict. at index : ",
    -00553                   (*pMappingParameter) >> (UNS8)16);
    +00551         if( objDict != OD_SUCCESSFUL ) {
    +00552           MSG_WAR(0x2961, "Error in dict. at index : ",
    +00553                   (*pMappingParameter) >> (UNS8)16);
     00554 
    -00555           MSG_WAR(0x2962, "               subindex : ",
    -00556                   ((*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF);
    +00555           MSG_WAR(0x2962, "               subindex : ",
    +00556                   ((*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF);
     00557           return 0xFF;
     00558         }
     00559         if (pMappedAppObject == variable) { // Variable found !
    -00560           MSG_WAR(0x3963, "Variable to send found at index : ",
    +00560           MSG_WAR(0x3963, "Variable to send found at index : ",
     00561                   (*pMappingParameter) >> 16);
    -00562           MSG_WAR(0x3964, "                       subIndex : ",
    +00562           MSG_WAR(0x3964, "                       subIndex : ",
     00563                   ((*pMappingParameter) >> 8 ) & 0x000000FF);
    -00564           buildPDO(d, 0x1800 + ind);
    -00566           pwCobId = d->objdict[offsetObjdictPrm].pSubindex[1].pObject;
    -00567           PDOmGR( d, *pwCobId ); 
    +00564           buildPDO(d, 0x1800 + ind);
    +00565           /* Get the cobId */
    +00566           pwCobId = d->objdict[offsetObjdictPrm].pSubindex[1].pObject;
    +00567           PDOmGR( d, *pwCobId ); /* Send the PDO */
     00568           return 0;
     00569         }
     00570         numMap++;
    -00571       } 
    +00571       } /* End loop on mapped variable */
     00572       ind++;
     00573       offsetObjdict++;
     00574       offsetObjdictPrm++;
    -00575     } 
    -00577   MSG_WAR(0x2965, "Variable not found in a PDO to send on event", 0);
    +00575     } /* End loop while on PDO */
    +00576 
    +00577   MSG_WAR(0x2965, "Variable not found in a PDO to send on event", 0);
     00578   return 0xFF;
     00579 
     00580 }
    @@ -473,7 +551,7 @@
     00582 
     00583 
     00584 
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c.html --- a/doc/doxygen/html/pdo_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/pdo.c File Reference +CanFestival: src/pdo.c File Reference @@ -8,31 +8,54 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/pdo.c File Reference

    #include "pdo.h"
    -#include "objacces.h"
    -#include "canfestival.h"
    - -

    -Include dependency graph for pdo.c:

    + +

    pdo.c File Reference

    #include "pdo.h"
    +#include "objacces.h"
    +#include "canfestival.h"
    + +

    +Include dependency graph for pdo.c:

    + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. - - - - - - - + + + + + + + @@ -112,30 +135,10 @@

    -This loop copy as many bits that it can each time, crossing

    -successively bytes

    -Bit missalignement between src and dest

    -We can now get src and align it to dest

    -Compute the nb of bit we will be able to copy

    -Create a mask that will serve in:

    -

      -
    • Filtering src
    -

    -

      -
    • and erase bits where we write, preserve where we don't
    -

    -Then write.

    -Compute next time cursors for src

    -cross boundary ?

    -First bit

    -Next byte

    -Compute next time cursors for dest

    -First bit

    -Next byte

    -And decrement counter. -

    Definition at line 430 of file pdo.c.

    +References INTEGER8, and UNS8. +

    Referenced by proceedPDO(), and proceedSYNC().

    @@ -146,7 +149,7 @@

    - + @@ -175,18 +178,17 @@
    Returns:

    -if PDO is waiting for transmission, preparation of the message to send

    -memcpy(&(pdo.data), &(process_var.data), pdo.len); -

    Definition at line 79 of file pdo.c.

    -References sendPDO(). +References struct_s_PDO::cobId, struct_s_process_var::count, struct_s_timer_entry::d, struct_s_PDO::data, struct_s_process_var::data, struct_s_PDO::len, MSG_WAR, NOT_A_REQUEST, struct_CO_Data::process_var, sendPDO(), and UNS8.

    Referenced by proceedPDO(), and proceedSYNC().

    Here is the call graph for this function:

    + + @@ -198,13 +200,13 @@ - + - + @@ -226,63 +228,24 @@
    Returns:

    -Number of the mapped varable

    -count of mapped objects...

    -pointer to the var which is mapped to a pdo...

    -void * pMappedAppObject = NULL;

    -pointer fo the var which holds the mapping parameter of an mapping entry

    -pointer to the transmission type

    -The PDO received is not a request.

    -study of all the PDO stored in the dictionary

    -data are stored in process_var array

    -memcpy(&(process_var.data), &m->data, (*m).len);

    -Ce memcpy devrait etre portable

    -get CobId of the dictionary correspondant to the received PDO

    -check the CobId coherance

    -pwCobId is the cobId read in the dictionary at the state 3

    -The cobId is recognized

    -cobId received does not match with those write in the dictionnary

    -Get Mapped Objects Number

    -The cobId of the message received has been found in the dictionnary.

    -Get the addresse of the mapped variable.

    -detail of *pMappingParameter :

    -The 16 hight bits contains the index, the medium 8 bits contains the subindex,

    -and the lower 8 bits contains the size of the mapped variable.

    -copy bit per bit in little endian

    -MSG_WAR(0x3945, " data : ",*((UNS32*)pMappedAppObject));

    -end loop while on mapped variables

    -end switch status

    -end while

    -end if Donnees

    -study of all PDO stored in the objects dictionary

    -check the CobId

    -get CobId of the dictionary which match to the received PDO

    -check transmission type (after request?)

    -The requested PDO is not to send on request. So, does nothing.

    -get mapped objects number

    -Get the mapped variable

    -end while

    -Transmit the PDO

    -end switch status

    -end while

    -end if Requete -

    Definition at line 221 of file pdo.c.

    -References CopyBits(), getODentry(), PDOmGR(), and setODentry(). +References Message::cob_id, CopyBits(), struct_s_process_var::count, struct_s_timer_entry::d, struct_s_process_var::data, Message::data, struct_CO_Data::firstIndex, getODentry(), struct_CO_Data::lastIndex, Message::len, MSG_ERR, MSG_WAR, NOT_A_REQUEST, struct_CO_Data::objdict, OD_SUCCESSFUL, s_quick_index::PDO_RCV, s_quick_index::PDO_RCV_MAP, s_quick_index::PDO_TRS, s_quick_index::PDO_TRS_MAP, PDOmGR(), td_subindex::pObject, struct_CO_Data::process_var, td_indextable::pSubindex, REQUEST, setODentry(), state1, state2, state4, state5, TRANS_EVENT, TRANS_RTR, TRANS_RTR_SYNC, UNS16, UNS32, UNS8, and SHORT_CAN::w.

    Referenced by canDispatch().

    Here is the call graph for this function:

    - - - - - - - + + + + + + + + + @@ -294,36 +257,45 @@ - + - + - - - - - - - -

    Functions

    UNS8 sendPDO (CO_Data *d, s_PDO pdo, UNS8 req)
    UNS8 PDOmGR (CO_Data *d, UNS32 cobId)
    UNS8 sendPDOrequest (CO_Data *d, UNS32 cobId)
    UNS8 proceedPDO (CO_Data *d, Message *m)
    UNS8 sendPDO (CO_Data *d, s_PDO pdo, UNS8 req)
    UNS8 PDOmGR (CO_Data *d, UNS32 cobId)
    UNS8 sendPDOrequest (CO_Data *d, UNS32 cobId)
    UNS8 proceedPDO (CO_Data *d, Message *m)
    void CopyBits (UNS8 NbBits, UNS8 *SrcByteIndex, UNS8 SrcBitIndex, UNS8 SrcBigEndian, UNS8 *DestByteIndex, UNS8 DestBitIndex, UNS8 DestBigEndian)
    UNS8 PDOmGR (CO_Data * CO_Data d,
    UNS8 proceedPDO (CO_Data * CO_Data d,
    Message * Message m 
    UNS8 sendPDO (CO_Data * CO_Data d,
    s_PDO s_PDO  pdo,
    UNS8  req 
    )
    - -

    - -

    - + request  + + + + ) + + + +

    +
    + +

    +Transmit a PDO data frame on the bus bus_id pdo is a structure which contains the pdo to transmit bus_id is hardware dependant return canSend(bus_id,&m) or 0xFF if error request can take the value REQUEST or NOT_A_REQUEST

    Definition at line 37 of file pdo.c.

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_PDO::cobId, struct_s_timer_entry::d, Message::data, struct_s_PDO::data, Message::len, struct_s_PDO::len, MSG_WAR, struct_CO_Data::nodeState, NOT_A_REQUEST, Operational, REQUEST, Message::rtr, UNS8, and SHORT_CAN::w. +

    Referenced by PDOmGR(), and sendPDOrequest(). +

    +Here is the call graph for this function:

    + + + + +

    @@ -333,7 +305,7 @@ UNS8 sendPDOrequest ( - CO_Data *  + CO_Datad, @@ -361,22 +333,20 @@

    Returns:

    -Sending the request only if the cobid have been found on the PDO receive

    -part dictionary

    -get the CobId -

    Definition at line 181 of file pdo.c.

    -References sendPDO(). +References struct_s_PDO::cobId, struct_s_timer_entry::d, struct_CO_Data::firstIndex, struct_CO_Data::lastIndex, struct_s_PDO::len, MSG_WAR, struct_CO_Data::objdict, s_quick_index::PDO_RCV, td_subindex::pObject, td_indextable::pSubindex, REQUEST, sendPDO(), UNS16, UNS32, and UNS8.

    Here is the call graph for this function:

    - - - -

    -


    Generated on Tue Jun 5 18:32:07 2007 for CanFestival by  + + + + + +

    +


    Generated on Fri Jun 8 08:52:12 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.map --- a/doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,2 +1,4 @@ base referer rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 140,6 223,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 273,6 353,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 404,6 535,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.md5 --- a/doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -da563ac541376a3c461f365523b93a27 \ No newline at end of file +2cbcc3309b73294b737fd3e42b913d81 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.png Binary file doc/doxygen/html/pdo_8c_298b8291fa35cca22264cf8a70bf138a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c__incl.map --- a/doc/doxygen/html/pdo_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $pdo_8h.html 162,325 220,349 +rect $objacces_8h.html 452,496 546,520 +rect $win32_2canfestival_8h.html 138,569 244,593 +rect $win32_2applicfg_8h.html 731,443 819,467 +rect $def_8h.html 471,7 527,31 +rect $data_8h.html 314,325 378,349 +rect $config_8h.html 602,7 676,31 +rect $can_8h.html 470,544 528,568 +rect $objdictdef_8h.html 448,205 550,229 +rect $sdo_8h.html 470,448 528,472 +rect $states_8h.html 462,349 536,373 +rect $lifegrd_8h.html 460,107 538,131 +rect $sync_8h.html 466,253 532,277 +rect $nmtMaster_8h.html 446,301 552,325 +rect $timer_8h.html 604,443 674,467 +rect $win32_2timerscfg_8h.html 726,567 824,591 +rect $can__driver_8h.html 294,569 398,593 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c__incl.md5 --- a/doc/doxygen/html/pdo_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -064750cf6db84bededd5a8dcc467c2cb \ No newline at end of file +d7c0651145a6bd513ba35989efad885c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c__incl.png Binary file doc/doxygen/html/pdo_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.map --- a/doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,9 +1,11 @@ base referer rect $pdo_8c.html#e468510c9f77f502207d961d26389918 171,6 251,30 -rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 162,54 260,78 -rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 170,102 252,126 -rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 162,150 260,174 -rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 311,54 418,78 -rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 468,102 636,126 -rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 323,102 406,126 -rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 311,150 418,174 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 161,102 260,126 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 169,150 252,174 +rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 161,54 260,78 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 311,102 417,126 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 468,78 636,102 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 323,150 405,174 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 512,150 592,174 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 687,150 817,174 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 311,54 417,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.md5 --- a/doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -77426dd044ebd223ddd53546cba2abc3 \ No newline at end of file +9a0c4ed0ea358c46cb600a831db0fd85 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.png Binary file doc/doxygen/html/pdo_8c_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.map --- a/doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,2 +1,4 @@ base referer rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 191,6 273,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 324,6 404,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 455,6 585,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.md5 --- a/doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -19b11cf7c41e6afe5c5710d68d21aef4 \ No newline at end of file +5139ea283c3b2c8c5be0d0e2c6914657 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.png Binary file doc/doxygen/html/pdo_8c_cc08547009d3d2755d2291999941694c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_d9a4a4f0a4ef48866c6184ccbd30f210_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8c_d9a4a4f0a4ef48866c6184ccbd30f210_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 140,6 220,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 271,6 401,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_d9a4a4f0a4ef48866c6184ccbd30f210_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8c_d9a4a4f0a4ef48866c6184ccbd30f210_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a0cb8306f4d5c49d370396562770e60a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8c_d9a4a4f0a4ef48866c6184ccbd30f210_cgraph.png Binary file doc/doxygen/html/pdo_8c_d9a4a4f0a4ef48866c6184ccbd30f210_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,97 @@ + + +CanFestival: include/pdo.h Source File + + + + + + + +

    pdo.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __pdo_h__
    +00024 #define __pdo_h__
    +00025 
    +00026 #include <applicfg.h>
    +00027 #include <def.h>
    +00028 
    +00029 /* The process_var structure
    +00030  Used to store the PDO before the transmission or the reception.
    +00031 */
    +00032 typedef struct struct_s_process_var {
    +00033   UNS8 count; /* Size of data. Ex : for a PDO of 6 bytes of data, count = 6 */
    +00034   /* WARNING s_process_var.data is subject to ENDIANISATION 
    +00035    * (with respect to CANOPEN_BIG_ENDIAN)
    +00036    */
    +00037   UNS8 data[PDO_MAX_LEN];
    +00038 }s_process_var;
    +00039 
    +00040 #include "data.h"
    +00041 
    +00043 typedef struct struct_s_PDO {
    +00044   UNS32 cobId;    /* COB-ID */
    +00045   UNS8           len;     /* Number of data transmitted (in data[]) */
    +00046   UNS8           data[8]; /* Contain the data */
    +00047 }s_PDO;
    +00048 
    +00055 UNS8 sendPDO (CO_Data* d, s_PDO pdo, UNS8 request);
    +00056 
    +00064 UNS8 PDOmGR (CO_Data* d, UNS32 cobId);
    +00065 
    +00071 UNS8 buildPDO (CO_Data* d, UNS16 index);
    +00072 
    +00078 UNS8 sendPDOrequest (CO_Data* d, UNS32 cobId);
    +00079 
    +00084 UNS8 proceedPDO (CO_Data* d, Message *m);
    +00085 
    +00086 /* used by the application to send a variable by PDO.
    +00087  * Check in which PDO the variable is mapped, and send the PDO. 
    +00088  * of course, the others variables mapped in the PDO are also sent !
    +00089  * ( ie when a specific event occured)
    +00090  * bus_id is hardware dependant
    +00091  * variable is a pointer to the variable which has to be sent. Must be
    +00092  * defined in the object dictionary
    +00093  * return 0xFF if error, else return 0
    +00094  */
    +00095 UNS8 sendPDOevent (CO_Data* d, void * variable);
    +00096 
    +00097 /* copy bit per bit in little endian */
    +00098 void CopyBits(UNS8 NbBits, UNS8* SrcByteIndex, UNS8 SrcBitIndex, UNS8 SrcBigEndian, UNS8* DestByteIndex, UNS8 DestBitIndex, UNS8 DestBigEndian);
    +00099 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,472 @@ + + +CanFestival: include/pdo.h File Reference + + + + + + + +

    pdo.h File Reference

    #include <applicfg.h>
    +#include <def.h>
    +#include "data.h"
    + +

    +Include dependency graph for pdo.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  struct_s_process_var
    struct  struct_s_PDO

    Typedefs

    typedef struct_s_process_var s_process_var
    typedef struct_s_PDO s_PDO

    Functions

    UNS8 sendPDO (CO_Data *d, s_PDO pdo, UNS8 request)
    UNS8 PDOmGR (CO_Data *d, UNS32 cobId)
    UNS8 buildPDO (CO_Data *d, UNS16 index)
    UNS8 sendPDOrequest (CO_Data *d, UNS32 cobId)
    UNS8 proceedPDO (CO_Data *d, Message *m)
    UNS8 sendPDOevent (CO_Data *d, void *variable)
    void CopyBits (UNS8 NbBits, UNS8 *SrcByteIndex, UNS8 SrcBitIndex, UNS8 SrcBigEndian, UNS8 *DestByteIndex, UNS8 DestBitIndex, UNS8 DestBigEndian)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef struct struct_s_PDO s_PDO
    +
    +
    + +

    +The PDO structure +

    +

    + +

    +
    + + + + +
    typedef struct struct_s_process_var s_process_var
    +
    +
    + +

    + +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 buildPDO (CO_Data d,
    UNS16  index 
    )
    +
    +
    + +

    +Prepare the PDO defined at index to be sent by PDOmGR Copy all the data to transmit in process_var *pwCobId : returns the value of the cobid. (subindex 1) Return 0 or 0xFF if error. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void CopyBits (UNS8  NbBits,
    UNS8 *  SrcByteIndex,
    UNS8  SrcBitIndex,
    UNS8  SrcBigEndian,
    UNS8 *  DestByteIndex,
    UNS8  DestBitIndex,
    UNS8  DestBigEndian 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + + +
    NbBits 
    SrcByteIndex 
    SrcBitIndex 
    SrcBigEndian 
    DestByteIndex 
    DestBitIndex 
    DestBigEndian 
    +
    + +

    +Definition at line 430 of file pdo.c. +

    +References INTEGER8, and UNS8. +

    +Referenced by proceedPDO(), and proceedSYNC(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 PDOmGR (CO_Data d,
    UNS32  cobId 
    )
    +
    +
    + +

    +PDO Manager

    +

    Parameters:
    + + + +
    d 
    cobId 
    +
    +
    Returns:
    + +

    +Definition at line 79 of file pdo.c. +

    +References struct_s_PDO::cobId, struct_s_process_var::count, struct_s_timer_entry::d, struct_s_process_var::data, struct_s_PDO::data, struct_s_PDO::len, MSG_WAR, NOT_A_REQUEST, struct_CO_Data::process_var, sendPDO(), and UNS8. +

    +Referenced by proceedPDO(), and proceedSYNC(). +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 sendPDO (CO_Data d,
    s_PDO  pdo,
    UNS8  request 
    )
    +
    +
    + +

    +Transmit a PDO data frame on the bus bus_id pdo is a structure which contains the pdo to transmit bus_id is hardware dependant return canSend(bus_id,&m) or 0xFF if error request can take the value REQUEST or NOT_A_REQUEST +

    +Definition at line 37 of file pdo.c. +

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_PDO::cobId, struct_s_timer_entry::d, struct_s_PDO::data, Message::data, struct_s_PDO::len, Message::len, MSG_WAR, struct_CO_Data::nodeState, NOT_A_REQUEST, Operational, REQUEST, Message::rtr, UNS8, and SHORT_CAN::w. +

    +Referenced by PDOmGR(), and sendPDOrequest(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 sendPDOevent (CO_Data d,
    void *  variable 
    )
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 sendPDOrequest (CO_Data d,
    UNS32  cobId 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    cobId 
    +
    +
    Returns:
    + +

    +Definition at line 181 of file pdo.c. +

    +References struct_s_PDO::cobId, struct_s_timer_entry::d, struct_CO_Data::firstIndex, struct_CO_Data::lastIndex, struct_s_PDO::len, MSG_WAR, struct_CO_Data::objdict, s_quick_index::PDO_RCV, td_subindex::pObject, td_indextable::pSubindex, REQUEST, sendPDO(), UNS16, UNS32, and UNS8. +

    +Here is the call graph for this function:

    + + + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:02 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_298b8291fa35cca22264cf8a70bf138a_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_298b8291fa35cca22264cf8a70bf138a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 140,6 223,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 273,6 353,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 404,6 535,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_298b8291fa35cca22264cf8a70bf138a_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_298b8291fa35cca22264cf8a70bf138a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2cbcc3309b73294b737fd3e42b913d81 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_298b8291fa35cca22264cf8a70bf138a_cgraph.png Binary file doc/doxygen/html/pdo_8h_298b8291fa35cca22264cf8a70bf138a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,20 @@ +base referer +rect $pdo_8c.html 735,180 817,204 +rect $data_8h.html 169,473 287,497 +rect $lifegrd_8c.html 725,617 827,641 +rect $sync_8c.html 732,255 820,279 +rect $unix_8c.html 703,316 849,340 +rect $objdict_8h.html 353,377 636,401 +rect $TestMasterSlave_2TestMaster_8h.html 351,425 639,449 +rect $TestSlave_8h.html 353,473 636,497 +rect $TestMasterMicroMod_2TestMaster_8h.html 336,521 653,545 +rect $win32test_8h.html 375,569 615,593 +rect $objacces_8h.html 421,180 568,204 +rect $lifegrd_8h.html 429,617 560,641 +rect $nmtMaster_8h.html 415,716 575,740 +rect $nmtSlave_8h.html 419,764 571,788 +rect $timer_8h.html 433,812 556,836 +rect $sdo_8h.html 720,873 832,897 +rect $states_8h.html 431,84 559,108 +rect $unix_2canfestival_8h.html 397,132 592,156 +rect $win32_2canfestival_8h.html 391,279 599,303 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +b71fd7c081f6efc2e4f3c9fb847c64f6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h__dep__incl.png Binary file doc/doxygen/html/pdo_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $win32_2applicfg_8h.html 568,292 656,316 +rect $def_8h.html 308,75 364,99 +rect $data_8h.html 169,320 233,344 +rect $config_8h.html 439,75 513,99 +rect $can_8h.html 447,196 505,220 +rect $objdictdef_8h.html 285,224 387,248 +rect $objacces_8h.html 289,272 383,296 +rect $sdo_8h.html 307,416 365,440 +rect $states_8h.html 299,320 373,344 +rect $lifegrd_8h.html 297,368 375,392 +rect $sync_8h.html 303,464 369,488 +rect $nmtMaster_8h.html 283,512 389,536 +rect $timer_8h.html 441,417 511,441 +rect $win32_2timerscfg_8h.html 563,384 661,408 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d8627026690ada88a38be176e4aed8b2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h__incl.png Binary file doc/doxygen/html/pdo_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_a6774c219dc64c1cec4b4721ba23e15a_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_a6774c219dc64c1cec4b4721ba23e15a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 140,6 220,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 271,6 401,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_a6774c219dc64c1cec4b4721ba23e15a_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_a6774c219dc64c1cec4b4721ba23e15a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a0cb8306f4d5c49d370396562770e60a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_a6774c219dc64c1cec4b4721ba23e15a_cgraph.png Binary file doc/doxygen/html/pdo_8h_a6774c219dc64c1cec4b4721ba23e15a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,11 @@ +base referer +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 171,6 251,30 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 161,102 260,126 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 169,150 252,174 +rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 161,54 260,78 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 311,102 417,126 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 468,78 636,102 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 323,150 405,174 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 512,150 592,174 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 687,150 817,174 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 311,54 417,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9a0c4ed0ea358c46cb600a831db0fd85 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.png Binary file doc/doxygen/html/pdo_8h_ae7d661cd3ef7adf93a0d08fdb15b7f2_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_cc08547009d3d2755d2291999941694c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_cc08547009d3d2755d2291999941694c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 191,6 273,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 324,6 404,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 455,6 585,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_cc08547009d3d2755d2291999941694c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/pdo_8h_cc08547009d3d2755d2291999941694c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +5139ea283c3b2c8c5be0d0e2c6914657 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/pdo_8h_cc08547009d3d2755d2291999941694c_cgraph.png Binary file doc/doxygen/html/pdo_8h_cc08547009d3d2755d2291999941694c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,271 @@ + + +CanFestival: include/hcs12/asm-m68hc12/ports.h Source File + + + + + + + +

    ports.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 /* m68hc11/ports.h -- Definition of 68HC11 ports
    +00023    Copyright 1999, 2000 Free Software Foundation, Inc.
    +00024    Written by Stephane Carrez (stcarrez@worldnet.fr)
    +00025 
    +00026 This file is part of GDB, GAS, and the GNU binutils.
    +00027 
    +00028 GDB, GAS, and the GNU binutils are free software; you can redistribute
    +00029 them and/or modify them under the terms of the GNU General Public
    +00030 License as published by the Free Software Foundation; either version
    +00031 1, or (at your option) any later version.
    +00032 
    +00033 GDB, GAS, and the GNU binutils are distributed in the hope that they
    +00034 will be useful, but WITHOUT ANY WARRANTY; without even the implied
    +00035 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
    +00036 the GNU General Public License for more details.
    +00037 
    +00038 You should have received a copy of the GNU General Public License
    +00039 along with this file; see the file COPYING.  If not, write to the Free
    +00040 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    +00041 
    +00042 
    +00043 /* Revised francis.dupin@inrets.fr 2003-07 */
    +00044 
    +00045 #ifndef _M68HC11_PORTS_H
    +00046 #define _M68HC11_PORTS_H
    +00047 
    +00048 
    +00049 
    +00050 #include <asm-m68hc12/ports_def.h>
    +00051 
    +00052 /* Prototypes */
    +00053                  unsigned short get_timer_counter (void);
    +00054 void             set_timer_counter (unsigned short value);
    +00055 void             cop_reset (void);
    +00056 
    +00057 
    +00058 /* Must me adapted to hc12
    +00059 void             timer_acknowledge (void);
    +00060 void             timer_initialize_rate (unsigned char divisor);
    +00061 void             set_bus_expanded (void);
    +00062 void             set_bus_single_chip (void);
    +00063 unsigned short * get_input_capture_1 (void);
    +00064 void             set_input_capture_1 (unsigned short value);
    +00065 unsigned short * get_input_capture_2 (void);
    +00066 void             set_input_capture_2 (unsigned short value);
    +00067 unsigned short * get_input_capture_3 (void);
    +00068 void             set_input_capture_3 (unsigned short value);
    +00069 unsigned short * get_output_compare_1 (void);
    +00070 void             set_output_compare_1 (unsigned short value);
    +00071 unsigned short * get_output_compare_2 (void);
    +00072 void             set_output_compare_2 (unsigned short value);
    +00073 unsigned short * get_output_compare_3 (void);
    +00074 void             set_output_compare_3 (unsigned short value);
    +00075 unsigned short * get_output_compare_4 (void);
    +00076 void             set_output_compare_4 (unsigned short value);
    +00077 unsigned short * get_output_compare_5 (void);
    +00078 void             set_output_compare_5 (unsigned short value);
    +00079 */
    +00080 
    +00081 
    +00082 extern inline unsigned short
    +00083 get_timer_counter (void)
    +00084 {
    +00085   return ((unsigned volatile short*) &_io_ports[TCNTH])[0];
    +00086 }
    +00087 
    +00088 extern inline void
    +00089 set_timer_counter (unsigned short value)
    +00090 {
    +00091   ((unsigned volatile short*) &_io_ports[TCNTH])[0] = value;
    +00092 }
    +00093 
    +00094 
    +00095 /* Reset the COP.  */
    +00096 extern inline void
    +00097 cop_reset (void)
    +00098 {
    +00099   _io_ports[ARMCOP] = 0x55;
    +00100   _io_ports[ARMCOP] = 0xAA;
    +00101 }
    +00102 
    +00103 
    +00104 #if 0
    +00105 /* Acknowledge the timer interrupt.  */
    +00106 extern inline void
    +00107 timer_acknowledge (void)
    +00108 {
    +00109   _io_ports[TFLG2] = 0x80;
    +00110 }
    +00111 
    +00112 /* Initialize the timer.  */
    +00113 extern inline void
    +00114 timer_initialize_rate (unsigned char divisor)
    +00115 {
    +00116   _io_ports[M6811_TMSK2] = M6811_RTII | divisor;
    +00117 }
    +00118 
    +00119 extern inline void
    +00120 cop_optional_reset (void)
    +00121 {
    +00122 #if defined(M6811_USE_COP) && M6811_USE_COP == 1
    +00123   cop_reset ();
    +00124 #endif
    +00125 }
    +00126 
    +00127 /* Set the board in the expanded mode to get access to external bus.  */
    +00128 extern inline void
    +00129 set_bus_expanded (void)
    +00130 {
    +00131   _io_ports[M6811_HPRIO] |= M6811_MDA;
    +00132 }
    +00133 
    +00134 
    +00135 /* Set the board in single chip mode.  */
    +00136 extern inline void
    +00137 set_bus_single_chip (void)
    +00138 {
    +00139   _io_ports[M6811_HPRIO] &= ~M6811_MDA;
    +00140 }
    +00141 
    +00142 extern inline unsigned short
    +00143 get_input_capture_1 (void)
    +00144 {
    +00145   return ((unsigned volatile short*) &_io_ports[M6811_TIC1_H])[0];
    +00146 }
    +00147 
    +00148 extern inline void
    +00149 set_input_capture_1 (unsigned short value)
    +00150 {
    +00151   ((unsigned volatile short*) &_io_ports[M6811_TIC1_H])[0] = value;
    +00152 }
    +00153 
    +00154 extern inline unsigned short
    +00155 get_input_capture_2 (void)
    +00156 {
    +00157   return ((unsigned volatile short*) &_io_ports[M6811_TIC2_H])[0];
    +00158 }
    +00159 
    +00160 extern inline void
    +00161 set_input_capture_2 (unsigned short value)
    +00162 {
    +00163   ((unsigned volatile short*) &_io_ports[M6811_TIC2_H])[0] = value;
    +00164 }
    +00165 
    +00166 extern inline unsigned short
    +00167 get_input_capture_3 (void)
    +00168 {
    +00169   return ((unsigned volatile short*) &_io_ports[M6811_TIC3_H])[0];
    +00170 }
    +00171 
    +00172 extern inline void
    +00173 set_input_capture_3 (unsigned short value)
    +00174 {
    +00175   ((unsigned volatile short*) &_io_ports[M6811_TIC3_H])[0] = value;
    +00176 }
    +00177 
    +00178 /* Get output compare 16-bit register.  */
    +00179 extern inline unsigned short
    +00180 get_output_compare_1 (void)
    +00181 {
    +00182   return ((unsigned volatile short*) &_io_ports[M6811_TOC1_H])[0];
    +00183 }
    +00184 
    +00185 extern inline void
    +00186 set_output_compare_1 (unsigned short value)
    +00187 {
    +00188   ((unsigned volatile short*) &_io_ports[M6811_TOC1_H])[0] = value;
    +00189 }
    +00190 
    +00191 extern inline unsigned short
    +00192 get_output_compare_2 (void)
    +00193 {
    +00194   return ((unsigned volatile short*) &_io_ports[M6811_TOC2_H])[0];
    +00195 }
    +00196 
    +00197 extern inline void
    +00198 set_output_compare_2 (unsigned short value)
    +00199 {
    +00200   ((unsigned volatile short*) &_io_ports[M6811_TOC2_H])[0] = value;
    +00201 }
    +00202 
    +00203 extern inline unsigned short
    +00204 get_output_compare_3 (void)
    +00205 {
    +00206   return ((unsigned volatile short*) &_io_ports[M6811_TOC3_H])[0];
    +00207 }
    +00208 
    +00209 extern inline void
    +00210 set_output_compare_3 (unsigned short value)
    +00211 {
    +00212   ((unsigned volatile short*) &_io_ports[M6811_TOC3_H])[0] = value;
    +00213 }
    +00214 
    +00215 extern inline unsigned short
    +00216 get_output_compare_4 (void)
    +00217 {
    +00218   return ((unsigned volatile short*) &_io_ports[M6811_TOC4_H])[0];
    +00219 }
    +00220 
    +00221 extern inline void
    +00222 set_output_compare_4 (unsigned short value)
    +00223 {
    +00224   ((unsigned volatile short*) &_io_ports[M6811_TOC4_H])[0] = value;
    +00225 }
    +00226 
    +00227 extern inline unsigned short
    +00228 get_output_compare_5 (void)
    +00229 {
    +00230   return ((unsigned volatile short*) &_io_ports[M6811_TOC5_H])[0];
    +00231 }
    +00232 
    +00233 extern inline void
    +00234 set_output_compare_5 (unsigned short value)
    +00235 {
    +00236   ((unsigned volatile short*) &_io_ports[M6811_TOC5_H])[0] = value;
    +00237 }
    +00238 
    +00239 #endif
    +00240 
    +00241 
    +00242 
    +00243 
    +00244 #endif /* _M68HC11_PORTS_H */
    +00245 
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,124 @@ + + +CanFestival: include/hcs12/asm-m68hc12/ports.h File Reference + + + + + + + +

    ports.h File Reference

    #include <asm-m68hc12/ports_def.h>
    + +

    +Include dependency graph for ports.h:

    + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file. + + + + + + + + +

    Functions

    unsigned short get_timer_counter (void)
    void set_timer_counter (unsigned short value)
    void cop_reset (void)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void cop_reset (void   )  [inline]
    +
    +
    + +

    + +

    +Definition at line 97 of file ports.h. +

    +References _io_ports, and ARMCOP. +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short get_timer_counter (void   )  [inline]
    +
    +
    + +

    + +

    +Definition at line 83 of file ports.h. +

    +References _io_ports, and TCNTH. +

    +

    + +

    +
    + + + + + + + + + +
    void set_timer_counter (unsigned short  value  )  [inline]
    +
    +
    + +

    + +

    +Definition at line 89 of file ports.h. +

    +References _io_ports, and TCNTH. +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $appli_8c.html 324,6 593,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +4688adfd4fde034e33cf7b25f7aa6d20 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h__dep__incl.png Binary file doc/doxygen/html/ports_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $ports__def_8h.html 324,6 521,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +5804b71d783c87d5979e60ba425d2b7f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports_8h__incl.png Binary file doc/doxygen/html/ports_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports__def_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports__def_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,794 @@ + + +CanFestival: include/hcs12/asm-m68hc12/ports_def.h Source File + + + + + + + +

    ports_def.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 /*
    +00023 Definition of the i/o ports of the Motorola HCS12
    +00024 */
    +00025 
    +00026 /*
    +00027 On HCS12, ports are maped by default at 0X0000. (see ports.s)
    +00028 It can also be done at link stage with an option in
    +00029 command line : for example to map at 0X8000
    +00030 --defsym _io_ports8=0X8000 --defsym _io_ports16=0X8000
    +00031 Or in the file memory.x :
    +00032 PROVIDE (_io_ports8 = 0X8000);
    +00033 PROVIDE (_io_ports16 = 0X8000);
    +00034 (see portsaccess.h)
    +00035 I wonder if the value in INITRG must not be changed too 
    +00036 at run time.
    +00037 */
    +00038 
    +00039 #ifndef __HCS12_PORTS__
    +00040 #define __HCS12_PORTS__
    +00041 
    +00042 #define  PORTA     0x0000        
    +00043 #define  PORTB     0x0001    
    +00044 #define  DDRA      0x0002    
    +00045 #define  DDRB      0x0003    
    +00046 
    +00047 #define  PORTE     0x0008    
    +00048 #define  DDRE      0x0009    
    +00049 #define  PEAR      0x000A    
    +00050 #define  MODE      0x000B    
    +00051 #define  PUCR      0x000C    
    +00052 #define  RDRIV     0x000D    
    +00053 #define  EBICTL    0x000E    
    +00054 
    +00055 #define  INITRM    0x0010    
    +00056 #define  INITRG    0x0011    
    +00057 #define  INITEE    0x0012    
    +00058 #define  MISC      0x0013    
    +00059 #define  MTST0     0x0014    
    +00060 #define  ITCR      0x0015    
    +00061 #define  ITEST     0x0016    
    +00062 #define  MTST1     0x0017    
    +00063 
    +00064 #define  PARTIDH   0x001A    
    +00065 #define  PARTIDL   0x001B    
    +00066 #define  MEMSIZ0   0x001C    
    +00067 #define  MEMSIZ1   0x001D    
    +00068 #define  INTCR     0x001E    
    +00069 #define  HPRIO     0x001F    
    +00070 
    +00071 #define  BKPCT0    0x0028    
    +00072 #define  BKPCT1    0x0029    
    +00073 #define  BKP0X     0x002A    
    +00074 #define  BKP0H     0x002B    
    +00075 #define  BKP0L     0x002C    
    +00076 #define  BKP1X     0x002D    
    +00077 #define  BKP1H     0x002E    
    +00078 #define  BKP1L     0x002F    
    +00079 #define  PPAGE     0x0030    
    +00080 
    +00081 #define  PORTK     0x0032    
    +00082 #define  DDRK      0x0033    
    +00083 #define  SYNR      0x0034    
    +00084 #define  REFDV     0x0035    
    +00085 #define  CTFLG     0x0036    
    +00086 #define  CRGFLG    0x0037    
    +00087 #define  CRGINT    0x0038    
    +00088 #define  CLKSEL    0x0039    
    +00089 #define  PLLCTL    0x003A    
    +00090 #define  RTICTL    0x003B    
    +00091 #define  COPCTL    0x003C    
    +00092 #define  FORBYP    0x003D    
    +00093 #define  CTCTL     0x003E 
    +00094 #define  ARMCOP    0x003F    
    +00095 #define  TIOS      0x0040    
    +00096 #define  TCFORC    0x0041    
    +00097 #define  TOC7M     0x0042    
    +00098 #define  TOC7D     0x0043    
    +00099 #define  TCNTH     0x0044
    +00100 #define  TCNTL     0x0045
    +00101 #define  TSCR1     0x0046    
    +00102 #define  TTOV      0x0047    
    +00103 #define  TCTL1     0x0048    
    +00104 #define  TCTL2     0x0049    
    +00105 #define  TCTL3     0x004A    
    +00106 #define  TCTL4     0x004B    
    +00107 #define  TIE       0x004C    
    +00108 #define  TSCR2     0x004D    
    +00109 #define  TFLG1     0x004E    
    +00110 #define  TFLG2     0x004F    
    +00111 #define  TC0H      0x0050
    +00112 #define  TC0L      0x0051
    +00113 #define  TC1H      0x0052
    +00114 #define  TC1L      0x0053
    +00115 #define  TC2H      0x0054
    +00116 #define  TC2L      0x0055
    +00117 #define  TC3H      0x0056
    +00118 #define  TC3L      0x0057
    +00119 #define  TC4H      0x0058
    +00120 #define  TC4L      0x0059
    +00121 #define  TC5H      0x005A
    +00122 #define  TC5L      0x005B
    +00123 #define  TC6H      0x005C
    +00124 #define  TC6L      0x005D
    +00125 #define  TC7H      0x005E
    +00126 #define  TC7L      0x005F
    +00127 #define  PACTL     0x0060    
    +00128 #define  PAFLG     0x0061    
    +00129 #define  PACN3H    0x0062
    +00130 #define  PACN2L    0x0063
    +00131 #define  PACN1H    0x0064
    +00132 #define  PACN0L    0x0065
    +00133 #define  MCCTL     0x0066    
    +00134 #define  MCFLG     0x0067    
    +00135 #define  ICPAR     0x0068    
    +00136 #define  DLYCT     0x0069    
    +00137 #define  ICOVW     0x006A    
    +00138 #define  ICSYS     0x006B    
    +00139 
    +00140 #define  TIMTST    0x006D    
    +00141 
    +00142 #define  PBCTL     0x0070    
    +00143 #define  PBFLG     0x0071    
    +00144 #define  PA3H      0x0072    
    +00145 #define  PA2H      0x0073    
    +00146 #define  PA1H      0x0074    
    +00147 #define  PA0H      0x0075    
    +00148 #define  MCCNTH    0x0076
    +00149 #define  MCCNTL    0x0077
    +00150 #define  TC0HH     0x0078
    +00151 #define  TC0HL     0x0079
    +00152 #define  TC1HH     0x007A
    +00153 #define  TC1HL     0x007B
    +00154 #define  TC2HH     0x007C
    +00155 #define  TC2HL     0x007D
    +00156 #define  TC3HH     0x007E
    +00157 
    +00158 #define  ATD0CTL0  0x0080    
    +00159 #define  ATD00CTL1 0x0081     
    +00160 #define  ATD0CTL2  0x0082     
    +00161 #define  ATD0CTL3  0x0083    
    +00162 #define  ATD0CTL4  0x0084    
    +00163 #define  ATD0CTL5  0x0085    
    +00164 #define  ATD0STAT0 0x0086    
    +00165 #define  ATD0STAT1 0x0087    
    +00166 #define  ATD0TEST0 0x0088    
    +00167 #define  ATD0TEST1 0x0089    
    +00168 
    +00169 #define  ATD0DIEN  0x008D    
    +00170 
    +00171 #define  PORTAD0   0x008F    
    +00172 #define  ATD0DR0H  0x0090    
    +00173 #define  ATD0DR0L  0x0091    
    +00174 #define  ATD0DR1H  0x0092    
    +00175 #define  ATD0DR1L  0x0093    
    +00176 #define  ATD0DR2H  0x0094    
    +00177 #define  ATD0DR2L  0x0095    
    +00178 #define  ATD0DR3H  0x0096   
    +00179 #define  ATD0DR3L  0x0097    
    +00180 #define  ATD0DR4H  0x0098    
    +00181 #define  ATD0DR4L  0x0099    
    +00182 #define  ATD0DR5H  0x009A    
    +00183 #define  ATD0DR5L  0x009B    
    +00184 #define  ATD0DR6H  0x009C    
    +00185 #define  ATD0DR6L  0x009D    
    +00186 #define  ATD0DR7H  0x009E    
    +00187 #define  ATD0DR7L  0x009F    
    +00188 #define  PWME      0x00A0    
    +00189 #define  PWMPOL    0x00A1    
    +00190 #define  PWMCLK    0x00A2    
    +00191 #define  PWMPRCLK  0x00A3    
    +00192 #define  PWMCAE    0x00A4    
    +00193 #define  PWMCTL    0x00A5    
    +00194 #define  PWMTST    0x00A6    
    +00195 #define  PWMPRSC   0x00A7    
    +00196 #define  PWMSCLA   0x00A8    
    +00197 #define  PWMSCLB   0x00A9    
    +00198 #define  PWMSCNTA  0x00AA    
    +00199 #define  PWMSCNTB  0x00AB    
    +00200 #define  PWMCNT0   0x00AC    
    +00201 #define  PWMCNT1   0x00AD    
    +00202 #define  PWMCNT2   0x00AE    
    +00203 #define  PWMCNT3   0x00AF    
    +00204 #define  PWMCNT4   0x00B0    
    +00205 #define  PWMCNT5   0x00B1    
    +00206 #define  PWMCNT6   0x00B2    
    +00207 #define  PWMCNT7   0x00B3    
    +00208 #define  PWMPER0   0x00B4    
    +00209 #define  PWMPER1   0x00B5    
    +00210 #define  PWMPER2   0x00B6    
    +00211 #define  PWMPER3   0x00B7    
    +00212 #define  PWMPER4   0x00B8    
    +00213 #define  PWMPER5   0x00B9    
    +00214 #define  PWMPER6   0x00BA    
    +00215 #define  PWMPER7   0x00BB    
    +00216 #define  PWMDTY0   0x00BC    
    +00217 #define  PWMDTY1   0x00BD    
    +00218 #define  PWMDTY2   0x00BE    
    +00219 #define  PWMDTY3   0x00BF    
    +00220 #define  PWMDTY4   0x00C0    
    +00221 #define  PWMDTY5   0x00C1    
    +00222 #define  PWMDTY6   0x00C2    
    +00223 #define  PWMDTY7   0x00C3    
    +00224 #define  PWMSDN    0x00C4   
    +00225 
    +00226 #define  SCI0BDH   0x00C8    
    +00227 #define  SCI0BDL   0x00C9    
    +00228 #define  SC0CR1    0x00CA    
    +00229 #define  SCI0CR2   0x00CB    
    +00230 #define  SCI0SR1   0x00CC    
    +00231 #define  SC0SR2    0x00CD    
    +00232 #define  SCI0DRH   0x00CE    
    +00233 #define  SCI0DRL   0x00CF    
    +00234 #define  SCI1BDH   0x00D0    
    +00235 #define  SCI1BDL   0x00D1    
    +00236 #define  SC1CR1    0x00D2    
    +00237 #define  SCI1CR2   0x00D3    
    +00238 #define  SCI1SR1   0x00D4    
    +00239 #define  SC1SR2    0x00D5    
    +00240 #define  SCI1DRH   0x00D6    
    +00241 #define  SCI1DRL   0x00D7    
    +00242 #define  SPI0CR1   0x00D8    
    +00243 #define  SPI0CR2   0x00D9    
    +00244 #define  SPI0BR    0x00DA    
    +00245 #define  SPI0SR    0x00DB   
    +00246 
    +00247 #define  SPI0DR    0x00DD    
    +00248 
    +00249 #define  IBAD      0x00E0    
    +00250 #define  IBFD      0x00E1    
    +00251 #define  IBCR      0x00E2    
    +00252 #define  IBSR      0x00E3    
    +00253 #define  IICDR     0x00E4    
    +00254 
    +00255 #define  DLCBCR1   0x00E8    
    +00256 #define  DLCBSVR   0x00E9    
    +00257 #define  DLCBCR2   0x00EA    
    +00258 #define  DLCBDR    0x00EB    
    +00259 #define  DLCBARD   0x00EC    
    +00260 #define  DLCBRSR   0x00ED    
    +00261 #define  DLCSCR    0x00EE    
    +00262 #define  DLCBSTAT  0x00EF    
    +00263 #define  SPI1CR1   0x00F0    
    +00264 #define  SPI1CR2   0x00F1    
    +00265 #define  SPI1BR    0x00F2  
    +00266 #define  SPI1SR    0x00F3    
    +00267 
    +00268 #define  SPI1DR    0x00F5    
    +00269 
    +00270 #define  SPI2CR1   0x00F8    
    +00271 #define  SPI2CR2   0x00F9    
    +00272 #define  SPI2BR    0x00FA    
    +00273 #define  SPI2SR    0x00FB    
    +00274 
    +00275 #define  SPI2DR    0x00FD    
    +00276 
    +00277 #define  FCLKDIV   0x0100     
    +00278 #define  FSEC      0x0101    
    +00279 
    +00280 #define  FCNFG     0x0103    
    +00281 #define  FPROT     0x0104    
    +00282 #define  FSTAT     0x0105    
    +00283 #define  FCMD      0x0106    
    +00284 
    +00285 #define  ECLKDIV   0x0110   
    +00286 
    +00287 #define  ECNFG     0x0113    
    +00288 #define  EPROT     0x0114    
    +00289 #define  ESTAT     0x0115    
    +00290 #define  ECMD      0x0116    
    +00291 
    +00292 #define  ATD1CTL0  0x0120    
    +00293 #define  ATD1CTL1  0x0121    
    +00294 #define  ATD1CTL2  0x0122    
    +00295 #define  ATD1CTL3  0x0123    
    +00296 #define  ATD1CTL4  0x0124    
    +00297 #define  ATD1CTL5  0x0125    
    +00298 #define  ATD1STAT0 0x0126    
    +00299 #define  ATD1STAT1 0x0127    
    +00300 #define  ATD1TEST0 0x0128    
    +00301 #define  ATD1TEST1 0x0129    
    +00302 
    +00303 #define  ATDDIEN   0x012D    
    +00304 
    +00305 #define  PORTAD1   0x012F    
    +00306 #define  ATD1DR0H  0x0130    
    +00307 #define  ATD1DR0L  0x0131    
    +00308 #define  ATD1DR1H  0x0132    
    +00309 #define  ATD1DR1L  0x0133    
    +00310 #define  ATD1DR2H  0x0134    
    +00311 #define  ATD1DR2L  0x0135    
    +00312 #define  ATD1DR3H  0x0136   
    +00313 #define  ATD1DR3L  0x0137    
    +00314 #define  ATD1DR4H  0x0138    
    +00315 #define  ATD1DR4L  0x0139    
    +00316 #define  ATD1DR5H  0x013A    
    +00317 #define  ATD1DR5L  0x013B    
    +00318 #define  ATD1DR6H  0x013C    
    +00319 #define  ATD1DR6L  0x013D    
    +00320 #define  ATD1DR7H  0x013E    
    +00321 #define  ATD1DR7L  0x013F    
    +00322 #define  CAN0CTL0  0x0140    
    +00323 #define  CAN0CTL1  0x0141    
    +00324 #define  CAN0BTR0  0x0142    
    +00325 #define  CAN0BTR1  0x0143    
    +00326 #define  CAN0RFLG  0x0144    
    +00327 #define  CAN0RIER  0x0145    
    +00328 #define  CAN0TFLG  0x0146    
    +00329 #define  CAN0TIER  0x0147    
    +00330 #define  CAN0TARQ  0x0148    
    +00331 #define  CAN0TAAK  0x0149    
    +00332 #define  CAN0TBSEL 0x014A    
    +00333 #define  CAN0IDAC  0x014B    
    +00334 
    +00335 #define  CAN0RXERR 0x014E     
    +00336 #define  CAN0TXERR 0x014F    
    +00337 #define  CAN0IDAR0 0x0150    
    +00338 #define  CAN0IDAR1 0x0151    
    +00339 #define  CAN0IDAR2 0x0152    
    +00340 #define  CAN0IDAR3 0x0153    
    +00341 #define  CAN0IDMR0 0x0154    
    +00342 #define  CAN0IDMR1 0x0155    
    +00343 #define  CAN0IDMR2 0x0156    
    +00344 #define  CAN0IDMR3 0x0157    
    +00345 #define  CAN0IDAR4 0x0158    
    +00346 #define  CAN0IDAR5 0x0159    
    +00347 #define  CAN0IDAR6 0x015A    
    +00348 #define  CAN0IDAR7 0x015B    
    +00349 #define  CAN0IDMR4 0x015C    
    +00350 #define  CAN0IDMR5 0x015D    
    +00351 #define  CAN0IDMR6 0x015E    
    +00352 #define  CAN0IDMR7 0x015F 
    +00353 #define  CAN0RXFG0 0x0160
    +00354 #define  CAN0RXFG1 0x0161
    +00355 #define  CAN0RXFG2 0x0162
    +00356 #define  CAN0RXFG3 0x0163
    +00357 #define  CAN0RXFG4 0x0164
    +00358 #define  CAN0RXFG5 0x0165
    +00359 #define  CAN0RXFG6 0x0166
    +00360 #define  CAN0RXFG7 0x0167
    +00361 #define  CAN0RXFG8 0x0168
    +00362 #define  CAN0RXFG9 0x0169
    +00363 #define  CAN0RXFGA 0x016A
    +00364 #define  CAN0RXFGB 0x016B
    +00365 #define  CAN0RXFGC 0x016C
    +00366 #define  CAN0RXFGD 0x016D
    +00367 #define  CAN0RXFGE 0x016E
    +00368 #define  CAN0RXFGF 0x016F
    +00369 #define  CAN0TXFG0 0x0170
    +00370 #define  CAN0TXFG1 0x0171
    +00371 #define  CAN0TXFG2 0x0172
    +00372 #define  CAN0TXFG3 0x0173
    +00373 #define  CAN0TXFG4 0x0174
    +00374 #define  CAN0TXFG5 0x0175
    +00375 #define  CAN0TXFG6 0x0176
    +00376 #define  CAN0TXFG7 0x0177
    +00377 #define  CAN0TXFG8 0x0178
    +00378 #define  CAN0TXFG9 0x0179
    +00379 #define  CAN0TXFGA 0x017A
    +00380 #define  CAN0TXFGB 0x017B
    +00381 #define  CAN0TXFGC 0x017C
    +00382 #define  CAN0TXFGD 0x017D
    +00383 #define  CAN0TXFGE 0x017E
    +00384 #define  CAN0TXFGF 0x017F 
    +00385    
    +00386 #define  CAN1CTL0  0x0180    
    +00387 #define  CAN1CTL1  0x0181    
    +00388 #define  CAN1BTR0  0x0182      
    +00389 #define  CAN1BTR1  0x0183    
    +00390 #define  CAN1RFLG  0x0184    
    +00391 #define  CAN1RIER  0x0185    
    +00392 #define  CAN1TFLG  0x0186    
    +00393 #define  CAN1TIER  0x0187    
    +00394 #define  CAN1TARQ  0x0188    
    +00395 #define  CAN1TAAK  0x0189    
    +00396 #define  CAN1TBSEL 0x018A    
    +00397 #define  CAN1IDAC  0x018B      
    +00398 #define  CAN1RXERR 0x018E    
    +00399 #define  CAN1TXERR 0x018F    
    +00400 #define  CAN1IDAR0 0x0190    
    +00401 #define  CAN1IDAR1 0x0191    
    +00402 #define  CAN1IDAR2 0x0192    
    +00403 #define  CAN1IDAR3 0x0193    
    +00404 #define  CAN1IDMR0 0x0194    
    +00405 #define  CAN1IDMR1 0x0195    
    +00406 #define  CAN1IDMR2 0x0196    
    +00407 #define  CAN1IDMR3 0x0197    
    +00408 #define  CAN1IDAR4 0x0198    
    +00409 #define  CAN1IDAR5 0x0199   
    +00410 #define  CAN1IDAR6 0x019A    
    +00411 #define  CAN1IDAR7 0x019B    
    +00412 #define  CAN1IDMR4 0x019C    
    +00413 #define  CAN1IDMR5 0x019D    
    +00414 #define  CAN1IDMR6 0x019E    
    +00415 #define  CAN1IDMR7 0x019F
    +00416 
    +00417 #define  CAN1RXFG0 0x01A0
    +00418 #define  CAN1RXFG1 0x01A1
    +00419 #define  CAN1RXFG2 0x01A2
    +00420 #define  CAN1RXFG3 0x01A3
    +00421 #define  CAN1RXFG4 0x01A4
    +00422 #define  CAN1RXFG5 0x01A5
    +00423 #define  CAN1RXFG6 0x01A6
    +00424 #define  CAN1RXFG7 0x01A7
    +00425 #define  CAN1RXFG8 0x01A8
    +00426 #define  CAN1RXFG9 0x01A9
    +00427 #define  CAN1RXFGA 0x01AA
    +00428 #define  CAN1RXFGB 0x01AB
    +00429 #define  CAN1RXFGC 0x01AC
    +00430 #define  CAN1RXFGD 0x01AD
    +00431 #define  CAN1RXFGE 0x01AE
    +00432 #define  CAN1RXFGF 0x01AF
    +00433 #define  CAN1TXFG0 0x01B0
    +00434 #define  CAN1TXFG1 0x01B1
    +00435 #define  CAN1TXFG2 0x01B2
    +00436 #define  CAN1TXFG3 0x01B3
    +00437 #define  CAN1TXFG4 0x01B4
    +00438 #define  CAN1TXFG5 0x01B5
    +00439 #define  CAN1TXFG6 0x01B6
    +00440 #define  CAN1TXFG7 0x01B7
    +00441 #define  CAN1TXFG8 0x01B8
    +00442 #define  CAN1TXFG9 0x01B9
    +00443 #define  CAN1TXFGA 0x01BA
    +00444 #define  CAN1TXFGB 0x01BB
    +00445 #define  CAN1TXFGC 0x01BC
    +00446 #define  CAN1TXFGD 0x01BD
    +00447 #define  CAN1TXFGE 0x01BE
    +00448 #define  CAN1TXFGF 0x01BF   
    +00449 #define  CAN2CTL0  0x01C0    
    +00450 #define  CAN2CTL1  0x01C1    
    +00451 #define  CAN2BTR0  0x01C2    
    +00452 #define  CAN2BTR1  0x01C3    
    +00453 #define  CAN2RFLG  0x01C4    
    +00454 #define  CAN2RIER  0x01C5    
    +00455 #define  CAN2TFLG  0x01C6    
    +00456 #define  CAN2TIER  0x01C7    
    +00457 #define  CAN2TARQ  0x01C8    
    +00458 #define  CAN2TAAK  0x01C9    
    +00459 #define  CAN2TBSEL 0x01CA    
    +00460 #define  CAN2IDAC  0x01CB    
    +00461 
    +00462 #define  CAN2RXERR 0x01CE   
    +00463 #define  CAN2TXERR 0x01CF     
    +00464 #define  CAN2IDAR0 0x01D0    
    +00465 #define  CAN2IDAR1 0x01D1    
    +00466 #define  CAN2IDAR2 0x01D2    
    +00467 #define  CAN2IDAR3 0x01D3    
    +00468 #define  CAN2IDMR0 0x01D4    
    +00469 #define  CAN2IDMR1 0x01D5    
    +00470 #define  CAN2IDMR2 0x01D6    
    +00471 #define  CAN2IDMR3 0x01D7    
    +00472 #define  CAN2IDAR4 0x01D8    
    +00473 #define  CAN2IDAR5 0x01D9    
    +00474 #define  CAN2IDAR6 0x01DA    
    +00475 #define  CAN2IDAR7 0x01DB    
    +00476 #define  CAN2IDMR4 0x01DC    
    +00477 #define  CAN2IDMR5 0x01DD    
    +00478 #define  CAN2IDMR6 0x01DE    
    +00479 #define  CAN2IDMR7 0x01DF
    +00480 #define  CAN2RXFG0 0x01E0
    +00481 #define  CAN2RXFG1 0x01E1
    +00482 #define  CAN2RXFG2 0x01E2
    +00483 #define  CAN2RXFG3 0x01E3
    +00484 #define  CAN2RXFG4 0x01E4
    +00485 #define  CAN2RXFG5 0x01E5
    +00486 #define  CAN2RXFG6 0x01E6
    +00487 #define  CAN2RXFG7 0x01E7
    +00488 #define  CAN2RXFG8 0x01E8
    +00489 #define  CAN2RXFG9 0x01E9
    +00490 #define  CAN2RXFGA 0x01EA
    +00491 #define  CAN2RXFGB 0x01EB
    +00492 #define  CAN2RXFGC 0x01EC
    +00493 #define  CAN2RXFGD 0x01ED
    +00494 #define  CAN2RXFGE 0x01EE
    +00495 #define  CAN2RXFGF 0x01EF
    +00496 #define  CAN2TXFG0 0x01F0
    +00497 #define  CAN2TXFG1 0x01F1
    +00498 #define  CAN2TXFG2 0x01F2
    +00499 #define  CAN2TXFG3 0x01F3
    +00500 #define  CAN2TXFG4 0x01F4
    +00501 #define  CAN2TXFG5 0x01F5
    +00502 #define  CAN2TXFG6 0x01F6
    +00503 #define  CAN2TXFG7 0x01F7
    +00504 #define  CAN2TXFG8 0x01F8
    +00505 #define  CAN2TXFG9 0x01F9
    +00506 #define  CAN2TXFGA 0x01FA
    +00507 #define  CAN2TXFGB 0x01FB
    +00508 #define  CAN2TXFGC 0x01FC
    +00509 #define  CAN2TXFGD 0x01FD
    +00510 #define  CAN2TXFGE 0x01FE
    +00511 #define  CAN2TXFGF 0x01FF
    +00512 
    +00513 #define  CAN3CTL0  0x0200    
    +00514 #define  CAN3CTL1  0x0201    
    +00515 #define  CAN3BTR0  0x0202    
    +00516 #define  CAN3BTR1  0x0203   
    +00517 #define  CAN3RFLG  0x0204    
    +00518 #define  CAN3RIER  0x0205    
    +00519 #define  CAN3TFLG  0x0206    
    +00520 #define  CAN3TIER  0x0207    
    +00521 #define  CAN3TARQ  0x0208    
    +00522 #define  CAN3TAAK  0x0209    
    +00523 #define  CAN3TBSEL 0x020A    
    +00524 #define  CAN3IDAC  0x020B    
    +00525 
    +00526 #define  CAN3RXERR 0x020E    
    +00527 #define  CAN3TXERR 0x020F    
    +00528 #define  CAN3IDAR0 0x0210    
    +00529 #define  CAN3IDAR1 0x0211    
    +00530 #define  CAN3IDAR2 0x0212    
    +00531 #define  CAN3IDAR3 0x0213    
    +00532 #define  CAN3IDMR0 0x0214    
    +00533 #define  CAN3IDMR1 0x0215    
    +00534 #define  CAN3IDMR2 0x0216    
    +00535 #define  CAN3IDMR3 0x0217    
    +00536 #define  CAN3IDAR4 0x0218    
    +00537 #define  CAN3IDAR5 0x0219    
    +00538 #define  CAN3IDAR6 0x021A    
    +00539 #define  CAN3IDAR7 0x021B    
    +00540 #define  CAN3IDMR4 0x021C    
    +00541 #define  CAN3IDMR5 0x021D    
    +00542 #define  CAN3IDMR6 0x021E    
    +00543 #define  CAN3IDMR7 0x021F 
    +00544 
    +00545 #define  CAN3RXFG0 0x0220
    +00546 #define  CAN3RXFG1 0x0221
    +00547 #define  CAN3RXFG2 0x0222
    +00548 #define  CAN3RXFG3 0x0223
    +00549 #define  CAN3RXFG4 0x0224
    +00550 #define  CAN3RXFG5 0x0225
    +00551 #define  CAN3RXFG6 0x0226
    +00552 #define  CAN3RXFG7 0x0227
    +00553 #define  CAN3RXFG8 0x0228
    +00554 #define  CAN3RXFG9 0x0229
    +00555 #define  CAN3RXFGA 0x022A
    +00556 #define  CAN3RXFGB 0x022B
    +00557 #define  CAN3RXFGC 0x022C
    +00558 #define  CAN3RXFGD 0x022D
    +00559 #define  CAN3RXFGE 0x022E
    +00560 #define  CAN3RXFGF 0x022F
    +00561 #define  CAN3TXFG0 0x0230
    +00562 #define  CAN3TXFG1 0x0231
    +00563 #define  CAN3TXFG2 0x0232
    +00564 #define  CAN3TXFG3 0x0233
    +00565 #define  CAN3TXFG4 0x0234
    +00566 #define  CAN3TXFG5 0x0235
    +00567 #define  CAN3TXFG6 0x0236
    +00568 #define  CAN3TXFG7 0x0237
    +00569 #define  CAN3TXFG8 0x0238
    +00570 #define  CAN3TXFG9 0x0239
    +00571 #define  CAN3TXFGA 0x023A
    +00572 #define  CAN3TXFGB 0x023B
    +00573 #define  CAN3TXFGC 0x023C
    +00574 #define  CAN3TXFGD 0x023D
    +00575 #define  CAN3TXFGE 0x023E
    +00576 #define  CAN3TXFGF 0x023F
    +00577 
    +00578 #define  PTT       0x0240    
    +00579 #define  PTIT      0x0241    
    +00580 #define  DDRT      0x0242    
    +00581 #define  RDRT      0x0243    
    +00582 #define  PERT      0x0244    
    +00583 #define  PPST      0x0245    
    +00584 
    +00585 #define  PTS       0x0248    
    +00586 #define  PTIS      0x0249    
    +00587 #define  DDRS      0x024A    
    +00588 #define  RDRS      0x024B    
    +00589 #define  PERS      0x024C    
    +00590 #define  PPSS      0x024D    
    +00591 #define  WOMS      0x024E    
    +00592 
    +00593 #define  PTM       0x0250    
    +00594 #define  PTIM      0x0251    
    +00595 #define  DDRM      0x0252    
    +00596 #define  RDRM      0x0253    
    +00597 #define  PERM      0x0254    
    +00598 #define  PPSM      0x0255    
    +00599 #define  WOMM      0x0256    
    +00600 
    +00601 #define  PTP       0x0258    
    +00602 #define  PTIP      0x0259    
    +00603 #define  DDRP      0x025A    
    +00604 #define  RDRP      0x025B    
    +00605 #define  PERP      0x025C    
    +00606 #define  PPSP      0x025D    
    +00607 #define  PIEP      0x025E    
    +00608 #define  PIFP      0x025F    
    +00609 #define  PTH       0x0260    
    +00610 #define  PTIH      0x0261    
    +00611 #define  DDRH      0x0262    
    +00612 #define  RDRH      0x0263    
    +00613 #define  PERH      0x0264    
    +00614 #define  PPSH      0x0265    
    +00615 #define  PIEH      0x0266  
    +00616 #define  PIFH      0x0267    
    +00617 #define  PTJ       0x0268    
    +00618 #define  PTIJ      0x0269    
    +00619 #define  DDRJ      0x026A    
    +00620 #define  RDRJ      0x026B    
    +00621 #define  PERJ      0x026C    
    +00622 #define  PPSJ      0x026D    
    +00623 #define  PIEJ      0x026E    
    +00624 #define  PIFJ      0x026F    
    +00625 
    +00626 #define  CAN4CTL0  0x0280    
    +00627 #define  CAN4CTL1  0x0281    
    +00628 #define  CAN4BTR0  0x0282    
    +00629 #define  CAN4BTR1  0x0283    
    +00630 #define  CAN4RFLG  0x0284    
    +00631 #define  CAN4RIER  0x0285    
    +00632 #define  CAN4TFLG  0x0286    
    +00633 #define  CAN4TIER  0x0287    
    +00634 #define  CAN4TARQ  0x0288    
    +00635 #define  CAN4TAAK  0x0289    
    +00636 #define  CAN4TBSEL 0x028A    
    +00637 #define  CAN4IDAC  0x028B    
    +00638 
    +00639 #define  CAN4RXERR 0x028E    
    +00640 #define  CAN4TXERR 0x028F    
    +00641 #define  CAN4IDAR0 0x0290    
    +00642 #define  CAN4IDAR1 0x0291    
    +00643 #define  CAN4IDAR2 0x0292    
    +00644 #define  CAN4IDAR3 0x0293    
    +00645 #define  CAN4IDMR0 0x0294    
    +00646 #define  CAN4IDMR1 0x0295    
    +00647 #define  CAN4IDMR2 0x0296    
    +00648 #define  CAN4IDMR3 0x0297    
    +00649 #define  CAN4IDAR4 0x0298    
    +00650 #define  CAN4IDAR5 0x0299    
    +00651 #define  CAN4IDAR6 0x029A    
    +00652 #define  CAN4IDAR7 0x029B    
    +00653 #define  CAN4IDMR4 0x029C    
    +00654 #define  CAN4IDMR5 0x029D    
    +00655 #define  CAN4IDMR6 0x029E    
    +00656 #define  CAN4IDMR7 0x029F  
    +00657 
    +00658 #define  CAN4RXFG0 0x02A0
    +00659 #define  CAN4RXFG1 0x02A1
    +00660 #define  CAN4RXFG2 0x02A2
    +00661 #define  CAN4RXFG3 0x02A3
    +00662 #define  CAN4RXFG4 0x02A4
    +00663 #define  CAN4RXFG5 0x02A5
    +00664 #define  CAN4RXFG6 0x02A6
    +00665 #define  CAN4RXFG7 0x02A7
    +00666 #define  CAN4RXFG8 0x02A8
    +00667 #define  CAN4RXFG9 0x02A9
    +00668 #define  CAN4RXFGA 0x02AA
    +00669 #define  CAN4RXFGB 0x02AB
    +00670 #define  CAN4RXFGC 0x02AC
    +00671 #define  CAN4RXFGD 0x02AD
    +00672 #define  CAN4RXFGE 0x02AE
    +00673 #define  CAN4RXFGF 0x02AF
    +00674 #define  CAN4TXFG0 0x02B0
    +00675 #define  CAN4TXFG1 0x02B1
    +00676 #define  CAN4TXFG2 0x02B2
    +00677 #define  CAN4TXFG3 0x02B3
    +00678 #define  CAN4TXFG4 0x02B4
    +00679 #define  CAN4TXFG5 0x02B5
    +00680 #define  CAN4TXFG6 0x02B6
    +00681 #define  CAN4TXFG7 0x02B7
    +00682 #define  CAN4TXFG8 0x02B8
    +00683 #define  CAN4TXFG9 0x02B9
    +00684 #define  CAN4TXFGA 0x02BA
    +00685 #define  CAN4TXFGB 0x02BB
    +00686 #define  CAN4TXFGC 0x02BC
    +00687 #define  CAN4TXFGD 0x02BD
    +00688 #define  CAN4TXFGE 0x02BE
    +00689 #define  CAN4TXFGF 0x02BF
    +00690 
    +00691 
    +00692 
    +00693 /*********************************************** 
    +00694 Constants for MSCAN
    +00695 ************************************************
    +00696 */
    +00697 
    +00698 #define CAN0      0x0140  /* First address for MSCAN0                    */
    +00699 #define CAN1      0x0180  /* First address for MSCAN1                    */
    +00700 #define CAN2      0x01C0  /* First address for MSCAN2                    */
    +00701 #define CAN3      0x0200  /* First address for MSCAN3                    */
    +00702 #define CAN4      0x0280  /* First address for MSCAN4                    */
    +00703 
    +00704 #define CANCTL0   0X00    /* Control register 0                          */
    +00705 #define CANCTL1   0X01    /* Control register 1                          */
    +00706 #define CANBTR0   0X02    /* Bus timing register 0                       */
    +00707 #define CANBTR1   0X03    /* Bus timing register 1                       */
    +00708 #define CANRFLG   0X04    /* Receiver flag register                      */
    +00709 #define CANRIER   0X05          /* Enable interruptions when reception                   */      
    +00710 #define CANTFLG   0X06    /* Transmit flag register                      */
    +00711 #define CANTIER   0X07          /* Enable interruptions when transmission                */      
    +00712 #define CANTBSEL  0X0A    /* Select foreground buffer for transmit       */
    +00713 #define CANIDAC   0x0B    /* Identifier acceptance control register      */
    +00714 #define CANIDAR0  0x10    
    +00715 #define CANIDAR1  0x11    
    +00716 #define CANIDAR2  0x12    
    +00717 #define CANIDAR3  0x13    
    +00718 #define CANIDMR0  0x14    
    +00719 #define CANIDMR1  0x15    
    +00720 #define CANIDMR2  0x16    
    +00721 #define CANIDMR3  0x17    
    +00722 #define CANIDAR4  0x18    
    +00723 #define CANIDAR5  0x19    
    +00724 #define CANIDAR6  0x1A    
    +00725 #define CANIDAR7  0x1B    
    +00726 #define CANIDMR4  0x1C    
    +00727 #define CANIDMR5  0x1D    
    +00728 #define CANIDMR6  0x1E    
    +00729 #define CANIDMR7  0x1F  
    +00730 
    +00731 /* Received foreground buffer */
    +00732 #define CANRCVID  0x20    /* Base of identifier registers                */
    +00733 #define CANRCVDTA 0x24    /* Base of data       registers                */
    +00734 #define CANRCVLEN 0x2C    /* Data length        register                 */
    +00735 
    +00736 /* Transmit foreground buffer */
    +00737 #define CANTRSID  0x30    /* Base of identifier registers                */
    +00738 #define CANTRSDTA 0x34    /* Base of data       registers                */
    +00739 #define CANTRSLEN 0x3C    /* Data length        register                 */
    +00740 #define CANTRSPRI 0x3D    /* Priority           register                 */     
    +00741 
    +00742 
    +00743 /* Constants for serials port */
    +00744 #define  SCI0      0x00C8
    +00745 #define  SCI1      0x00D0 
    +00746 
    +00747 #define  SCIBDH    0x00   
    +00748 #define  SCIBDL    0x01    
    +00749 #define  SCICR1    0x02    
    +00750 #define  SCICR2    0x03    
    +00751 #define  SCISR1    0x04    
    +00752 #define  SCISR2    0x05    
    +00753 #define  SCIDRH    0x06    
    +00754 #define  SCIDRL    0x07 
    +00755 
    +00756            
    +00757 #endif  /* __HCS12_PORTS__  */     
    +00758                    
    +00759                    
    +00760                    
    +00761                    
    +00762                    
    +00763                    
    +00764                    
    +00765                    
    +00766                    
    +00767                    
    +00768                    
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports__def_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports__def_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,12662 @@ + + +CanFestival: include/hcs12/asm-m68hc12/ports_def.h File Reference + + + + + + + +

    ports_def.h File Reference

    +

    +This graph shows which files directly or indirectly include this file:

    + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define PORTA   0x0000
    #define PORTB   0x0001
    #define DDRA   0x0002
    #define DDRB   0x0003
    #define PORTE   0x0008
    #define DDRE   0x0009
    #define PEAR   0x000A
    #define MODE   0x000B
    #define PUCR   0x000C
    #define RDRIV   0x000D
    #define EBICTL   0x000E
    #define INITRM   0x0010
    #define INITRG   0x0011
    #define INITEE   0x0012
    #define MISC   0x0013
    #define MTST0   0x0014
    #define ITCR   0x0015
    #define ITEST   0x0016
    #define MTST1   0x0017
    #define PARTIDH   0x001A
    #define PARTIDL   0x001B
    #define MEMSIZ0   0x001C
    #define MEMSIZ1   0x001D
    #define INTCR   0x001E
    #define HPRIO   0x001F
    #define BKPCT0   0x0028
    #define BKPCT1   0x0029
    #define BKP0X   0x002A
    #define BKP0H   0x002B
    #define BKP0L   0x002C
    #define BKP1X   0x002D
    #define BKP1H   0x002E
    #define BKP1L   0x002F
    #define PPAGE   0x0030
    #define PORTK   0x0032
    #define DDRK   0x0033
    #define SYNR   0x0034
    #define REFDV   0x0035
    #define CTFLG   0x0036
    #define CRGFLG   0x0037
    #define CRGINT   0x0038
    #define CLKSEL   0x0039
    #define PLLCTL   0x003A
    #define RTICTL   0x003B
    #define COPCTL   0x003C
    #define FORBYP   0x003D
    #define CTCTL   0x003E
    #define ARMCOP   0x003F
    #define TIOS   0x0040
    #define TCFORC   0x0041
    #define TOC7M   0x0042
    #define TOC7D   0x0043
    #define TCNTH   0x0044
    #define TCNTL   0x0045
    #define TSCR1   0x0046
    #define TTOV   0x0047
    #define TCTL1   0x0048
    #define TCTL2   0x0049
    #define TCTL3   0x004A
    #define TCTL4   0x004B
    #define TIE   0x004C
    #define TSCR2   0x004D
    #define TFLG1   0x004E
    #define TFLG2   0x004F
    #define TC0H   0x0050
    #define TC0L   0x0051
    #define TC1H   0x0052
    #define TC1L   0x0053
    #define TC2H   0x0054
    #define TC2L   0x0055
    #define TC3H   0x0056
    #define TC3L   0x0057
    #define TC4H   0x0058
    #define TC4L   0x0059
    #define TC5H   0x005A
    #define TC5L   0x005B
    #define TC6H   0x005C
    #define TC6L   0x005D
    #define TC7H   0x005E
    #define TC7L   0x005F
    #define PACTL   0x0060
    #define PAFLG   0x0061
    #define PACN3H   0x0062
    #define PACN2L   0x0063
    #define PACN1H   0x0064
    #define PACN0L   0x0065
    #define MCCTL   0x0066
    #define MCFLG   0x0067
    #define ICPAR   0x0068
    #define DLYCT   0x0069
    #define ICOVW   0x006A
    #define ICSYS   0x006B
    #define TIMTST   0x006D
    #define PBCTL   0x0070
    #define PBFLG   0x0071
    #define PA3H   0x0072
    #define PA2H   0x0073
    #define PA1H   0x0074
    #define PA0H   0x0075
    #define MCCNTH   0x0076
    #define MCCNTL   0x0077
    #define TC0HH   0x0078
    #define TC0HL   0x0079
    #define TC1HH   0x007A
    #define TC1HL   0x007B
    #define TC2HH   0x007C
    #define TC2HL   0x007D
    #define TC3HH   0x007E
    #define ATD0CTL0   0x0080
    #define ATD00CTL1   0x0081
    #define ATD0CTL2   0x0082
    #define ATD0CTL3   0x0083
    #define ATD0CTL4   0x0084
    #define ATD0CTL5   0x0085
    #define ATD0STAT0   0x0086
    #define ATD0STAT1   0x0087
    #define ATD0TEST0   0x0088
    #define ATD0TEST1   0x0089
    #define ATD0DIEN   0x008D
    #define PORTAD0   0x008F
    #define ATD0DR0H   0x0090
    #define ATD0DR0L   0x0091
    #define ATD0DR1H   0x0092
    #define ATD0DR1L   0x0093
    #define ATD0DR2H   0x0094
    #define ATD0DR2L   0x0095
    #define ATD0DR3H   0x0096
    #define ATD0DR3L   0x0097
    #define ATD0DR4H   0x0098
    #define ATD0DR4L   0x0099
    #define ATD0DR5H   0x009A
    #define ATD0DR5L   0x009B
    #define ATD0DR6H   0x009C
    #define ATD0DR6L   0x009D
    #define ATD0DR7H   0x009E
    #define ATD0DR7L   0x009F
    #define PWME   0x00A0
    #define PWMPOL   0x00A1
    #define PWMCLK   0x00A2
    #define PWMPRCLK   0x00A3
    #define PWMCAE   0x00A4
    #define PWMCTL   0x00A5
    #define PWMTST   0x00A6
    #define PWMPRSC   0x00A7
    #define PWMSCLA   0x00A8
    #define PWMSCLB   0x00A9
    #define PWMSCNTA   0x00AA
    #define PWMSCNTB   0x00AB
    #define PWMCNT0   0x00AC
    #define PWMCNT1   0x00AD
    #define PWMCNT2   0x00AE
    #define PWMCNT3   0x00AF
    #define PWMCNT4   0x00B0
    #define PWMCNT5   0x00B1
    #define PWMCNT6   0x00B2
    #define PWMCNT7   0x00B3
    #define PWMPER0   0x00B4
    #define PWMPER1   0x00B5
    #define PWMPER2   0x00B6
    #define PWMPER3   0x00B7
    #define PWMPER4   0x00B8
    #define PWMPER5   0x00B9
    #define PWMPER6   0x00BA
    #define PWMPER7   0x00BB
    #define PWMDTY0   0x00BC
    #define PWMDTY1   0x00BD
    #define PWMDTY2   0x00BE
    #define PWMDTY3   0x00BF
    #define PWMDTY4   0x00C0
    #define PWMDTY5   0x00C1
    #define PWMDTY6   0x00C2
    #define PWMDTY7   0x00C3
    #define PWMSDN   0x00C4
    #define SCI0BDH   0x00C8
    #define SCI0BDL   0x00C9
    #define SC0CR1   0x00CA
    #define SCI0CR2   0x00CB
    #define SCI0SR1   0x00CC
    #define SC0SR2   0x00CD
    #define SCI0DRH   0x00CE
    #define SCI0DRL   0x00CF
    #define SCI1BDH   0x00D0
    #define SCI1BDL   0x00D1
    #define SC1CR1   0x00D2
    #define SCI1CR2   0x00D3
    #define SCI1SR1   0x00D4
    #define SC1SR2   0x00D5
    #define SCI1DRH   0x00D6
    #define SCI1DRL   0x00D7
    #define SPI0CR1   0x00D8
    #define SPI0CR2   0x00D9
    #define SPI0BR   0x00DA
    #define SPI0SR   0x00DB
    #define SPI0DR   0x00DD
    #define IBAD   0x00E0
    #define IBFD   0x00E1
    #define IBCR   0x00E2
    #define IBSR   0x00E3
    #define IICDR   0x00E4
    #define DLCBCR1   0x00E8
    #define DLCBSVR   0x00E9
    #define DLCBCR2   0x00EA
    #define DLCBDR   0x00EB
    #define DLCBARD   0x00EC
    #define DLCBRSR   0x00ED
    #define DLCSCR   0x00EE
    #define DLCBSTAT   0x00EF
    #define SPI1CR1   0x00F0
    #define SPI1CR2   0x00F1
    #define SPI1BR   0x00F2
    #define SPI1SR   0x00F3
    #define SPI1DR   0x00F5
    #define SPI2CR1   0x00F8
    #define SPI2CR2   0x00F9
    #define SPI2BR   0x00FA
    #define SPI2SR   0x00FB
    #define SPI2DR   0x00FD
    #define FCLKDIV   0x0100
    #define FSEC   0x0101
    #define FCNFG   0x0103
    #define FPROT   0x0104
    #define FSTAT   0x0105
    #define FCMD   0x0106
    #define ECLKDIV   0x0110
    #define ECNFG   0x0113
    #define EPROT   0x0114
    #define ESTAT   0x0115
    #define ECMD   0x0116
    #define ATD1CTL0   0x0120
    #define ATD1CTL1   0x0121
    #define ATD1CTL2   0x0122
    #define ATD1CTL3   0x0123
    #define ATD1CTL4   0x0124
    #define ATD1CTL5   0x0125
    #define ATD1STAT0   0x0126
    #define ATD1STAT1   0x0127
    #define ATD1TEST0   0x0128
    #define ATD1TEST1   0x0129
    #define ATDDIEN   0x012D
    #define PORTAD1   0x012F
    #define ATD1DR0H   0x0130
    #define ATD1DR0L   0x0131
    #define ATD1DR1H   0x0132
    #define ATD1DR1L   0x0133
    #define ATD1DR2H   0x0134
    #define ATD1DR2L   0x0135
    #define ATD1DR3H   0x0136
    #define ATD1DR3L   0x0137
    #define ATD1DR4H   0x0138
    #define ATD1DR4L   0x0139
    #define ATD1DR5H   0x013A
    #define ATD1DR5L   0x013B
    #define ATD1DR6H   0x013C
    #define ATD1DR6L   0x013D
    #define ATD1DR7H   0x013E
    #define ATD1DR7L   0x013F
    #define CAN0CTL0   0x0140
    #define CAN0CTL1   0x0141
    #define CAN0BTR0   0x0142
    #define CAN0BTR1   0x0143
    #define CAN0RFLG   0x0144
    #define CAN0RIER   0x0145
    #define CAN0TFLG   0x0146
    #define CAN0TIER   0x0147
    #define CAN0TARQ   0x0148
    #define CAN0TAAK   0x0149
    #define CAN0TBSEL   0x014A
    #define CAN0IDAC   0x014B
    #define CAN0RXERR   0x014E
    #define CAN0TXERR   0x014F
    #define CAN0IDAR0   0x0150
    #define CAN0IDAR1   0x0151
    #define CAN0IDAR2   0x0152
    #define CAN0IDAR3   0x0153
    #define CAN0IDMR0   0x0154
    #define CAN0IDMR1   0x0155
    #define CAN0IDMR2   0x0156
    #define CAN0IDMR3   0x0157
    #define CAN0IDAR4   0x0158
    #define CAN0IDAR5   0x0159
    #define CAN0IDAR6   0x015A
    #define CAN0IDAR7   0x015B
    #define CAN0IDMR4   0x015C
    #define CAN0IDMR5   0x015D
    #define CAN0IDMR6   0x015E
    #define CAN0IDMR7   0x015F
    #define CAN0RXFG0   0x0160
    #define CAN0RXFG1   0x0161
    #define CAN0RXFG2   0x0162
    #define CAN0RXFG3   0x0163
    #define CAN0RXFG4   0x0164
    #define CAN0RXFG5   0x0165
    #define CAN0RXFG6   0x0166
    #define CAN0RXFG7   0x0167
    #define CAN0RXFG8   0x0168
    #define CAN0RXFG9   0x0169
    #define CAN0RXFGA   0x016A
    #define CAN0RXFGB   0x016B
    #define CAN0RXFGC   0x016C
    #define CAN0RXFGD   0x016D
    #define CAN0RXFGE   0x016E
    #define CAN0RXFGF   0x016F
    #define CAN0TXFG0   0x0170
    #define CAN0TXFG1   0x0171
    #define CAN0TXFG2   0x0172
    #define CAN0TXFG3   0x0173
    #define CAN0TXFG4   0x0174
    #define CAN0TXFG5   0x0175
    #define CAN0TXFG6   0x0176
    #define CAN0TXFG7   0x0177
    #define CAN0TXFG8   0x0178
    #define CAN0TXFG9   0x0179
    #define CAN0TXFGA   0x017A
    #define CAN0TXFGB   0x017B
    #define CAN0TXFGC   0x017C
    #define CAN0TXFGD   0x017D
    #define CAN0TXFGE   0x017E
    #define CAN0TXFGF   0x017F
    #define CAN1CTL0   0x0180
    #define CAN1CTL1   0x0181
    #define CAN1BTR0   0x0182
    #define CAN1BTR1   0x0183
    #define CAN1RFLG   0x0184
    #define CAN1RIER   0x0185
    #define CAN1TFLG   0x0186
    #define CAN1TIER   0x0187
    #define CAN1TARQ   0x0188
    #define CAN1TAAK   0x0189
    #define CAN1TBSEL   0x018A
    #define CAN1IDAC   0x018B
    #define CAN1RXERR   0x018E
    #define CAN1TXERR   0x018F
    #define CAN1IDAR0   0x0190
    #define CAN1IDAR1   0x0191
    #define CAN1IDAR2   0x0192
    #define CAN1IDAR3   0x0193
    #define CAN1IDMR0   0x0194
    #define CAN1IDMR1   0x0195
    #define CAN1IDMR2   0x0196
    #define CAN1IDMR3   0x0197
    #define CAN1IDAR4   0x0198
    #define CAN1IDAR5   0x0199
    #define CAN1IDAR6   0x019A
    #define CAN1IDAR7   0x019B
    #define CAN1IDMR4   0x019C
    #define CAN1IDMR5   0x019D
    #define CAN1IDMR6   0x019E
    #define CAN1IDMR7   0x019F
    #define CAN1RXFG0   0x01A0
    #define CAN1RXFG1   0x01A1
    #define CAN1RXFG2   0x01A2
    #define CAN1RXFG3   0x01A3
    #define CAN1RXFG4   0x01A4
    #define CAN1RXFG5   0x01A5
    #define CAN1RXFG6   0x01A6
    #define CAN1RXFG7   0x01A7
    #define CAN1RXFG8   0x01A8
    #define CAN1RXFG9   0x01A9
    #define CAN1RXFGA   0x01AA
    #define CAN1RXFGB   0x01AB
    #define CAN1RXFGC   0x01AC
    #define CAN1RXFGD   0x01AD
    #define CAN1RXFGE   0x01AE
    #define CAN1RXFGF   0x01AF
    #define CAN1TXFG0   0x01B0
    #define CAN1TXFG1   0x01B1
    #define CAN1TXFG2   0x01B2
    #define CAN1TXFG3   0x01B3
    #define CAN1TXFG4   0x01B4
    #define CAN1TXFG5   0x01B5
    #define CAN1TXFG6   0x01B6
    #define CAN1TXFG7   0x01B7
    #define CAN1TXFG8   0x01B8
    #define CAN1TXFG9   0x01B9
    #define CAN1TXFGA   0x01BA
    #define CAN1TXFGB   0x01BB
    #define CAN1TXFGC   0x01BC
    #define CAN1TXFGD   0x01BD
    #define CAN1TXFGE   0x01BE
    #define CAN1TXFGF   0x01BF
    #define CAN2CTL0   0x01C0
    #define CAN2CTL1   0x01C1
    #define CAN2BTR0   0x01C2
    #define CAN2BTR1   0x01C3
    #define CAN2RFLG   0x01C4
    #define CAN2RIER   0x01C5
    #define CAN2TFLG   0x01C6
    #define CAN2TIER   0x01C7
    #define CAN2TARQ   0x01C8
    #define CAN2TAAK   0x01C9
    #define CAN2TBSEL   0x01CA
    #define CAN2IDAC   0x01CB
    #define CAN2RXERR   0x01CE
    #define CAN2TXERR   0x01CF
    #define CAN2IDAR0   0x01D0
    #define CAN2IDAR1   0x01D1
    #define CAN2IDAR2   0x01D2
    #define CAN2IDAR3   0x01D3
    #define CAN2IDMR0   0x01D4
    #define CAN2IDMR1   0x01D5
    #define CAN2IDMR2   0x01D6
    #define CAN2IDMR3   0x01D7
    #define CAN2IDAR4   0x01D8
    #define CAN2IDAR5   0x01D9
    #define CAN2IDAR6   0x01DA
    #define CAN2IDAR7   0x01DB
    #define CAN2IDMR4   0x01DC
    #define CAN2IDMR5   0x01DD
    #define CAN2IDMR6   0x01DE
    #define CAN2IDMR7   0x01DF
    #define CAN2RXFG0   0x01E0
    #define CAN2RXFG1   0x01E1
    #define CAN2RXFG2   0x01E2
    #define CAN2RXFG3   0x01E3
    #define CAN2RXFG4   0x01E4
    #define CAN2RXFG5   0x01E5
    #define CAN2RXFG6   0x01E6
    #define CAN2RXFG7   0x01E7
    #define CAN2RXFG8   0x01E8
    #define CAN2RXFG9   0x01E9
    #define CAN2RXFGA   0x01EA
    #define CAN2RXFGB   0x01EB
    #define CAN2RXFGC   0x01EC
    #define CAN2RXFGD   0x01ED
    #define CAN2RXFGE   0x01EE
    #define CAN2RXFGF   0x01EF
    #define CAN2TXFG0   0x01F0
    #define CAN2TXFG1   0x01F1
    #define CAN2TXFG2   0x01F2
    #define CAN2TXFG3   0x01F3
    #define CAN2TXFG4   0x01F4
    #define CAN2TXFG5   0x01F5
    #define CAN2TXFG6   0x01F6
    #define CAN2TXFG7   0x01F7
    #define CAN2TXFG8   0x01F8
    #define CAN2TXFG9   0x01F9
    #define CAN2TXFGA   0x01FA
    #define CAN2TXFGB   0x01FB
    #define CAN2TXFGC   0x01FC
    #define CAN2TXFGD   0x01FD
    #define CAN2TXFGE   0x01FE
    #define CAN2TXFGF   0x01FF
    #define CAN3CTL0   0x0200
    #define CAN3CTL1   0x0201
    #define CAN3BTR0   0x0202
    #define CAN3BTR1   0x0203
    #define CAN3RFLG   0x0204
    #define CAN3RIER   0x0205
    #define CAN3TFLG   0x0206
    #define CAN3TIER   0x0207
    #define CAN3TARQ   0x0208
    #define CAN3TAAK   0x0209
    #define CAN3TBSEL   0x020A
    #define CAN3IDAC   0x020B
    #define CAN3RXERR   0x020E
    #define CAN3TXERR   0x020F
    #define CAN3IDAR0   0x0210
    #define CAN3IDAR1   0x0211
    #define CAN3IDAR2   0x0212
    #define CAN3IDAR3   0x0213
    #define CAN3IDMR0   0x0214
    #define CAN3IDMR1   0x0215
    #define CAN3IDMR2   0x0216
    #define CAN3IDMR3   0x0217
    #define CAN3IDAR4   0x0218
    #define CAN3IDAR5   0x0219
    #define CAN3IDAR6   0x021A
    #define CAN3IDAR7   0x021B
    #define CAN3IDMR4   0x021C
    #define CAN3IDMR5   0x021D
    #define CAN3IDMR6   0x021E
    #define CAN3IDMR7   0x021F
    #define CAN3RXFG0   0x0220
    #define CAN3RXFG1   0x0221
    #define CAN3RXFG2   0x0222
    #define CAN3RXFG3   0x0223
    #define CAN3RXFG4   0x0224
    #define CAN3RXFG5   0x0225
    #define CAN3RXFG6   0x0226
    #define CAN3RXFG7   0x0227
    #define CAN3RXFG8   0x0228
    #define CAN3RXFG9   0x0229
    #define CAN3RXFGA   0x022A
    #define CAN3RXFGB   0x022B
    #define CAN3RXFGC   0x022C
    #define CAN3RXFGD   0x022D
    #define CAN3RXFGE   0x022E
    #define CAN3RXFGF   0x022F
    #define CAN3TXFG0   0x0230
    #define CAN3TXFG1   0x0231
    #define CAN3TXFG2   0x0232
    #define CAN3TXFG3   0x0233
    #define CAN3TXFG4   0x0234
    #define CAN3TXFG5   0x0235
    #define CAN3TXFG6   0x0236
    #define CAN3TXFG7   0x0237
    #define CAN3TXFG8   0x0238
    #define CAN3TXFG9   0x0239
    #define CAN3TXFGA   0x023A
    #define CAN3TXFGB   0x023B
    #define CAN3TXFGC   0x023C
    #define CAN3TXFGD   0x023D
    #define CAN3TXFGE   0x023E
    #define CAN3TXFGF   0x023F
    #define PTT   0x0240
    #define PTIT   0x0241
    #define DDRT   0x0242
    #define RDRT   0x0243
    #define PERT   0x0244
    #define PPST   0x0245
    #define PTS   0x0248
    #define PTIS   0x0249
    #define DDRS   0x024A
    #define RDRS   0x024B
    #define PERS   0x024C
    #define PPSS   0x024D
    #define WOMS   0x024E
    #define PTM   0x0250
    #define PTIM   0x0251
    #define DDRM   0x0252
    #define RDRM   0x0253
    #define PERM   0x0254
    #define PPSM   0x0255
    #define WOMM   0x0256
    #define PTP   0x0258
    #define PTIP   0x0259
    #define DDRP   0x025A
    #define RDRP   0x025B
    #define PERP   0x025C
    #define PPSP   0x025D
    #define PIEP   0x025E
    #define PIFP   0x025F
    #define PTH   0x0260
    #define PTIH   0x0261
    #define DDRH   0x0262
    #define RDRH   0x0263
    #define PERH   0x0264
    #define PPSH   0x0265
    #define PIEH   0x0266
    #define PIFH   0x0267
    #define PTJ   0x0268
    #define PTIJ   0x0269
    #define DDRJ   0x026A
    #define RDRJ   0x026B
    #define PERJ   0x026C
    #define PPSJ   0x026D
    #define PIEJ   0x026E
    #define PIFJ   0x026F
    #define CAN4CTL0   0x0280
    #define CAN4CTL1   0x0281
    #define CAN4BTR0   0x0282
    #define CAN4BTR1   0x0283
    #define CAN4RFLG   0x0284
    #define CAN4RIER   0x0285
    #define CAN4TFLG   0x0286
    #define CAN4TIER   0x0287
    #define CAN4TARQ   0x0288
    #define CAN4TAAK   0x0289
    #define CAN4TBSEL   0x028A
    #define CAN4IDAC   0x028B
    #define CAN4RXERR   0x028E
    #define CAN4TXERR   0x028F
    #define CAN4IDAR0   0x0290
    #define CAN4IDAR1   0x0291
    #define CAN4IDAR2   0x0292
    #define CAN4IDAR3   0x0293
    #define CAN4IDMR0   0x0294
    #define CAN4IDMR1   0x0295
    #define CAN4IDMR2   0x0296
    #define CAN4IDMR3   0x0297
    #define CAN4IDAR4   0x0298
    #define CAN4IDAR5   0x0299
    #define CAN4IDAR6   0x029A
    #define CAN4IDAR7   0x029B
    #define CAN4IDMR4   0x029C
    #define CAN4IDMR5   0x029D
    #define CAN4IDMR6   0x029E
    #define CAN4IDMR7   0x029F
    #define CAN4RXFG0   0x02A0
    #define CAN4RXFG1   0x02A1
    #define CAN4RXFG2   0x02A2
    #define CAN4RXFG3   0x02A3
    #define CAN4RXFG4   0x02A4
    #define CAN4RXFG5   0x02A5
    #define CAN4RXFG6   0x02A6
    #define CAN4RXFG7   0x02A7
    #define CAN4RXFG8   0x02A8
    #define CAN4RXFG9   0x02A9
    #define CAN4RXFGA   0x02AA
    #define CAN4RXFGB   0x02AB
    #define CAN4RXFGC   0x02AC
    #define CAN4RXFGD   0x02AD
    #define CAN4RXFGE   0x02AE
    #define CAN4RXFGF   0x02AF
    #define CAN4TXFG0   0x02B0
    #define CAN4TXFG1   0x02B1
    #define CAN4TXFG2   0x02B2
    #define CAN4TXFG3   0x02B3
    #define CAN4TXFG4   0x02B4
    #define CAN4TXFG5   0x02B5
    #define CAN4TXFG6   0x02B6
    #define CAN4TXFG7   0x02B7
    #define CAN4TXFG8   0x02B8
    #define CAN4TXFG9   0x02B9
    #define CAN4TXFGA   0x02BA
    #define CAN4TXFGB   0x02BB
    #define CAN4TXFGC   0x02BC
    #define CAN4TXFGD   0x02BD
    #define CAN4TXFGE   0x02BE
    #define CAN4TXFGF   0x02BF
    #define CAN0   0x0140
    #define CAN1   0x0180
    #define CAN2   0x01C0
    #define CAN3   0x0200
    #define CAN4   0x0280
    #define CANCTL0   0X00
    #define CANCTL1   0X01
    #define CANBTR0   0X02
    #define CANBTR1   0X03
    #define CANRFLG   0X04
    #define CANRIER   0X05
    #define CANTFLG   0X06
    #define CANTIER   0X07
    #define CANTBSEL   0X0A
    #define CANIDAC   0x0B
    #define CANIDAR0   0x10
    #define CANIDAR1   0x11
    #define CANIDAR2   0x12
    #define CANIDAR3   0x13
    #define CANIDMR0   0x14
    #define CANIDMR1   0x15
    #define CANIDMR2   0x16
    #define CANIDMR3   0x17
    #define CANIDAR4   0x18
    #define CANIDAR5   0x19
    #define CANIDAR6   0x1A
    #define CANIDAR7   0x1B
    #define CANIDMR4   0x1C
    #define CANIDMR5   0x1D
    #define CANIDMR6   0x1E
    #define CANIDMR7   0x1F
    #define CANRCVID   0x20
    #define CANRCVDTA   0x24
    #define CANRCVLEN   0x2C
    #define CANTRSID   0x30
    #define CANTRSDTA   0x34
    #define CANTRSLEN   0x3C
    #define CANTRSPRI   0x3D
    #define SCI0   0x00C8
    #define SCI1   0x00D0
    #define SCIBDH   0x00
    #define SCIBDL   0x01
    #define SCICR1   0x02
    #define SCICR2   0x03
    #define SCISR1   0x04
    #define SCISR2   0x05
    #define SCIDRH   0x06
    #define SCIDRL   0x07
    +


    Define Documentation

    + +
    +
    + + + + +
    #define ARMCOP   0x003F
    +
    +
    + +

    + +

    +Definition at line 94 of file ports_def.h. +

    +Referenced by cop_reset(). +

    +

    + +

    +
    + + + + +
    #define ATD00CTL1   0x0081
    +
    +
    + +

    + +

    +Definition at line 159 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0CTL0   0x0080
    +
    +
    + +

    + +

    +Definition at line 158 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0CTL2   0x0082
    +
    +
    + +

    + +

    +Definition at line 160 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0CTL3   0x0083
    +
    +
    + +

    + +

    +Definition at line 161 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0CTL4   0x0084
    +
    +
    + +

    + +

    +Definition at line 162 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0CTL5   0x0085
    +
    +
    + +

    + +

    +Definition at line 163 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DIEN   0x008D
    +
    +
    + +

    + +

    +Definition at line 169 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR0H   0x0090
    +
    +
    + +

    + +

    +Definition at line 172 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR0L   0x0091
    +
    +
    + +

    + +

    +Definition at line 173 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR1H   0x0092
    +
    +
    + +

    + +

    +Definition at line 174 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR1L   0x0093
    +
    +
    + +

    + +

    +Definition at line 175 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR2H   0x0094
    +
    +
    + +

    + +

    +Definition at line 176 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR2L   0x0095
    +
    +
    + +

    + +

    +Definition at line 177 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR3H   0x0096
    +
    +
    + +

    + +

    +Definition at line 178 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR3L   0x0097
    +
    +
    + +

    + +

    +Definition at line 179 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR4H   0x0098
    +
    +
    + +

    + +

    +Definition at line 180 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR4L   0x0099
    +
    +
    + +

    + +

    +Definition at line 181 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR5H   0x009A
    +
    +
    + +

    + +

    +Definition at line 182 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR5L   0x009B
    +
    +
    + +

    + +

    +Definition at line 183 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR6H   0x009C
    +
    +
    + +

    + +

    +Definition at line 184 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR6L   0x009D
    +
    +
    + +

    + +

    +Definition at line 185 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR7H   0x009E
    +
    +
    + +

    + +

    +Definition at line 186 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0DR7L   0x009F
    +
    +
    + +

    + +

    +Definition at line 187 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0STAT0   0x0086
    +
    +
    + +

    + +

    +Definition at line 164 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0STAT1   0x0087
    +
    +
    + +

    + +

    +Definition at line 165 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0TEST0   0x0088
    +
    +
    + +

    + +

    +Definition at line 166 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD0TEST1   0x0089
    +
    +
    + +

    + +

    +Definition at line 167 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1CTL0   0x0120
    +
    +
    + +

    + +

    +Definition at line 292 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1CTL1   0x0121
    +
    +
    + +

    + +

    +Definition at line 293 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1CTL2   0x0122
    +
    +
    + +

    + +

    +Definition at line 294 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1CTL3   0x0123
    +
    +
    + +

    + +

    +Definition at line 295 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1CTL4   0x0124
    +
    +
    + +

    + +

    +Definition at line 296 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1CTL5   0x0125
    +
    +
    + +

    + +

    +Definition at line 297 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR0H   0x0130
    +
    +
    + +

    + +

    +Definition at line 306 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR0L   0x0131
    +
    +
    + +

    + +

    +Definition at line 307 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR1H   0x0132
    +
    +
    + +

    + +

    +Definition at line 308 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR1L   0x0133
    +
    +
    + +

    + +

    +Definition at line 309 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR2H   0x0134
    +
    +
    + +

    + +

    +Definition at line 310 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR2L   0x0135
    +
    +
    + +

    + +

    +Definition at line 311 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR3H   0x0136
    +
    +
    + +

    + +

    +Definition at line 312 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR3L   0x0137
    +
    +
    + +

    + +

    +Definition at line 313 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR4H   0x0138
    +
    +
    + +

    + +

    +Definition at line 314 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR4L   0x0139
    +
    +
    + +

    + +

    +Definition at line 315 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR5H   0x013A
    +
    +
    + +

    + +

    +Definition at line 316 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR5L   0x013B
    +
    +
    + +

    + +

    +Definition at line 317 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR6H   0x013C
    +
    +
    + +

    + +

    +Definition at line 318 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR6L   0x013D
    +
    +
    + +

    + +

    +Definition at line 319 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR7H   0x013E
    +
    +
    + +

    + +

    +Definition at line 320 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1DR7L   0x013F
    +
    +
    + +

    + +

    +Definition at line 321 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1STAT0   0x0126
    +
    +
    + +

    + +

    +Definition at line 298 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1STAT1   0x0127
    +
    +
    + +

    + +

    +Definition at line 299 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1TEST0   0x0128
    +
    +
    + +

    + +

    +Definition at line 300 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATD1TEST1   0x0129
    +
    +
    + +

    + +

    +Definition at line 301 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ATDDIEN   0x012D
    +
    +
    + +

    + +

    +Definition at line 303 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKP0H   0x002B
    +
    +
    + +

    + +

    +Definition at line 74 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKP0L   0x002C
    +
    +
    + +

    + +

    +Definition at line 75 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKP0X   0x002A
    +
    +
    + +

    + +

    +Definition at line 73 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKP1H   0x002E
    +
    +
    + +

    + +

    +Definition at line 77 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKP1L   0x002F
    +
    +
    + +

    + +

    +Definition at line 78 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKP1X   0x002D
    +
    +
    + +

    + +

    +Definition at line 76 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKPCT0   0x0028
    +
    +
    + +

    + +

    +Definition at line 71 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define BKPCT1   0x0029
    +
    +
    + +

    + +

    +Definition at line 72 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0   0x0140
    +
    +
    + +

    + +

    +Definition at line 698 of file ports_def.h. +

    +Referenced by f_can_receive(). +

    +

    + +

    +
    + + + + +
    #define CAN0BTR0   0x0142
    +
    +
    + +

    + +

    +Definition at line 324 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0BTR1   0x0143
    +
    +
    + +

    + +

    +Definition at line 325 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0CTL0   0x0140
    +
    +
    + +

    + +

    +Definition at line 322 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0CTL1   0x0141
    +
    +
    + +

    + +

    +Definition at line 323 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAC   0x014B
    +
    +
    + +

    + +

    +Definition at line 333 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR0   0x0150
    +
    +
    + +

    + +

    +Definition at line 337 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR1   0x0151
    +
    +
    + +

    + +

    +Definition at line 338 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR2   0x0152
    +
    +
    + +

    + +

    +Definition at line 339 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR3   0x0153
    +
    +
    + +

    + +

    +Definition at line 340 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR4   0x0158
    +
    +
    + +

    + +

    +Definition at line 345 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR5   0x0159
    +
    +
    + +

    + +

    +Definition at line 346 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR6   0x015A
    +
    +
    + +

    + +

    +Definition at line 347 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDAR7   0x015B
    +
    +
    + +

    + +

    +Definition at line 348 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR0   0x0154
    +
    +
    + +

    + +

    +Definition at line 341 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR1   0x0155
    +
    +
    + +

    + +

    +Definition at line 342 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR2   0x0156
    +
    +
    + +

    + +

    +Definition at line 343 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR3   0x0157
    +
    +
    + +

    + +

    +Definition at line 344 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR4   0x015C
    +
    +
    + +

    + +

    +Definition at line 349 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR5   0x015D
    +
    +
    + +

    + +

    +Definition at line 350 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR6   0x015E
    +
    +
    + +

    + +

    +Definition at line 351 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0IDMR7   0x015F
    +
    +
    + +

    + +

    +Definition at line 352 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RFLG   0x0144
    +
    +
    + +

    + +

    +Definition at line 326 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RIER   0x0145
    +
    +
    + +

    + +

    +Definition at line 327 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXERR   0x014E
    +
    +
    + +

    + +

    +Definition at line 335 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG0   0x0160
    +
    +
    + +

    + +

    +Definition at line 353 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG1   0x0161
    +
    +
    + +

    + +

    +Definition at line 354 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG2   0x0162
    +
    +
    + +

    + +

    +Definition at line 355 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG3   0x0163
    +
    +
    + +

    + +

    +Definition at line 356 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG4   0x0164
    +
    +
    + +

    + +

    +Definition at line 357 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG5   0x0165
    +
    +
    + +

    + +

    +Definition at line 358 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG6   0x0166
    +
    +
    + +

    + +

    +Definition at line 359 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG7   0x0167
    +
    +
    + +

    + +

    +Definition at line 360 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG8   0x0168
    +
    +
    + +

    + +

    +Definition at line 361 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFG9   0x0169
    +
    +
    + +

    + +

    +Definition at line 362 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFGA   0x016A
    +
    +
    + +

    + +

    +Definition at line 363 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFGB   0x016B
    +
    +
    + +

    + +

    +Definition at line 364 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFGC   0x016C
    +
    +
    + +

    + +

    +Definition at line 365 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFGD   0x016D
    +
    +
    + +

    + +

    +Definition at line 366 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFGE   0x016E
    +
    +
    + +

    + +

    +Definition at line 367 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0RXFGF   0x016F
    +
    +
    + +

    + +

    +Definition at line 368 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TAAK   0x0149
    +
    +
    + +

    + +

    +Definition at line 331 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TARQ   0x0148
    +
    +
    + +

    + +

    +Definition at line 330 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TBSEL   0x014A
    +
    +
    + +

    + +

    +Definition at line 332 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TFLG   0x0146
    +
    +
    + +

    + +

    +Definition at line 328 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TIER   0x0147
    +
    +
    + +

    + +

    +Definition at line 329 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXERR   0x014F
    +
    +
    + +

    + +

    +Definition at line 336 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG0   0x0170
    +
    +
    + +

    + +

    +Definition at line 369 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG1   0x0171
    +
    +
    + +

    + +

    +Definition at line 370 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG2   0x0172
    +
    +
    + +

    + +

    +Definition at line 371 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG3   0x0173
    +
    +
    + +

    + +

    +Definition at line 372 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG4   0x0174
    +
    +
    + +

    + +

    +Definition at line 373 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG5   0x0175
    +
    +
    + +

    + +

    +Definition at line 374 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG6   0x0176
    +
    +
    + +

    + +

    +Definition at line 375 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG7   0x0177
    +
    +
    + +

    + +

    +Definition at line 376 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG8   0x0178
    +
    +
    + +

    + +

    +Definition at line 377 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFG9   0x0179
    +
    +
    + +

    + +

    +Definition at line 378 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFGA   0x017A
    +
    +
    + +

    + +

    +Definition at line 379 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFGB   0x017B
    +
    +
    + +

    + +

    +Definition at line 380 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFGC   0x017C
    +
    +
    + +

    + +

    +Definition at line 381 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFGD   0x017D
    +
    +
    + +

    + +

    +Definition at line 382 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFGE   0x017E
    +
    +
    + +

    + +

    +Definition at line 383 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN0TXFGF   0x017F
    +
    +
    + +

    + +

    +Definition at line 384 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1   0x0180
    +
    +
    + +

    + +

    +Definition at line 699 of file ports_def.h. +

    +Referenced by f_can_receive(). +

    +

    + +

    +
    + + + + +
    #define CAN1BTR0   0x0182
    +
    +
    + +

    + +

    +Definition at line 388 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1BTR1   0x0183
    +
    +
    + +

    + +

    +Definition at line 389 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1CTL0   0x0180
    +
    +
    + +

    + +

    +Definition at line 386 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1CTL1   0x0181
    +
    +
    + +

    + +

    +Definition at line 387 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAC   0x018B
    +
    +
    + +

    + +

    +Definition at line 397 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR0   0x0190
    +
    +
    + +

    + +

    +Definition at line 400 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR1   0x0191
    +
    +
    + +

    + +

    +Definition at line 401 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR2   0x0192
    +
    +
    + +

    + +

    +Definition at line 402 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR3   0x0193
    +
    +
    + +

    + +

    +Definition at line 403 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR4   0x0198
    +
    +
    + +

    + +

    +Definition at line 408 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR5   0x0199
    +
    +
    + +

    + +

    +Definition at line 409 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR6   0x019A
    +
    +
    + +

    + +

    +Definition at line 410 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDAR7   0x019B
    +
    +
    + +

    + +

    +Definition at line 411 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR0   0x0194
    +
    +
    + +

    + +

    +Definition at line 404 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR1   0x0195
    +
    +
    + +

    + +

    +Definition at line 405 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR2   0x0196
    +
    +
    + +

    + +

    +Definition at line 406 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR3   0x0197
    +
    +
    + +

    + +

    +Definition at line 407 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR4   0x019C
    +
    +
    + +

    + +

    +Definition at line 412 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR5   0x019D
    +
    +
    + +

    + +

    +Definition at line 413 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR6   0x019E
    +
    +
    + +

    + +

    +Definition at line 414 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1IDMR7   0x019F
    +
    +
    + +

    + +

    +Definition at line 415 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RFLG   0x0184
    +
    +
    + +

    + +

    +Definition at line 390 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RIER   0x0185
    +
    +
    + +

    + +

    +Definition at line 391 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXERR   0x018E
    +
    +
    + +

    + +

    +Definition at line 398 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG0   0x01A0
    +
    +
    + +

    + +

    +Definition at line 417 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG1   0x01A1
    +
    +
    + +

    + +

    +Definition at line 418 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG2   0x01A2
    +
    +
    + +

    + +

    +Definition at line 419 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG3   0x01A3
    +
    +
    + +

    + +

    +Definition at line 420 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG4   0x01A4
    +
    +
    + +

    + +

    +Definition at line 421 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG5   0x01A5
    +
    +
    + +

    + +

    +Definition at line 422 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG6   0x01A6
    +
    +
    + +

    + +

    +Definition at line 423 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG7   0x01A7
    +
    +
    + +

    + +

    +Definition at line 424 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG8   0x01A8
    +
    +
    + +

    + +

    +Definition at line 425 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFG9   0x01A9
    +
    +
    + +

    + +

    +Definition at line 426 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFGA   0x01AA
    +
    +
    + +

    + +

    +Definition at line 427 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFGB   0x01AB
    +
    +
    + +

    + +

    +Definition at line 428 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFGC   0x01AC
    +
    +
    + +

    + +

    +Definition at line 429 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFGD   0x01AD
    +
    +
    + +

    + +

    +Definition at line 430 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFGE   0x01AE
    +
    +
    + +

    + +

    +Definition at line 431 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1RXFGF   0x01AF
    +
    +
    + +

    + +

    +Definition at line 432 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TAAK   0x0189
    +
    +
    + +

    + +

    +Definition at line 395 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TARQ   0x0188
    +
    +
    + +

    + +

    +Definition at line 394 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TBSEL   0x018A
    +
    +
    + +

    + +

    +Definition at line 396 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TFLG   0x0186
    +
    +
    + +

    + +

    +Definition at line 392 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TIER   0x0187
    +
    +
    + +

    + +

    +Definition at line 393 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXERR   0x018F
    +
    +
    + +

    + +

    +Definition at line 399 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG0   0x01B0
    +
    +
    + +

    + +

    +Definition at line 433 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG1   0x01B1
    +
    +
    + +

    + +

    +Definition at line 434 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG2   0x01B2
    +
    +
    + +

    + +

    +Definition at line 435 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG3   0x01B3
    +
    +
    + +

    + +

    +Definition at line 436 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG4   0x01B4
    +
    +
    + +

    + +

    +Definition at line 437 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG5   0x01B5
    +
    +
    + +

    + +

    +Definition at line 438 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG6   0x01B6
    +
    +
    + +

    + +

    +Definition at line 439 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG7   0x01B7
    +
    +
    + +

    + +

    +Definition at line 440 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG8   0x01B8
    +
    +
    + +

    + +

    +Definition at line 441 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFG9   0x01B9
    +
    +
    + +

    + +

    +Definition at line 442 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFGA   0x01BA
    +
    +
    + +

    + +

    +Definition at line 443 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFGB   0x01BB
    +
    +
    + +

    + +

    +Definition at line 444 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFGC   0x01BC
    +
    +
    + +

    + +

    +Definition at line 445 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFGD   0x01BD
    +
    +
    + +

    + +

    +Definition at line 446 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFGE   0x01BE
    +
    +
    + +

    + +

    +Definition at line 447 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN1TXFGF   0x01BF
    +
    +
    + +

    + +

    +Definition at line 448 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2   0x01C0
    +
    +
    + +

    + +

    +Definition at line 700 of file ports_def.h. +

    +Referenced by f_can_receive(). +

    +

    + +

    +
    + + + + +
    #define CAN2BTR0   0x01C2
    +
    +
    + +

    + +

    +Definition at line 451 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2BTR1   0x01C3
    +
    +
    + +

    + +

    +Definition at line 452 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2CTL0   0x01C0
    +
    +
    + +

    + +

    +Definition at line 449 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2CTL1   0x01C1
    +
    +
    + +

    + +

    +Definition at line 450 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAC   0x01CB
    +
    +
    + +

    + +

    +Definition at line 460 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR0   0x01D0
    +
    +
    + +

    + +

    +Definition at line 464 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR1   0x01D1
    +
    +
    + +

    + +

    +Definition at line 465 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR2   0x01D2
    +
    +
    + +

    + +

    +Definition at line 466 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR3   0x01D3
    +
    +
    + +

    + +

    +Definition at line 467 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR4   0x01D8
    +
    +
    + +

    + +

    +Definition at line 472 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR5   0x01D9
    +
    +
    + +

    + +

    +Definition at line 473 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR6   0x01DA
    +
    +
    + +

    + +

    +Definition at line 474 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDAR7   0x01DB
    +
    +
    + +

    + +

    +Definition at line 475 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR0   0x01D4
    +
    +
    + +

    + +

    +Definition at line 468 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR1   0x01D5
    +
    +
    + +

    + +

    +Definition at line 469 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR2   0x01D6
    +
    +
    + +

    + +

    +Definition at line 470 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR3   0x01D7
    +
    +
    + +

    + +

    +Definition at line 471 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR4   0x01DC
    +
    +
    + +

    + +

    +Definition at line 476 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR5   0x01DD
    +
    +
    + +

    + +

    +Definition at line 477 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR6   0x01DE
    +
    +
    + +

    + +

    +Definition at line 478 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2IDMR7   0x01DF
    +
    +
    + +

    + +

    +Definition at line 479 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RFLG   0x01C4
    +
    +
    + +

    + +

    +Definition at line 453 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RIER   0x01C5
    +
    +
    + +

    + +

    +Definition at line 454 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXERR   0x01CE
    +
    +
    + +

    + +

    +Definition at line 462 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG0   0x01E0
    +
    +
    + +

    + +

    +Definition at line 480 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG1   0x01E1
    +
    +
    + +

    + +

    +Definition at line 481 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG2   0x01E2
    +
    +
    + +

    + +

    +Definition at line 482 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG3   0x01E3
    +
    +
    + +

    + +

    +Definition at line 483 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG4   0x01E4
    +
    +
    + +

    + +

    +Definition at line 484 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG5   0x01E5
    +
    +
    + +

    + +

    +Definition at line 485 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG6   0x01E6
    +
    +
    + +

    + +

    +Definition at line 486 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG7   0x01E7
    +
    +
    + +

    + +

    +Definition at line 487 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG8   0x01E8
    +
    +
    + +

    + +

    +Definition at line 488 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFG9   0x01E9
    +
    +
    + +

    + +

    +Definition at line 489 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFGA   0x01EA
    +
    +
    + +

    + +

    +Definition at line 490 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFGB   0x01EB
    +
    +
    + +

    + +

    +Definition at line 491 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFGC   0x01EC
    +
    +
    + +

    + +

    +Definition at line 492 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFGD   0x01ED
    +
    +
    + +

    + +

    +Definition at line 493 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFGE   0x01EE
    +
    +
    + +

    + +

    +Definition at line 494 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2RXFGF   0x01EF
    +
    +
    + +

    + +

    +Definition at line 495 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TAAK   0x01C9
    +
    +
    + +

    + +

    +Definition at line 458 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TARQ   0x01C8
    +
    +
    + +

    + +

    +Definition at line 457 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TBSEL   0x01CA
    +
    +
    + +

    + +

    +Definition at line 459 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TFLG   0x01C6
    +
    +
    + +

    + +

    +Definition at line 455 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TIER   0x01C7
    +
    +
    + +

    + +

    +Definition at line 456 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXERR   0x01CF
    +
    +
    + +

    + +

    +Definition at line 463 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG0   0x01F0
    +
    +
    + +

    + +

    +Definition at line 496 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG1   0x01F1
    +
    +
    + +

    + +

    +Definition at line 497 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG2   0x01F2
    +
    +
    + +

    + +

    +Definition at line 498 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG3   0x01F3
    +
    +
    + +

    + +

    +Definition at line 499 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG4   0x01F4
    +
    +
    + +

    + +

    +Definition at line 500 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG5   0x01F5
    +
    +
    + +

    + +

    +Definition at line 501 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG6   0x01F6
    +
    +
    + +

    + +

    +Definition at line 502 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG7   0x01F7
    +
    +
    + +

    + +

    +Definition at line 503 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG8   0x01F8
    +
    +
    + +

    + +

    +Definition at line 504 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFG9   0x01F9
    +
    +
    + +

    + +

    +Definition at line 505 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFGA   0x01FA
    +
    +
    + +

    + +

    +Definition at line 506 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFGB   0x01FB
    +
    +
    + +

    + +

    +Definition at line 507 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFGC   0x01FC
    +
    +
    + +

    + +

    +Definition at line 508 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFGD   0x01FD
    +
    +
    + +

    + +

    +Definition at line 509 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFGE   0x01FE
    +
    +
    + +

    + +

    +Definition at line 510 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN2TXFGF   0x01FF
    +
    +
    + +

    + +

    +Definition at line 511 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3   0x0200
    +
    +
    + +

    + +

    +Definition at line 701 of file ports_def.h. +

    +Referenced by f_can_receive(). +

    +

    + +

    +
    + + + + +
    #define CAN3BTR0   0x0202
    +
    +
    + +

    + +

    +Definition at line 515 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3BTR1   0x0203
    +
    +
    + +

    + +

    +Definition at line 516 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3CTL0   0x0200
    +
    +
    + +

    + +

    +Definition at line 513 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3CTL1   0x0201
    +
    +
    + +

    + +

    +Definition at line 514 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAC   0x020B
    +
    +
    + +

    + +

    +Definition at line 524 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR0   0x0210
    +
    +
    + +

    + +

    +Definition at line 528 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR1   0x0211
    +
    +
    + +

    + +

    +Definition at line 529 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR2   0x0212
    +
    +
    + +

    + +

    +Definition at line 530 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR3   0x0213
    +
    +
    + +

    + +

    +Definition at line 531 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR4   0x0218
    +
    +
    + +

    + +

    +Definition at line 536 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR5   0x0219
    +
    +
    + +

    + +

    +Definition at line 537 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR6   0x021A
    +
    +
    + +

    + +

    +Definition at line 538 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDAR7   0x021B
    +
    +
    + +

    + +

    +Definition at line 539 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR0   0x0214
    +
    +
    + +

    + +

    +Definition at line 532 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR1   0x0215
    +
    +
    + +

    + +

    +Definition at line 533 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR2   0x0216
    +
    +
    + +

    + +

    +Definition at line 534 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR3   0x0217
    +
    +
    + +

    + +

    +Definition at line 535 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR4   0x021C
    +
    +
    + +

    + +

    +Definition at line 540 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR5   0x021D
    +
    +
    + +

    + +

    +Definition at line 541 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR6   0x021E
    +
    +
    + +

    + +

    +Definition at line 542 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3IDMR7   0x021F
    +
    +
    + +

    + +

    +Definition at line 543 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RFLG   0x0204
    +
    +
    + +

    + +

    +Definition at line 517 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RIER   0x0205
    +
    +
    + +

    + +

    +Definition at line 518 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXERR   0x020E
    +
    +
    + +

    + +

    +Definition at line 526 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG0   0x0220
    +
    +
    + +

    + +

    +Definition at line 545 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG1   0x0221
    +
    +
    + +

    + +

    +Definition at line 546 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG2   0x0222
    +
    +
    + +

    + +

    +Definition at line 547 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG3   0x0223
    +
    +
    + +

    + +

    +Definition at line 548 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG4   0x0224
    +
    +
    + +

    + +

    +Definition at line 549 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG5   0x0225
    +
    +
    + +

    + +

    +Definition at line 550 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG6   0x0226
    +
    +
    + +

    + +

    +Definition at line 551 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG7   0x0227
    +
    +
    + +

    + +

    +Definition at line 552 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG8   0x0228
    +
    +
    + +

    + +

    +Definition at line 553 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFG9   0x0229
    +
    +
    + +

    + +

    +Definition at line 554 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFGA   0x022A
    +
    +
    + +

    + +

    +Definition at line 555 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFGB   0x022B
    +
    +
    + +

    + +

    +Definition at line 556 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFGC   0x022C
    +
    +
    + +

    + +

    +Definition at line 557 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFGD   0x022D
    +
    +
    + +

    + +

    +Definition at line 558 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFGE   0x022E
    +
    +
    + +

    + +

    +Definition at line 559 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3RXFGF   0x022F
    +
    +
    + +

    + +

    +Definition at line 560 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TAAK   0x0209
    +
    +
    + +

    + +

    +Definition at line 522 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TARQ   0x0208
    +
    +
    + +

    + +

    +Definition at line 521 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TBSEL   0x020A
    +
    +
    + +

    + +

    +Definition at line 523 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TFLG   0x0206
    +
    +
    + +

    + +

    +Definition at line 519 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TIER   0x0207
    +
    +
    + +

    + +

    +Definition at line 520 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXERR   0x020F
    +
    +
    + +

    + +

    +Definition at line 527 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG0   0x0230
    +
    +
    + +

    + +

    +Definition at line 561 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG1   0x0231
    +
    +
    + +

    + +

    +Definition at line 562 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG2   0x0232
    +
    +
    + +

    + +

    +Definition at line 563 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG3   0x0233
    +
    +
    + +

    + +

    +Definition at line 564 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG4   0x0234
    +
    +
    + +

    + +

    +Definition at line 565 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG5   0x0235
    +
    +
    + +

    + +

    +Definition at line 566 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG6   0x0236
    +
    +
    + +

    + +

    +Definition at line 567 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG7   0x0237
    +
    +
    + +

    + +

    +Definition at line 568 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG8   0x0238
    +
    +
    + +

    + +

    +Definition at line 569 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFG9   0x0239
    +
    +
    + +

    + +

    +Definition at line 570 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFGA   0x023A
    +
    +
    + +

    + +

    +Definition at line 571 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFGB   0x023B
    +
    +
    + +

    + +

    +Definition at line 572 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFGC   0x023C
    +
    +
    + +

    + +

    +Definition at line 573 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFGD   0x023D
    +
    +
    + +

    + +

    +Definition at line 574 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFGE   0x023E
    +
    +
    + +

    + +

    +Definition at line 575 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN3TXFGF   0x023F
    +
    +
    + +

    + +

    +Definition at line 576 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4   0x0280
    +
    +
    + +

    + +

    +Definition at line 702 of file ports_def.h. +

    +Referenced by f_can_receive(). +

    +

    + +

    +
    + + + + +
    #define CAN4BTR0   0x0282
    +
    +
    + +

    + +

    +Definition at line 628 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4BTR1   0x0283
    +
    +
    + +

    + +

    +Definition at line 629 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4CTL0   0x0280
    +
    +
    + +

    + +

    +Definition at line 626 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4CTL1   0x0281
    +
    +
    + +

    + +

    +Definition at line 627 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAC   0x028B
    +
    +
    + +

    + +

    +Definition at line 637 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR0   0x0290
    +
    +
    + +

    + +

    +Definition at line 641 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR1   0x0291
    +
    +
    + +

    + +

    +Definition at line 642 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR2   0x0292
    +
    +
    + +

    + +

    +Definition at line 643 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR3   0x0293
    +
    +
    + +

    + +

    +Definition at line 644 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR4   0x0298
    +
    +
    + +

    + +

    +Definition at line 649 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR5   0x0299
    +
    +
    + +

    + +

    +Definition at line 650 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR6   0x029A
    +
    +
    + +

    + +

    +Definition at line 651 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDAR7   0x029B
    +
    +
    + +

    + +

    +Definition at line 652 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR0   0x0294
    +
    +
    + +

    + +

    +Definition at line 645 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR1   0x0295
    +
    +
    + +

    + +

    +Definition at line 646 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR2   0x0296
    +
    +
    + +

    + +

    +Definition at line 647 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR3   0x0297
    +
    +
    + +

    + +

    +Definition at line 648 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR4   0x029C
    +
    +
    + +

    + +

    +Definition at line 653 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR5   0x029D
    +
    +
    + +

    + +

    +Definition at line 654 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR6   0x029E
    +
    +
    + +

    + +

    +Definition at line 655 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4IDMR7   0x029F
    +
    +
    + +

    + +

    +Definition at line 656 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RFLG   0x0284
    +
    +
    + +

    + +

    +Definition at line 630 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RIER   0x0285
    +
    +
    + +

    + +

    +Definition at line 631 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXERR   0x028E
    +
    +
    + +

    + +

    +Definition at line 639 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG0   0x02A0
    +
    +
    + +

    + +

    +Definition at line 658 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG1   0x02A1
    +
    +
    + +

    + +

    +Definition at line 659 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG2   0x02A2
    +
    +
    + +

    + +

    +Definition at line 660 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG3   0x02A3
    +
    +
    + +

    + +

    +Definition at line 661 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG4   0x02A4
    +
    +
    + +

    + +

    +Definition at line 662 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG5   0x02A5
    +
    +
    + +

    + +

    +Definition at line 663 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG6   0x02A6
    +
    +
    + +

    + +

    +Definition at line 664 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG7   0x02A7
    +
    +
    + +

    + +

    +Definition at line 665 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG8   0x02A8
    +
    +
    + +

    + +

    +Definition at line 666 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFG9   0x02A9
    +
    +
    + +

    + +

    +Definition at line 667 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFGA   0x02AA
    +
    +
    + +

    + +

    +Definition at line 668 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFGB   0x02AB
    +
    +
    + +

    + +

    +Definition at line 669 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFGC   0x02AC
    +
    +
    + +

    + +

    +Definition at line 670 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFGD   0x02AD
    +
    +
    + +

    + +

    +Definition at line 671 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFGE   0x02AE
    +
    +
    + +

    + +

    +Definition at line 672 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4RXFGF   0x02AF
    +
    +
    + +

    + +

    +Definition at line 673 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TAAK   0x0289
    +
    +
    + +

    + +

    +Definition at line 635 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TARQ   0x0288
    +
    +
    + +

    + +

    +Definition at line 634 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TBSEL   0x028A
    +
    +
    + +

    + +

    +Definition at line 636 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TFLG   0x0286
    +
    +
    + +

    + +

    +Definition at line 632 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TIER   0x0287
    +
    +
    + +

    + +

    +Definition at line 633 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXERR   0x028F
    +
    +
    + +

    + +

    +Definition at line 640 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG0   0x02B0
    +
    +
    + +

    + +

    +Definition at line 674 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG1   0x02B1
    +
    +
    + +

    + +

    +Definition at line 675 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG2   0x02B2
    +
    +
    + +

    + +

    +Definition at line 676 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG3   0x02B3
    +
    +
    + +

    + +

    +Definition at line 677 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG4   0x02B4
    +
    +
    + +

    + +

    +Definition at line 678 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG5   0x02B5
    +
    +
    + +

    + +

    +Definition at line 679 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG6   0x02B6
    +
    +
    + +

    + +

    +Definition at line 680 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG7   0x02B7
    +
    +
    + +

    + +

    +Definition at line 681 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG8   0x02B8
    +
    +
    + +

    + +

    +Definition at line 682 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFG9   0x02B9
    +
    +
    + +

    + +

    +Definition at line 683 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFGA   0x02BA
    +
    +
    + +

    + +

    +Definition at line 684 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFGB   0x02BB
    +
    +
    + +

    + +

    +Definition at line 685 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFGC   0x02BC
    +
    +
    + +

    + +

    +Definition at line 686 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFGD   0x02BD
    +
    +
    + +

    + +

    +Definition at line 687 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFGE   0x02BE
    +
    +
    + +

    + +

    +Definition at line 688 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CAN4TXFGF   0x02BF
    +
    +
    + +

    + +

    +Definition at line 689 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CANBTR0   0X02
    +
    +
    + +

    + +

    +Definition at line 706 of file ports_def.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    #define CANBTR1   0X03
    +
    +
    + +

    + +

    +Definition at line 707 of file ports_def.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    #define CANCTL0   0X00
    +
    +
    + +

    + +

    +Definition at line 704 of file ports_def.h. +

    +Referenced by canInit(), canInitMode(), canInitModeQ(), canSleepMode(), canSleepModeQ(), and canSleepWupMode(). +

    +

    + +

    +
    + + + + +
    #define CANCTL1   0X01
    +
    +
    + +

    + +

    +Definition at line 705 of file ports_def.h. +

    +Referenced by canEnable(), canInit(), canInitClock(), canTestInitMode(), and canTestSleepMode(). +

    +

    + +

    +
    + + + + +
    #define CANIDAC   0x0B
    +
    +
    + +

    + +

    +Definition at line 713 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR0   0x10
    +
    +
    + +

    + +

    +Definition at line 714 of file ports_def.h. +

    +Referenced by canAddIdToFilter(), canInit1Filter(), and canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR1   0x11
    +
    +
    + +

    + +

    +Definition at line 715 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR2   0x12
    +
    +
    + +

    + +

    +Definition at line 716 of file ports_def.h. +

    +Referenced by canAddIdToFilter(), canInit1Filter(), and canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR3   0x13
    +
    +
    + +

    + +

    +Definition at line 717 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR4   0x18
    +
    +
    + +

    + +

    +Definition at line 722 of file ports_def.h. +

    +Referenced by canAddIdToFilter(), canInit1Filter(), and canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR5   0x19
    +
    +
    + +

    + +

    +Definition at line 723 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR6   0x1A
    +
    +
    + +

    + +

    +Definition at line 724 of file ports_def.h. +

    +Referenced by canAddIdToFilter(), canInit1Filter(), and canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDAR7   0x1B
    +
    +
    + +

    + +

    +Definition at line 725 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR0   0x14
    +
    +
    + +

    + +

    +Definition at line 718 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR1   0x15
    +
    +
    + +

    + +

    +Definition at line 719 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR2   0x16
    +
    +
    + +

    + +

    +Definition at line 720 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR3   0x17
    +
    +
    + +

    + +

    +Definition at line 721 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR4   0x1C
    +
    +
    + +

    + +

    +Definition at line 726 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR5   0x1D
    +
    +
    + +

    + +

    +Definition at line 727 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR6   0x1E
    +
    +
    + +

    + +

    +Definition at line 728 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANIDMR7   0x1F
    +
    +
    + +

    + +

    +Definition at line 729 of file ports_def.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    #define CANRCVDTA   0x24
    +
    +
    + +

    + +

    +Definition at line 733 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CANRCVID   0x20
    +
    +
    + +

    + +

    +Definition at line 732 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CANRCVLEN   0x2C
    +
    +
    + +

    + +

    +Definition at line 734 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CANRFLG   0X04
    +
    +
    + +

    + +

    +Definition at line 708 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CANRIER   0X05
    +
    +
    + +

    + +

    +Definition at line 709 of file ports_def.h. +

    +Referenced by canSetInterrupt(). +

    +

    + +

    +
    + + + + +
    #define CANTBSEL   0X0A
    +
    +
    + +

    + +

    +Definition at line 712 of file ports_def.h. +

    +Referenced by canMsgTransmit(). +

    +

    + +

    +
    + + + + +
    #define CANTFLG   0X06
    +
    +
    + +

    + +

    +Definition at line 710 of file ports_def.h. +

    +Referenced by canMsgTransmit(). +

    +

    + +

    +
    + + + + +
    #define CANTIER   0X07
    +
    +
    + +

    + +

    +Definition at line 711 of file ports_def.h. +

    +Referenced by canSetInterrupt(). +

    +

    + +

    +
    + + + + +
    #define CANTRSDTA   0x34
    +
    +
    + +

    + +

    +Definition at line 738 of file ports_def.h. +

    +Referenced by canMsgTransmit(). +

    +

    + +

    +
    + + + + +
    #define CANTRSID   0x30
    +
    +
    + +

    + +

    +Definition at line 737 of file ports_def.h. +

    +Referenced by canMsgTransmit(). +

    +

    + +

    +
    + + + + +
    #define CANTRSLEN   0x3C
    +
    +
    + +

    + +

    +Definition at line 739 of file ports_def.h. +

    +Referenced by canMsgTransmit(). +

    +

    + +

    +
    + + + + +
    #define CANTRSPRI   0x3D
    +
    +
    + +

    + +

    +Definition at line 740 of file ports_def.h. +

    +Referenced by canMsgTransmit(). +

    +

    + +

    +
    + + + + +
    #define CLKSEL   0x0039
    +
    +
    + +

    + +

    +Definition at line 88 of file ports_def.h. +

    +Referenced by initPLL(). +

    +

    + +

    +
    + + + + +
    #define COPCTL   0x003C
    +
    +
    + +

    + +

    +Definition at line 91 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CRGFLG   0x0037
    +
    +
    + +

    + +

    +Definition at line 86 of file ports_def.h. +

    +Referenced by initPLL(). +

    +

    + +

    +
    + + + + +
    #define CRGINT   0x0038
    +
    +
    + +

    + +

    +Definition at line 87 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CTCTL   0x003E
    +
    +
    + +

    + +

    +Definition at line 93 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define CTFLG   0x0036
    +
    +
    + +

    + +

    +Definition at line 85 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRA   0x0002
    +
    +
    + +

    + +

    +Definition at line 44 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRB   0x0003
    +
    +
    + +

    + +

    +Definition at line 45 of file ports_def.h. +

    +Referenced by initPortB(). +

    +

    + +

    +
    + + + + +
    #define DDRE   0x0009
    +
    +
    + +

    + +

    +Definition at line 48 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRH   0x0262
    +
    +
    + +

    + +

    +Definition at line 611 of file ports_def.h. +

    +Referenced by initPortH(). +

    +

    + +

    +
    + + + + +
    #define DDRJ   0x026A
    +
    +
    + +

    + +

    +Definition at line 619 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRK   0x0033
    +
    +
    + +

    + +

    +Definition at line 82 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRM   0x0252
    +
    +
    + +

    + +

    +Definition at line 595 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRP   0x025A
    +
    +
    + +

    + +

    +Definition at line 603 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRS   0x024A
    +
    +
    + +

    + +

    +Definition at line 587 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DDRT   0x0242
    +
    +
    + +

    + +

    +Definition at line 580 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBARD   0x00EC
    +
    +
    + +

    + +

    +Definition at line 259 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBCR1   0x00E8
    +
    +
    + +

    + +

    +Definition at line 255 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBCR2   0x00EA
    +
    +
    + +

    + +

    +Definition at line 257 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBDR   0x00EB
    +
    +
    + +

    + +

    +Definition at line 258 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBRSR   0x00ED
    +
    +
    + +

    + +

    +Definition at line 260 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBSTAT   0x00EF
    +
    +
    + +

    + +

    +Definition at line 262 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCBSVR   0x00E9
    +
    +
    + +

    + +

    +Definition at line 256 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLCSCR   0x00EE
    +
    +
    + +

    + +

    +Definition at line 261 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define DLYCT   0x0069
    +
    +
    + +

    + +

    +Definition at line 136 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define EBICTL   0x000E
    +
    +
    + +

    + +

    +Definition at line 53 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ECLKDIV   0x0110
    +
    +
    + +

    + +

    +Definition at line 285 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ECMD   0x0116
    +
    +
    + +

    + +

    +Definition at line 290 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ECNFG   0x0113
    +
    +
    + +

    + +

    +Definition at line 287 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define EPROT   0x0114
    +
    +
    + +

    + +

    +Definition at line 288 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ESTAT   0x0115
    +
    +
    + +

    + +

    +Definition at line 289 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FCLKDIV   0x0100
    +
    +
    + +

    + +

    +Definition at line 277 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FCMD   0x0106
    +
    +
    + +

    + +

    +Definition at line 283 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FCNFG   0x0103
    +
    +
    + +

    + +

    +Definition at line 280 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FORBYP   0x003D
    +
    +
    + +

    + +

    +Definition at line 92 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FPROT   0x0104
    +
    +
    + +

    + +

    +Definition at line 281 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FSEC   0x0101
    +
    +
    + +

    + +

    +Definition at line 278 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define FSTAT   0x0105
    +
    +
    + +

    + +

    +Definition at line 282 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define HPRIO   0x001F
    +
    +
    + +

    + +

    +Definition at line 69 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define IBAD   0x00E0
    +
    +
    + +

    + +

    +Definition at line 249 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define IBCR   0x00E2
    +
    +
    + +

    + +

    +Definition at line 251 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define IBFD   0x00E1
    +
    +
    + +

    + +

    +Definition at line 250 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define IBSR   0x00E3
    +
    +
    + +

    + +

    +Definition at line 252 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ICOVW   0x006A
    +
    +
    + +

    + +

    +Definition at line 137 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ICPAR   0x0068
    +
    +
    + +

    + +

    +Definition at line 135 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ICSYS   0x006B
    +
    +
    + +

    + +

    +Definition at line 138 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define IICDR   0x00E4
    +
    +
    + +

    + +

    +Definition at line 253 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define INITEE   0x0012
    +
    +
    + +

    + +

    +Definition at line 57 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define INITRG   0x0011
    +
    +
    + +

    + +

    +Definition at line 56 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define INITRM   0x0010
    +
    +
    + +

    + +

    +Definition at line 55 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define INTCR   0x001E
    +
    +
    + +

    + +

    +Definition at line 68 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ITCR   0x0015
    +
    +
    + +

    + +

    +Definition at line 60 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define ITEST   0x0016
    +
    +
    + +

    + +

    +Definition at line 61 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MCCNTH   0x0076
    +
    +
    + +

    + +

    +Definition at line 148 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MCCNTL   0x0077
    +
    +
    + +

    + +

    +Definition at line 149 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MCCTL   0x0066
    +
    +
    + +

    + +

    +Definition at line 133 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MCFLG   0x0067
    +
    +
    + +

    + +

    +Definition at line 134 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MEMSIZ0   0x001C
    +
    +
    + +

    + +

    +Definition at line 66 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MEMSIZ1   0x001D
    +
    +
    + +

    + +

    +Definition at line 67 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MISC   0x0013
    +
    +
    + +

    + +

    +Definition at line 58 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MODE   0x000B
    +
    +
    + +

    + +

    +Definition at line 50 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MTST0   0x0014
    +
    +
    + +

    + +

    +Definition at line 59 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define MTST1   0x0017
    +
    +
    + +

    + +

    +Definition at line 62 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PA0H   0x0075
    +
    +
    + +

    + +

    +Definition at line 147 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PA1H   0x0074
    +
    +
    + +

    + +

    +Definition at line 146 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PA2H   0x0073
    +
    +
    + +

    + +

    +Definition at line 145 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PA3H   0x0072
    +
    +
    + +

    + +

    +Definition at line 144 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PACN0L   0x0065
    +
    +
    + +

    + +

    +Definition at line 132 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PACN1H   0x0064
    +
    +
    + +

    + +

    +Definition at line 131 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PACN2L   0x0063
    +
    +
    + +

    + +

    +Definition at line 130 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PACN3H   0x0062
    +
    +
    + +

    + +

    +Definition at line 129 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PACTL   0x0060
    +
    +
    + +

    + +

    +Definition at line 127 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PAFLG   0x0061
    +
    +
    + +

    + +

    +Definition at line 128 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PARTIDH   0x001A
    +
    +
    + +

    + +

    +Definition at line 64 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PARTIDL   0x001B
    +
    +
    + +

    + +

    +Definition at line 65 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PBCTL   0x0070
    +
    +
    + +

    + +

    +Definition at line 142 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PBFLG   0x0071
    +
    +
    + +

    + +

    +Definition at line 143 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PEAR   0x000A
    +
    +
    + +

    + +

    +Definition at line 49 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PERH   0x0264
    +
    +
    + +

    + +

    +Definition at line 613 of file ports_def.h. +

    +Referenced by initPortH(). +

    +

    + +

    +
    + + + + +
    #define PERJ   0x026C
    +
    +
    + +

    + +

    +Definition at line 621 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PERM   0x0254
    +
    +
    + +

    + +

    +Definition at line 597 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PERP   0x025C
    +
    +
    + +

    + +

    +Definition at line 605 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PERS   0x024C
    +
    +
    + +

    + +

    +Definition at line 589 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PERT   0x0244
    +
    +
    + +

    + +

    +Definition at line 582 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PIEH   0x0266
    +
    +
    + +

    + +

    +Definition at line 615 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PIEJ   0x026E
    +
    +
    + +

    + +

    +Definition at line 623 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PIEP   0x025E
    +
    +
    + +

    + +

    +Definition at line 607 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PIFH   0x0267
    +
    +
    + +

    + +

    +Definition at line 616 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PIFJ   0x026F
    +
    +
    + +

    + +

    +Definition at line 624 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PIFP   0x025F
    +
    +
    + +

    + +

    +Definition at line 608 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PLLCTL   0x003A
    +
    +
    + +

    + +

    +Definition at line 89 of file ports_def.h. +

    +Referenced by initPLL(). +

    +

    + +

    +
    + + + + +
    #define PORTA   0x0000
    +
    +
    + +

    + +

    +Definition at line 42 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PORTAD0   0x008F
    +
    +
    + +

    + +

    +Definition at line 171 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PORTAD1   0x012F
    +
    +
    + +

    + +

    +Definition at line 305 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PORTB   0x0001
    +
    + +

    + +

    +
    + + + + +
    #define PORTE   0x0008
    +
    +
    + +

    + +

    +Definition at line 47 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PORTK   0x0032
    +
    +
    + +

    + +

    +Definition at line 81 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PPAGE   0x0030
    +
    +
    + +

    + +

    +Definition at line 79 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PPSH   0x0265
    +
    +
    + +

    + +

    +Definition at line 614 of file ports_def.h. +

    +Referenced by initPortH(). +

    +

    + +

    +
    + + + + +
    #define PPSJ   0x026D
    +
    +
    + +

    + +

    +Definition at line 622 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PPSM   0x0255
    +
    +
    + +

    + +

    +Definition at line 598 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PPSP   0x025D
    +
    +
    + +

    + +

    +Definition at line 606 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PPSS   0x024D
    +
    +
    + +

    + +

    +Definition at line 590 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PPST   0x0245
    +
    +
    + +

    + +

    +Definition at line 583 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTH   0x0260
    +
    +
    + +

    + +

    +Definition at line 609 of file ports_def.h. +

    +Referenced by initSensor(). +

    +

    + +

    +
    + + + + +
    #define PTIH   0x0261
    +
    +
    + +

    + +

    +Definition at line 610 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTIJ   0x0269
    +
    +
    + +

    + +

    +Definition at line 618 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTIM   0x0251
    +
    +
    + +

    + +

    +Definition at line 594 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTIP   0x0259
    +
    +
    + +

    + +

    +Definition at line 602 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTIS   0x0249
    +
    +
    + +

    + +

    +Definition at line 586 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTIT   0x0241
    +
    +
    + +

    + +

    +Definition at line 579 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTJ   0x0268
    +
    +
    + +

    + +

    +Definition at line 617 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTM   0x0250
    +
    +
    + +

    + +

    +Definition at line 593 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTP   0x0258
    +
    +
    + +

    + +

    +Definition at line 601 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTS   0x0248
    +
    +
    + +

    + +

    +Definition at line 585 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PTT   0x0240
    +
    +
    + +

    + +

    +Definition at line 578 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PUCR   0x000C
    +
    +
    + +

    + +

    +Definition at line 51 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCAE   0x00A4
    +
    +
    + +

    + +

    +Definition at line 192 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCLK   0x00A2
    +
    +
    + +

    + +

    +Definition at line 190 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT0   0x00AC
    +
    +
    + +

    + +

    +Definition at line 200 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT1   0x00AD
    +
    +
    + +

    + +

    +Definition at line 201 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT2   0x00AE
    +
    +
    + +

    + +

    +Definition at line 202 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT3   0x00AF
    +
    +
    + +

    + +

    +Definition at line 203 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT4   0x00B0
    +
    +
    + +

    + +

    +Definition at line 204 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT5   0x00B1
    +
    +
    + +

    + +

    +Definition at line 205 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT6   0x00B2
    +
    +
    + +

    + +

    +Definition at line 206 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCNT7   0x00B3
    +
    +
    + +

    + +

    +Definition at line 207 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMCTL   0x00A5
    +
    +
    + +

    + +

    +Definition at line 193 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY0   0x00BC
    +
    +
    + +

    + +

    +Definition at line 216 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY1   0x00BD
    +
    +
    + +

    + +

    +Definition at line 217 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY2   0x00BE
    +
    +
    + +

    + +

    +Definition at line 218 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY3   0x00BF
    +
    +
    + +

    + +

    +Definition at line 219 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY4   0x00C0
    +
    +
    + +

    + +

    +Definition at line 220 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY5   0x00C1
    +
    +
    + +

    + +

    +Definition at line 221 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY6   0x00C2
    +
    +
    + +

    + +

    +Definition at line 222 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMDTY7   0x00C3
    +
    +
    + +

    + +

    +Definition at line 223 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWME   0x00A0
    +
    +
    + +

    + +

    +Definition at line 188 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER0   0x00B4
    +
    +
    + +

    + +

    +Definition at line 208 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER1   0x00B5
    +
    +
    + +

    + +

    +Definition at line 209 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER2   0x00B6
    +
    +
    + +

    + +

    +Definition at line 210 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER3   0x00B7
    +
    +
    + +

    + +

    +Definition at line 211 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER4   0x00B8
    +
    +
    + +

    + +

    +Definition at line 212 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER5   0x00B9
    +
    +
    + +

    + +

    +Definition at line 213 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER6   0x00BA
    +
    +
    + +

    + +

    +Definition at line 214 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPER7   0x00BB
    +
    +
    + +

    + +

    +Definition at line 215 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPOL   0x00A1
    +
    +
    + +

    + +

    +Definition at line 189 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPRCLK   0x00A3
    +
    +
    + +

    + +

    +Definition at line 191 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMPRSC   0x00A7
    +
    +
    + +

    + +

    +Definition at line 195 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMSCLA   0x00A8
    +
    +
    + +

    + +

    +Definition at line 196 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMSCLB   0x00A9
    +
    +
    + +

    + +

    +Definition at line 197 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMSCNTA   0x00AA
    +
    +
    + +

    + +

    +Definition at line 198 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMSCNTB   0x00AB
    +
    +
    + +

    + +

    +Definition at line 199 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMSDN   0x00C4
    +
    +
    + +

    + +

    +Definition at line 224 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define PWMTST   0x00A6
    +
    +
    + +

    + +

    +Definition at line 194 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRH   0x0263
    +
    +
    + +

    + +

    +Definition at line 612 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRIV   0x000D
    +
    +
    + +

    + +

    +Definition at line 52 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRJ   0x026B
    +
    +
    + +

    + +

    +Definition at line 620 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRM   0x0253
    +
    +
    + +

    + +

    +Definition at line 596 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRP   0x025B
    +
    +
    + +

    + +

    +Definition at line 604 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRS   0x024B
    +
    +
    + +

    + +

    +Definition at line 588 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define RDRT   0x0243
    +
    +
    + +

    + +

    +Definition at line 581 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define REFDV   0x0035
    +
    +
    + +

    + +

    +Definition at line 84 of file ports_def.h. +

    +Referenced by initPLL(). +

    +

    + +

    +
    + + + + +
    #define RTICTL   0x003B
    +
    +
    + +

    + +

    +Definition at line 90 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SC0CR1   0x00CA
    +
    +
    + +

    + +

    +Definition at line 228 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SC0SR2   0x00CD
    +
    +
    + +

    + +

    +Definition at line 231 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SC1CR1   0x00D2
    +
    +
    + +

    + +

    +Definition at line 236 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SC1SR2   0x00D5
    +
    +
    + +

    + +

    +Definition at line 239 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI0   0x00C8
    +
    +
    + +

    + +

    +Definition at line 744 of file ports_def.h. +

    +Referenced by initSCI_0(). +

    +

    + +

    +
    + + + + +
    #define SCI0BDH   0x00C8
    +
    +
    + +

    + +

    +Definition at line 226 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI0BDL   0x00C9
    +
    +
    + +

    + +

    +Definition at line 227 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI0CR2   0x00CB
    +
    +
    + +

    + +

    +Definition at line 229 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI0DRH   0x00CE
    +
    +
    + +

    + +

    +Definition at line 232 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI0DRL   0x00CF
    +
    +
    + +

    + +

    +Definition at line 233 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI0SR1   0x00CC
    +
    +
    + +

    + +

    +Definition at line 230 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI1   0x00D0
    +
    +
    + +

    + +

    +Definition at line 745 of file ports_def.h. +

    +Referenced by initSCI_1(). +

    +

    + +

    +
    + + + + +
    #define SCI1BDH   0x00D0
    +
    +
    + +

    + +

    +Definition at line 234 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI1BDL   0x00D1
    +
    +
    + +

    + +

    +Definition at line 235 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI1CR2   0x00D3
    +
    +
    + +

    + +

    +Definition at line 237 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI1DRH   0x00D6
    +
    +
    + +

    + +

    +Definition at line 240 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI1DRL   0x00D7
    +
    +
    + +

    + +

    +Definition at line 241 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCI1SR1   0x00D4
    +
    +
    + +

    + +

    +Definition at line 238 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCIBDH   0x00
    +
    +
    + +

    + +

    +Definition at line 747 of file ports_def.h. +

    +Referenced by initSCI_0(), and initSCI_1(). +

    +

    + +

    +
    + + + + +
    #define SCIBDL   0x01
    +
    +
    + +

    + +

    +Definition at line 748 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCICR1   0x02
    +
    +
    + +

    + +

    +Definition at line 749 of file ports_def.h. +

    +Referenced by initSCI_0(), and initSCI_1(). +

    +

    + +

    +
    + + + + +
    #define SCICR2   0x03
    +
    +
    + +

    + +

    +Definition at line 750 of file ports_def.h. +

    +Referenced by initSCI_0(), and initSCI_1(). +

    +

    + +

    +
    + + + + +
    #define SCIDRH   0x06
    +
    +
    + +

    + +

    +Definition at line 753 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SCIDRL   0x07
    +
    +
    + +

    + +

    +Definition at line 754 of file ports_def.h. +

    +Referenced by printSCI_str(). +

    +

    + +

    +
    + + + + +
    #define SCISR1   0x04
    +
    +
    + +

    + +

    +Definition at line 751 of file ports_def.h. +

    +Referenced by printSCI_str(). +

    +

    + +

    +
    + + + + +
    #define SCISR2   0x05
    +
    +
    + +

    + +

    +Definition at line 752 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI0BR   0x00DA
    +
    +
    + +

    + +

    +Definition at line 244 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI0CR1   0x00D8
    +
    +
    + +

    + +

    +Definition at line 242 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI0CR2   0x00D9
    +
    +
    + +

    + +

    +Definition at line 243 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI0DR   0x00DD
    +
    +
    + +

    + +

    +Definition at line 247 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI0SR   0x00DB
    +
    +
    + +

    + +

    +Definition at line 245 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI1BR   0x00F2
    +
    +
    + +

    + +

    +Definition at line 265 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI1CR1   0x00F0
    +
    +
    + +

    + +

    +Definition at line 263 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI1CR2   0x00F1
    +
    +
    + +

    + +

    +Definition at line 264 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI1DR   0x00F5
    +
    +
    + +

    + +

    +Definition at line 268 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI1SR   0x00F3
    +
    +
    + +

    + +

    +Definition at line 266 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI2BR   0x00FA
    +
    +
    + +

    + +

    +Definition at line 272 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI2CR1   0x00F8
    +
    +
    + +

    + +

    +Definition at line 270 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI2CR2   0x00F9
    +
    +
    + +

    + +

    +Definition at line 271 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI2DR   0x00FD
    +
    +
    + +

    + +

    +Definition at line 275 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SPI2SR   0x00FB
    +
    +
    + +

    + +

    +Definition at line 273 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define SYNR   0x0034
    +
    +
    + +

    + +

    +Definition at line 83 of file ports_def.h. +

    +Referenced by initPLL(). +

    +

    + +

    +
    + + + + +
    #define TC0H   0x0050
    +
    +
    + +

    + +

    +Definition at line 111 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC0HH   0x0078
    +
    +
    + +

    + +

    +Definition at line 150 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC0HL   0x0079
    +
    +
    + +

    + +

    +Definition at line 151 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC0L   0x0051
    +
    +
    + +

    + +

    +Definition at line 112 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC1H   0x0052
    +
    +
    + +

    + +

    +Definition at line 113 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC1HH   0x007A
    +
    +
    + +

    + +

    +Definition at line 152 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC1HL   0x007B
    +
    +
    + +

    + +

    +Definition at line 153 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC1L   0x0053
    +
    +
    + +

    + +

    +Definition at line 114 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC2H   0x0054
    +
    +
    + +

    + +

    +Definition at line 115 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC2HH   0x007C
    +
    +
    + +

    + +

    +Definition at line 154 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC2HL   0x007D
    +
    +
    + +

    + +

    +Definition at line 155 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC2L   0x0055
    +
    +
    + +

    + +

    +Definition at line 116 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC3H   0x0056
    +
    +
    + +

    + +

    +Definition at line 117 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC3HH   0x007E
    +
    +
    + +

    + +

    +Definition at line 156 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC3L   0x0057
    +
    +
    + +

    + +

    +Definition at line 118 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC4H   0x0058
    +
    +
    + +

    + +

    +Definition at line 119 of file ports_def.h. +

    +Referenced by __attribute__(), and getElapsedTime(). +

    +

    + +

    +
    + + + + +
    #define TC4L   0x0059
    +
    +
    + +

    + +

    +Definition at line 120 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC5H   0x005A
    +
    +
    + +

    + +

    +Definition at line 121 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC5L   0x005B
    +
    +
    + +

    + +

    +Definition at line 122 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC6H   0x005C
    +
    +
    + +

    + +

    +Definition at line 123 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC6L   0x005D
    +
    +
    + +

    + +

    +Definition at line 124 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC7H   0x005E
    +
    +
    + +

    + +

    +Definition at line 125 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TC7L   0x005F
    +
    +
    + +

    + +

    +Definition at line 126 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TCFORC   0x0041
    +
    +
    + +

    + +

    +Definition at line 96 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TCNTH   0x0044
    +
    +
    + +

    + +

    +Definition at line 99 of file ports_def.h. +

    +Referenced by get_timer_counter(), and set_timer_counter(). +

    +

    + +

    +
    + + + + +
    #define TCNTL   0x0045
    +
    +
    + +

    + +

    +Definition at line 100 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TCTL1   0x0048
    +
    +
    + +

    + +

    +Definition at line 103 of file ports_def.h. +

    +Referenced by initTimer(). +

    +

    + +

    +
    + + + + +
    #define TCTL2   0x0049
    +
    +
    + +

    + +

    +Definition at line 104 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TCTL3   0x004A
    +
    +
    + +

    + +

    +Definition at line 105 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TCTL4   0x004B
    +
    +
    + +

    + +

    +Definition at line 106 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TFLG1   0x004E
    +
    +
    + +

    + +

    +Definition at line 109 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TFLG2   0x004F
    +
    +
    + +

    + +

    +Definition at line 110 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TIE   0x004C
    +
    +
    + +

    + +

    +Definition at line 107 of file ports_def.h. +

    +Referenced by initTimer(). +

    +

    + +

    +
    + + + + +
    #define TIMTST   0x006D
    +
    +
    + +

    + +

    +Definition at line 140 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TIOS   0x0040
    +
    +
    + +

    + +

    +Definition at line 95 of file ports_def.h. +

    +Referenced by initTimer(). +

    +

    + +

    +
    + + + + +
    #define TOC7D   0x0043
    +
    +
    + +

    + +

    +Definition at line 98 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TOC7M   0x0042
    +
    +
    + +

    + +

    +Definition at line 97 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define TSCR1   0x0046
    +
    +
    + +

    + +

    +Definition at line 101 of file ports_def.h. +

    +Referenced by initTimer(). +

    +

    + +

    +
    + + + + +
    #define TSCR2   0x004D
    +
    +
    + +

    + +

    +Definition at line 108 of file ports_def.h. +

    +Referenced by initTimer(). +

    +

    + +

    +
    + + + + +
    #define TTOV   0x0047
    +
    +
    + +

    + +

    +Definition at line 102 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define WOMM   0x0256
    +
    +
    + +

    + +

    +Definition at line 599 of file ports_def.h. +

    +

    + +

    +
    + + + + +
    #define WOMS   0x024E
    +
    +
    + +

    + +

    +Definition at line 591 of file ports_def.h. +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports__def_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports__def_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $appli_8c.html 671,32 940,56 +rect $ports_8h.html 352,56 622,80 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports__def_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/ports__def_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e01ed7221b85985d9a0f5798563f0498 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/ports__def_8h__dep__incl.png Binary file doc/doxygen/html/ports__def_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/portsaccess_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/portsaccess_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,75 @@ + + +CanFestival: include/hcs12/asm-m68hc12/portsaccess.h Source File + + + + + + + +

    portsaccess.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 /*
    +00023 Variables to access to the io_ports
    +00024 */
    +00025 
    +00026 
    +00027 #ifndef __PORTS_ACCESS__
    +00028 #define __PORTS_ACCESS__
    +00029 
    +00030 /*
    +00031 By default the address is 0X0000 on HCS12.
    +00032 But the ports can be remaped. See the file ports.h
    +00033 */
    +00034 
    +00035 
    +00036 extern volatile unsigned char _io_ports[];
    +00037 
    +00038 /* To use for a 8 bits access */
    +00039 #define IO_PORTS_8(adr) \
    +00040 _io_ports[adr]
    +00041 
    +00042 /* To use for a 16 bits access */
    +00043 /* Example : IO_PORTS_16(CAN0IDAR1)= 0xABCD;
    +00044 will put AB at @CAN0IDAR1 and CD at  @CAN0IDAR1 + 1
    +00045 */
    +00046 #define IO_PORTS_16(adr) \
    +00047 *((unsigned volatile short*) (_io_ports + (adr)))
    +00048 
    +00049 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/portsaccess_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/portsaccess_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,112 @@ + + +CanFestival: include/hcs12/asm-m68hc12/portsaccess.h File Reference + + + + + + + +

    portsaccess.h File Reference

    +

    +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file. + + + + + + + + + +

    Defines

    #define IO_PORTS_8(adr)   _io_ports[adr]
    #define IO_PORTS_16(adr)   *((unsigned volatile short*) (_io_ports + (adr)))

    Variables

    volatile unsigned char _io_ports []
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define IO_PORTS_16 (adr   )    *((unsigned volatile short*) (_io_ports + (adr)))
    +
    +
    + +

    + +

    +Definition at line 46 of file portsaccess.h. +

    +Referenced by __attribute__(), canAddIdToFilter(), getElapsedTime(), initSCI_0(), and initSCI_1(). +

    +

    + +

    +


    Variable Documentation

    + +
    +
    + + + + +
    volatile unsigned char _io_ports[]
    +
    +
    + +

    + +

    +Referenced by cop_reset(), get_timer_counter(), and set_timer_counter(). +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/portsaccess_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/portsaccess_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $appli_8c.html 369,6 639,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/portsaccess_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/portsaccess_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f17c992db0405b7b6e5e9faa071f3b73 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/portsaccess_8h__dep__incl.png Binary file doc/doxygen/html/portsaccess_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/regbase_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/regbase_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,64 @@ + + +CanFestival: include/hcs12/regbase.h Source File + + + + + + + +

    regbase.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 /*
    +00024 Définition du maping,
    +00025 qui dépend du contenu du registre INITRG
    +00026 */
    +00027 
    +00028 
    +00029 #ifndef __REGBASE__
    +00030 #define __REGBASE__
    +00031 
    +00032 
    +00033 
    +00034 
    +00035 
    +00036 
    +00037 
    +00038 #endif __REGBASE__
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/regbase_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/regbase_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,31 @@ + + +CanFestival: include/hcs12/regbase.h File Reference + + + + + + + +

    regbase.h File Reference

    +

    +Go to the source code of this file. + +
    +


    Generated on Fri Jun 8 08:51:58 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/regs_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/regs_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,122 @@ + + +CanFestival: include/hcs12/asm-m68hc12/regs.h Source File + + + + + + + +

    regs.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 /* Regs - Software registers used by GCC
    +00024    Copyright (C) 2000 Free Software Foundation, Inc.
    +00025    Written by Stephane Carrez (stcarrez@worldnet.fr)    
    +00026 
    +00027 This file is free software; you can redistribute it and/or modify it
    +00028 under the terms of the GNU General Public License as published by the
    +00029 Free Software Foundation; either version 2, or (at your option) any
    +00030 later version.
    +00031 
    +00032 In addition to the permissions in the GNU General Public License, the
    +00033 Free Software Foundation gives you unlimited permission to link the
    +00034 compiled version of this file with other programs, and to distribute
    +00035 those programs without any restriction coming from the use of this
    +00036 file.  (The General Public License restrictions do apply in other
    +00037 respects; for example, they cover modification of the file, and
    +00038 distribution when not linked into another program.)
    +00039 
    +00040 This file is distributed in the hope that it will be useful, but
    +00041 WITHOUT ANY WARRANTY; without even the implied warranty of
    +00042 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00043 General Public License for more details.
    +00044 
    +00045 You should have received a copy of the GNU General Public License
    +00046 along with this program; see the file COPYING.  If not, write to
    +00047 the Free Software Foundation, 59 Temple Place - Suite 330,
    +00048 Boston, MA 02111-1307, USA.  */
    +00049 
    +00050 #ifndef _M68HC11_REGS_H
    +00051 #define _M68HC11_REGS_H
    +00052 
    +00053 /* Include this file if you want to have access to the soft registers
    +00054    used by GCC.  The soft registers are memory location.  They have
    +00055    special names that cannot conflict with C or C++ variables.
    +00056    The extern definition below map those special names to
    +00057    some usable names in C and C++.  */
    +00058   
    +00059 extern unsigned short __tmp    __asm__("_.tmp");
    +00060 extern unsigned short __z      __asm__("_.z");
    +00061 extern unsigned short __xy     __asm__("_.xy");
    +00062 extern unsigned short __frame  __asm__("_.frame");
    +00063 extern unsigned short __d1     __asm__("_.d1");
    +00064 extern unsigned short __d2     __asm__("_.d2");
    +00065 extern unsigned short __d3     __asm__("_.d3");
    +00066 extern unsigned short __d4     __asm__("_.d4");
    +00067 extern unsigned short __d5     __asm__("_.d5");
    +00068 extern unsigned short __d6     __asm__("_.d6");
    +00069 extern unsigned short __d7     __asm__("_.d7");
    +00070 extern unsigned short __d8     __asm__("_.d8");
    +00071 extern unsigned short __d9     __asm__("_.d9");
    +00072 extern unsigned short __d10    __asm__("_.d10");
    +00073 extern unsigned short __d11    __asm__("_.d11");
    +00074 extern unsigned short __d12    __asm__("_.d12");
    +00075 extern unsigned short __d13    __asm__("_.d13");
    +00076 extern unsigned short __d14    __asm__("_.d14");
    +00077 extern unsigned short __d15    __asm__("_.d15");
    +00078 extern unsigned short __d16    __asm__("_.d16");
    +00079 extern unsigned short __d17    __asm__("_.d17");
    +00080 extern unsigned short __d18    __asm__("_.d18");
    +00081 extern unsigned short __d19    __asm__("_.d19");
    +00082 extern unsigned short __d20    __asm__("_.d20");
    +00083 extern unsigned short __d21    __asm__("_.d21");
    +00084 extern unsigned short __d22    __asm__("_.d22");
    +00085 extern unsigned short __d23    __asm__("_.d23");
    +00086 extern unsigned short __d24    __asm__("_.d24");
    +00087 extern unsigned short __d25    __asm__("_.d25");
    +00088 extern unsigned short __d26    __asm__("_.d26");
    +00089 extern unsigned short __d27    __asm__("_.d27");
    +00090 extern unsigned short __d28    __asm__("_.d28");
    +00091 extern unsigned short __d29    __asm__("_.d29");
    +00092 extern unsigned short __d30    __asm__("_.d30");
    +00093 extern unsigned short __d31    __asm__("_.d31");
    +00094 extern unsigned short __d32    __asm__("_.d32");
    +00095 
    +00096 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/regs_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/regs_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,827 @@ + + +CanFestival: include/hcs12/asm-m68hc12/regs.h File Reference + + + + + + + +

    regs.h File Reference

    +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    unsigned short __tmp __asm__ ("_.tmp")
    unsigned short __z __asm__ ("_.z")
    unsigned short __xy __asm__ ("_.xy")
    unsigned short __frame __asm__ ("_.frame")
    unsigned short __d1 __asm__ ("_.d1")
    unsigned short __d2 __asm__ ("_.d2")
    unsigned short __d3 __asm__ ("_.d3")
    unsigned short __d4 __asm__ ("_.d4")
    unsigned short __d5 __asm__ ("_.d5")
    unsigned short __d6 __asm__ ("_.d6")
    unsigned short __d7 __asm__ ("_.d7")
    unsigned short __d8 __asm__ ("_.d8")
    unsigned short __d9 __asm__ ("_.d9")
    unsigned short __d10 __asm__ ("_.d10")
    unsigned short __d11 __asm__ ("_.d11")
    unsigned short __d12 __asm__ ("_.d12")
    unsigned short __d13 __asm__ ("_.d13")
    unsigned short __d14 __asm__ ("_.d14")
    unsigned short __d15 __asm__ ("_.d15")
    unsigned short __d16 __asm__ ("_.d16")
    unsigned short __d17 __asm__ ("_.d17")
    unsigned short __d18 __asm__ ("_.d18")
    unsigned short __d19 __asm__ ("_.d19")
    unsigned short __d20 __asm__ ("_.d20")
    unsigned short __d21 __asm__ ("_.d21")
    unsigned short __d22 __asm__ ("_.d22")
    unsigned short __d23 __asm__ ("_.d23")
    unsigned short __d24 __asm__ ("_.d24")
    unsigned short __d25 __asm__ ("_.d25")
    unsigned short __d26 __asm__ ("_.d26")
    unsigned short __d27 __asm__ ("_.d27")
    unsigned short __d28 __asm__ ("_.d28")
    unsigned short __d29 __asm__ ("_.d29")
    unsigned short __d30 __asm__ ("_.d30")
    unsigned short __d31 __asm__ ("_.d31")
    unsigned short __d32 __asm__ ("_.d32")
    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    unsigned short __d32 __asm__ ("_.d32"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d31 __asm__ ("_.d31"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d30 __asm__ ("_.d30"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d29 __asm__ ("_.d29"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d28 __asm__ ("_.d28"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d27 __asm__ ("_.d27"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d26 __asm__ ("_.d26"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d25 __asm__ ("_.d25"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d24 __asm__ ("_.d24"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d23 __asm__ ("_.d23"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d22 __asm__ ("_.d22"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d21 __asm__ ("_.d21"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d20 __asm__ ("_.d20"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d19 __asm__ ("_.d19"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d18 __asm__ ("_.d18"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d17 __asm__ ("_.d17"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d16 __asm__ ("_.d16"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d15 __asm__ ("_.d15"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d14 __asm__ ("_.d14"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d13 __asm__ ("_.d13"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d12 __asm__ ("_.d12"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d11 __asm__ ("_.d11"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d10 __asm__ ("_.d10"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d9 __asm__ ("_.d9"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d8 __asm__ ("_.d8"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d7 __asm__ ("_.d7"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d6 __asm__ ("_.d6"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d5 __asm__ ("_.d5"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d4 __asm__ ("_.d4"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d3 __asm__ ("_.d3"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d2 __asm__ ("_.d2"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __d1 __asm__ ("_.d1"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __frame __asm__ ("_.frame"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __xy __asm__ ("_.xy"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __z __asm__ ("_.z"   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    unsigned short __tmp __asm__ ("_.tmp"   ) 
    +
    +
    + +

    + +

    +Referenced by _exit(), lock(), and unlock(). +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/resource_8h-source.html --- a/doc/doxygen/html/resource_8h-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/resource_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/win32/resource.h Source File +CanFestival: src/win32/resource.h Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/win32/resource.h

    Go to the documentation of this file.
    00001 //{{NO_DEPENDENCIES}}
    +
    +

    resource.h

    Go to the documentation of this file.
    00001 //{{NO_DEPENDENCIES}}
     00002 // Microsoft Visual C++ generated include file.
     00003 // Used by CanFestival-3.rc
     00004 
    @@ -29,7 +33,7 @@
     00012 #define _APS_NEXT_SYMED_VALUE           101
     00013 #endif
     00014 #endif
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/resource_8h.html --- a/doc/doxygen/html/resource_8h.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/resource_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/win32/resource.h File Reference +CanFestival: src/win32/resource.h File Reference @@ -8,19 +8,23 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/win32/resource.h File Reference

    + +

    resource.h File Reference

    Go to the source code of this file.
    -


    Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c-source.html --- a/doc/doxygen/html/sdo_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/sdo.c Source File +CanFestival: src/sdo.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/sdo.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    sdo.c

    Go to the documentation of this file.
    00001 /*
     00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
     00003 
     00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    @@ -39,9 +43,9 @@
     00032 /* #define DEBUG_WAR_CONSOLE_ON */
     00033 /* #define DEBUG_ERR_CONSOLE_ON */
     00034 
    -00035 #include "objacces.h"
    -00036 #include "sdo.h"
    -00037 #include "canfestival.h"
    +00035 #include "objacces.h"
    +00036 #include "sdo.h"
    +00037 #include "canfestival.h"
     00038 
     00039 /* Uncomment if your compiler does not support inline functions */
     00040 #define NO_INLINE 
    @@ -54,11 +58,11 @@
     00047 
     00048 /*Internals prototypes*/
     00049 
    -00065 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    -00066                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize);
    +00065 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +00066                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize);
     00067 
    -00080 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, 
    -00081         UNS8 dataType, SDOCallback_t Callback);
    +00080 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, 
    +00081         UNS8 dataType, SDOCallback_t Callback);
     00082         
     00083 
     00084 /***************************************************************************/
    @@ -82,27 +86,27 @@
     00118 
     00121 #define getSDOsubIndex(byte3) (byte3)
     00122 
    -00129 void SDOTimeoutAlarm(CO_Data* d, UNS32 id)
    +00129 void SDOTimeoutAlarm(CO_Data* d, UNS32 id)
     00130 {
    -00131     MSG_ERR(0x1A01, "SDO timeout. SDO response not received.", 0);
    -00132     MSG_WAR(0x2A02, "server node : ", d->transfers[id].nodeId);
    -00133     MSG_WAR(0x2A02, "      index : ", d->transfers[id].index);
    -00134     MSG_WAR(0x2A02, "   subIndex : ", d->transfers[id].subIndex); 
    +00131     MSG_ERR(0x1A01, "SDO timeout. SDO response not received.", 0);
    +00132     MSG_WAR(0x2A02, "server node : ", d->transfers[id].nodeId);
    +00133     MSG_WAR(0x2A02, "      index : ", d->transfers[id].index);
    +00134     MSG_WAR(0x2A02, "   subIndex : ", d->transfers[id].subIndex); 
     00135     /* Reset timer handler */
    -00136     d->transfers[id].timer = TIMER_NONE;
    +00136     d->transfers[id].timer = TIMER_NONE;
     00137     /*Set aborted state*/
    -00138     d->transfers[id].state = SDO_ABORTED_INTERNAL;
    +00138     d->transfers[id].state = SDO_ABORTED_INTERNAL;
     00139     /* Sending a SDO abort */
    -00140     sendSDOabort(d, d->transfers[id].whoami, 
    -00141                  d->transfers[id].index, d->transfers[id].subIndex, SDOABT_TIMED_OUT);
    -00142     d->transfers[id].abortCode = SDOABT_TIMED_OUT;
    +00140     sendSDOabort(d, d->transfers[id].whoami, 
    +00141                  d->transfers[id].index, d->transfers[id].subIndex, SDOABT_TIMED_OUT);
    +00142     d->transfers[id].abortCode = SDOABT_TIMED_OUT;
     00143     /* Call the user function to inform of the problem.*/
    -00144     if(d->transfers[id].Callback)
    +00144     if(d->transfers[id].Callback)
     00145         /*If ther is a callback, it is responsible to close SDO transfer (client)*/
    -00146         (*d->transfers[id].Callback)(d,d->transfers[id].nodeId);
    -00147     else if(d->transfers[id].whoami == SDO_SERVER)
    +00146         (*d->transfers[id].Callback)(d,d->transfers[id].nodeId);
    +00147     else if(d->transfers[id].whoami == SDO_SERVER)
     00148         /*Else, if server, reset the line*/
    -00149         resetSDOline(d, (UNS8)id);
    +00149         resetSDOline(d, (UNS8)id);
     00150 }
     00151 
     00152 #define StopSDO_TIMER(id) \
    @@ -117,174 +121,175 @@
     00161 MSG_WAR(0x3A07, "restartSDO_TIMER for line : ", line);\
     00162 if(d->transfers[id].timer != TIMER_NONE) { StopSDO_TIMER(id) StartSDO_TIMER(id) }
     00163 
    -00169 void resetSDO (CO_Data* d)
    +00169 void resetSDO (CO_Data* d)
     00170 {
    -00171   UNS8 j;
    +00171   UNS8 j;
     00172 
    -00174     for (j = 0 ; j < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; j++) 
    -00175       resetSDOline(d, j);
    +00173   /* transfer structure initialization */
    +00174     for (j = 0 ; j < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; j++) 
    +00175       resetSDOline(d, j);
     00176 }
     00177 
    -00186 UNS32 SDOlineToObjdict (CO_Data* d, UNS8 line)
    +00186 UNS32 SDOlineToObjdict (CO_Data* d, UNS8 line)
     00187 {
    -00188   UNS8      size;
    -00189   UNS32 errorCode;
    -00190   MSG_WAR(0x3A08, "Enter in SDOlineToObjdict ", line);
    -00191   size = (UNS8)d->transfers[line].count;
    -00192   errorCode = setODentry(d, d->transfers[line].index, d->transfers[line].subIndex, 
    -00193                          (void *) d->transfers[line].data, &size, 1);
    -00194   if (errorCode != OD_SUCCESSFUL)
    +00188   UNS8      size;
    +00189   UNS32 errorCode;
    +00190   MSG_WAR(0x3A08, "Enter in SDOlineToObjdict ", line);
    +00191   size = (UNS8)d->transfers[line].count;
    +00192   errorCode = setODentry(d, d->transfers[line].index, d->transfers[line].subIndex, 
    +00193                          (void *) d->transfers[line].data, &size, 1);
    +00194   if (errorCode != OD_SUCCESSFUL)
     00195     return errorCode;
    -00196   MSG_WAR(0x3A08, "exit of SDOlineToObjdict ", line);
    +00196   MSG_WAR(0x3A08, "exit of SDOlineToObjdict ", line);
     00197   return 0;
     00198 
     00199 }
     00200 
    -00209 UNS32 objdictToSDOline (CO_Data* d, UNS8 line)
    +00209 UNS32 objdictToSDOline (CO_Data* d, UNS8 line)
     00210 {
    -00211   UNS8  size = 0;
    -00212   UNS8  dataType;
    -00213   UNS32 errorCode;
    +00211   UNS8  size = 0;
    +00212   UNS8  dataType;
    +00213   UNS32 errorCode;
     00214 
    -00215   MSG_WAR(0x3A05, "objdict->line index : ", d->transfers[line].index);
    -00216   MSG_WAR(0x3A06, "  subIndex : ", d->transfers[line].subIndex);
    +00215   MSG_WAR(0x3A05, "objdict->line index : ", d->transfers[line].index);
    +00216   MSG_WAR(0x3A06, "  subIndex : ", d->transfers[line].subIndex);
     00217 
    -00218   errorCode = getODentry(d,     d->transfers[line].index,
    -00219                                 d->transfers[line].subIndex,
    -00220                                 (void *)d->transfers[line].data,
    +00218   errorCode = getODentry(d,     d->transfers[line].index,
    +00219                                 d->transfers[line].subIndex,
    +00220                                 (void *)d->transfers[line].data,
     00221                                 &size, &dataType, 0);
     00222   
    -00223   if (errorCode != OD_SUCCESSFUL)
    +00223   if (errorCode != OD_SUCCESSFUL)
     00224     return errorCode;
     00225 
    -00226   d->transfers[line].count = size;
    -00227   d->transfers[line].offset = 0;
    +00226   d->transfers[line].count = size;
    +00227   d->transfers[line].offset = 0;
     00228 #if 0
     00229    /*Me laisser a, please ! (FD)*/
     00230   {
    -00231     UNS8 i;
    +00231     UNS8 i;
     00232     for (i = 0 ; i < 10 ; i++) {
    -00233       MSG_WAR(i, "data= ", d->transfers[line].data[i]);
    +00233       MSG_WAR(i, "data= ", d->transfers[line].data[i]);
     00234     }     
     00235   }
     00236 #endif
     00237   return 0;
     00238 }
     00239 
    -00250 UNS8 lineToSDO (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8* data) {
    -00251   UNS8 i;
    -00252   UNS8 offset;
    +00250 UNS8 lineToSDO (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8* data) {
    +00251   UNS8 i;
    +00252   UNS8 offset;
     00253 
    -00254   if ((d->transfers[line].offset + nbBytes) > SDO_MAX_LENGTH_TRANSFERT) {
    -00255     MSG_ERR(0x1A10,"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT", nbBytes);
    +00254   if ((d->transfers[line].offset + nbBytes) > SDO_MAX_LENGTH_TRANSFERT) {
    +00255     MSG_ERR(0x1A10,"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT", nbBytes);
     00256     return 0xFF;
     00257   }
    -00258     if ((d->transfers[line].offset + nbBytes) > d->transfers[line].count) {
    -00259     MSG_ERR(0x1A11,"SDO Size of data too large. Exceed count", nbBytes);
    +00258     if ((d->transfers[line].offset + nbBytes) > d->transfers[line].count) {
    +00259     MSG_ERR(0x1A11,"SDO Size of data too large. Exceed count", nbBytes);
     00260     return 0xFF;
     00261   }
    -00262   offset = (UNS8)d->transfers[line].offset;
    +00262   offset = (UNS8)d->transfers[line].offset;
     00263   for (i = 0 ; i < nbBytes ; i++) 
    -00264     * (data + i) = d->transfers[line].data[offset + i];
    -00265   d->transfers[line].offset = d->transfers[line].offset + nbBytes;
    +00264     * (data + i) = d->transfers[line].data[offset + i];
    +00265   d->transfers[line].offset = d->transfers[line].offset + nbBytes;
     00266   return 0;
     00267 }
     00268 
    -00279 UNS8 SDOtoLine (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8* data)
    +00279 UNS8 SDOtoLine (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8* data)
     00280 {
    -00281   UNS8 i;
    -00282   UNS8 offset;
    +00281   UNS8 i;
    +00282   UNS8 offset;
     00283   
    -00284   if ((d->transfers[line].offset + nbBytes) > SDO_MAX_LENGTH_TRANSFERT) {
    -00285     MSG_ERR(0x1A15,"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT", nbBytes);
    +00284   if ((d->transfers[line].offset + nbBytes) > SDO_MAX_LENGTH_TRANSFERT) {
    +00285     MSG_ERR(0x1A15,"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT", nbBytes);
     00286     return 0xFF;
     00287   }
    -00288   offset = (UNS8)d->transfers[line].offset;
    +00288   offset = (UNS8)d->transfers[line].offset;
     00289   for (i = 0 ; i < nbBytes ; i++) 
    -00290     d->transfers[line].data[offset + i] = * (data + i);
    -00291   d->transfers[line].offset = d->transfers[line].offset + nbBytes;
    +00290     d->transfers[line].data[offset + i] = * (data + i);
    +00291   d->transfers[line].offset = d->transfers[line].offset + nbBytes;
     00292   return 0;
     00293 }
     00294 
    -00307 UNS8 failedSDO (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS16 index, 
    -00308                 UNS8 subIndex, UNS32 abortCode)
    +00307 UNS8 failedSDO (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS16 index, 
    +00308                 UNS8 subIndex, UNS32 abortCode)
     00309 {
    -00310   UNS8 err;
    -00311   UNS8 line;
    -00312   err = getSDOlineOnUse( d, nodeId, whoami, &line );
    +00310   UNS8 err;
    +00311   UNS8 line;
    +00312   err = getSDOlineOnUse( d, nodeId, whoami, &line );
     00313   if (!err) /* If a line on use have been found.*/
    -00314     MSG_WAR(0x3A20, "FailedSDO : line found : ", line);
    -00315   if ((! err) && (whoami == SDO_SERVER)) {
    -00316     resetSDOline( d, line );
    -00317     MSG_WAR(0x3A21, "FailedSDO : line released : ", line);
    +00314     MSG_WAR(0x3A20, "FailedSDO : line found : ", line);
    +00315   if ((! err) && (whoami == SDO_SERVER)) {
    +00316     resetSDOline( d, line );
    +00317     MSG_WAR(0x3A21, "FailedSDO : line released : ", line);
     00318   }
    -00319   if ((! err) && (whoami == SDO_CLIENT)) {
    +00319   if ((! err) && (whoami == SDO_CLIENT)) {
     00320     StopSDO_TIMER(line);
    -00321     d->transfers[line].state = SDO_ABORTED_INTERNAL;
    +00321     d->transfers[line].state = SDO_ABORTED_INTERNAL;
     00322   }
    -00323   MSG_WAR(0x3A22, "Sending SDO abort ", 0);
    -00324   err = sendSDOabort(d, whoami, index, subIndex, abortCode);
    +00323   MSG_WAR(0x3A22, "Sending SDO abort ", 0);
    +00324   err = sendSDOabort(d, whoami, index, subIndex, abortCode);
     00325   if (err) {
    -00326     MSG_WAR(0x3A23, "Unable to send the SDO abort", 0);
    +00326     MSG_WAR(0x3A23, "Unable to send the SDO abort", 0);
     00327     return 0xFF;
     00328   }
     00329   return 0;
     00330 }
     00331 
    -00338 void resetSDOline ( CO_Data* d, UNS8 line )
    +00338 void resetSDOline ( CO_Data* d, UNS8 line )
     00339 {
    -00340   UNS8 i; 
    -00341   MSG_WAR(0x3A25, "reset SDO line nb : ", line); 
    -00342   initSDOline(d, line, 0, 0, 0, SDO_RESET);
    -00343   for (i = 0 ; i < SDO_MAX_LENGTH_TRANSFERT ; i++)
    -00344     d->transfers[line].data[i] = 0;
    +00340   UNS8 i; 
    +00341   MSG_WAR(0x3A25, "reset SDO line nb : ", line); 
    +00342   initSDOline(d, line, 0, 0, 0, SDO_RESET);
    +00343   for (i = 0 ; i < SDO_MAX_LENGTH_TRANSFERT ; i++)
    +00344     d->transfers[line].data[i] = 0;
     00345 }
     00346 
    -00359 UNS8 initSDOline (CO_Data* d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state)
    +00359 UNS8 initSDOline (CO_Data* d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state)
     00360 {
    -00361   MSG_WAR(0x3A25, "init SDO line nb : ", line); 
    -00362   if (state == SDO_DOWNLOAD_IN_PROGRESS || state == SDO_UPLOAD_IN_PROGRESS){
    +00361   MSG_WAR(0x3A25, "init SDO line nb : ", line); 
    +00362   if (state == SDO_DOWNLOAD_IN_PROGRESS || state == SDO_UPLOAD_IN_PROGRESS){
     00363         StartSDO_TIMER(line)
     00364   }else{
     00365         StopSDO_TIMER(line)
     00366   }
    -00367   d->transfers[line].nodeId = nodeId; 
    -00368   d->transfers[line].index = index;
    -00369   d->transfers[line].subIndex = subIndex;
    -00370   d->transfers[line].state = state;
    -00371   d->transfers[line].toggle = 0;
    -00372   d->transfers[line].count = 0;
    -00373   d->transfers[line].offset = 0;
    -00374   d->transfers[line].dataType = 0;
    -00375   d->transfers[line].Callback = NULL;  
    +00367   d->transfers[line].nodeId = nodeId; 
    +00368   d->transfers[line].index = index;
    +00369   d->transfers[line].subIndex = subIndex;
    +00370   d->transfers[line].state = state;
    +00371   d->transfers[line].toggle = 0;
    +00372   d->transfers[line].count = 0;
    +00373   d->transfers[line].offset = 0;
    +00374   d->transfers[line].dataType = 0;
    +00375   d->transfers[line].Callback = NULL;  
     00376   return 0;
     00377 }
     00378 
    -00388 UNS8 getSDOfreeLine ( CO_Data* d, UNS8 whoami, UNS8 *line )
    +00388 UNS8 getSDOfreeLine ( CO_Data* d, UNS8 whoami, UNS8 *line )
     00389 {
     00390         
    -00391   UNS8 i;
    +00391   UNS8 i;
     00392     
    -00393   for (i = 0 ; i < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; i++){
    -00394     if ( d->transfers[i].state == SDO_RESET ) {
    +00393   for (i = 0 ; i < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; i++){
    +00394     if ( d->transfers[i].state == SDO_RESET ) {
     00395       *line = i;
    -00396       d->transfers[i].whoami = whoami;
    +00396       d->transfers[i].whoami = whoami;
     00397       return 0;
     00398     } /* end if */
     00399   } /* end for */
    -00400   MSG_ERR(0x1A25, "Too many SDO in progress. Aborted.", i);
    +00400   MSG_ERR(0x1A25, "Too many SDO in progress. Aborted.", i);
     00401   return 0xFF;
     00402 }
     00403 
    -00414 UNS8 getSDOlineOnUse (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS8 *line)
    +00414 UNS8 getSDOlineOnUse (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS8 *line)
     00415 {
     00416         
    -00417   UNS8 i;
    +00417   UNS8 i;
     00418     
    -00419   for (i = 0 ; i < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; i++){
    -00420     if ( (d->transfers[i].state != SDO_RESET) &&
    -00421          (d->transfers[i].nodeId == nodeId) && 
    -00422          (d->transfers[i].whoami == whoami) ) {
    +00419   for (i = 0 ; i < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; i++){
    +00420     if ( (d->transfers[i].state != SDO_RESET) &&
    +00421          (d->transfers[i].nodeId == nodeId) && 
    +00422          (d->transfers[i].whoami == whoami) ) {
     00423       *line = i;
     00424       return 0;
     00425     }
    @@ -292,80 +297,83 @@
     00427   return 0xFF;
     00428 }
     00429 
    -00439 UNS8 closeSDOtransfer (CO_Data* d, UNS8 nodeId, UNS8 whoami)
    +00439 UNS8 closeSDOtransfer (CO_Data* d, UNS8 nodeId, UNS8 whoami)
     00440 {
    -00441   UNS8 err;
    -00442   UNS8 line;
    -00443   err = getSDOlineOnUse(d, nodeId, whoami, &line);
    +00441   UNS8 err;
    +00442   UNS8 line;
    +00443   err = getSDOlineOnUse(d, nodeId, whoami, &line);
     00444   if (err) {
    -00445     MSG_WAR(0x2A30, "No SDO communication to close for node : ", nodeId); 
    +00445     MSG_WAR(0x2A30, "No SDO communication to close for node : ", nodeId); 
     00446     return 0xFF;
     00447   }
    -00448   resetSDOline(d, line);  
    +00448   resetSDOline(d, line);  
     00449   return 0;
     00450 }
     00451 
    -00461 UNS8 getSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 * nbBytes)
    +00461 UNS8 getSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 * nbBytes)
     00462 {
    -00463   if (d->transfers[line].count == 0) /* if received initiate SDO protocol with e=0 and s=0 */
    +00463   if (d->transfers[line].count == 0) /* if received initiate SDO protocol with e=0 and s=0 */
     00464     * nbBytes = 0;
     00465   else
    -00466     * nbBytes = (UNS8)d->transfers[line].count - (UNS8)d->transfers[line].offset;
    +00466     * nbBytes = (UNS8)d->transfers[line].count - (UNS8)d->transfers[line].offset;
     00467   return 0;
     00468 }
     00469 
    -00479 UNS8 setSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 nbBytes)
    +00479 UNS8 setSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 nbBytes)
     00480 {
    -00481   if (nbBytes > SDO_MAX_LENGTH_TRANSFERT) {
    -00482     MSG_ERR(0x1A35,"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT", nbBytes);
    +00481   if (nbBytes > SDO_MAX_LENGTH_TRANSFERT) {
    +00482     MSG_ERR(0x1A35,"SDO Size of data too large. Exceed SDO_MAX_LENGTH_TRANSFERT", nbBytes);
     00483     return 0xFF;
     00484   }
    -00485   d->transfers[line].count = nbBytes;
    +00485   d->transfers[line].count = nbBytes;
     00486   return 0;
     00487 }
     00488 
    -00498 UNS8 sendSDO (CO_Data* d, UNS8 whoami, s_SDO sdo)
    +00498 UNS8 sendSDO (CO_Data* d, UNS8 whoami, s_SDO sdo)
     00499 {       
    -00500   UNS16 offset;
    -00501   UNS16 lastIndex;
    -00502   UNS8 found = 0;
    -00503   Message m;
    -00504   UNS8 i;
    -00505   UNS32 * pwCobId = NULL;
    -00506   UNS32 * pwNodeId = NULL;
    +00500   UNS16 offset;
    +00501   UNS16 lastIndex;
    +00502   UNS8 found = 0;
    +00503   Message m;
    +00504   UNS8 i;
    +00505   UNS32 * pwCobId = NULL;
    +00506   UNS32 * pwNodeId = NULL;
     00507 
    -00508   MSG_WAR(0x3A38, "sendSDO",0);
    -00509   if( !((d->nodeState == Operational) ||  (d->nodeState == Pre_operational ))) {
    -00510     MSG_WAR(0x2A39, "unable to send the SDO (not in op or pre-op mode", d->nodeState);
    +00508   MSG_WAR(0x3A38, "sendSDO",0);
    +00509   if( !((d->nodeState == Operational) ||  (d->nodeState == Pre_operational ))) {
    +00510     MSG_WAR(0x2A39, "unable to send the SDO (not in op or pre-op mode", d->nodeState);
     00511     return 0xFF;
     00512   }                             
     00513 
    -00515   if ( whoami == SDO_SERVER )   {
    -00516     offset = d->firstIndex->SDO_SVR;
    +00514   /*get the server->client cobid*/
    +00515   if ( whoami == SDO_SERVER )   {/*case server. Easy because today only one server SDO is authorized in CanFestival*/
    +00516     offset = d->firstIndex->SDO_SVR;
     00517     if (offset == 0) {
    -00518       MSG_ERR(0x1A42, "SendSDO : No SDO server found", 0); 
    +00518       MSG_ERR(0x1A42, "SendSDO : No SDO server found", 0); 
     00519       return 0xFF;
     00520     }
    -00521     pwCobId = d->objdict[offset].pSubindex[2].pObject;
    -00522     MSG_WAR(0x3A41, "I am server. cobId : ", *pwCobId); 
    +00521     pwCobId = d->objdict[offset].pSubindex[2].pObject;
    +00522     MSG_WAR(0x3A41, "I am server. cobId : ", *pwCobId); 
     00523   }
    -00524   else {                        
    -00526     UNS16 sdoNum = 0;
    -00527     offset = d->firstIndex->SDO_CLT;
    -00528     lastIndex = d->lastIndex->SDO_CLT;
    +00524   else {                        /*case client*/
    +00525     /* Get the client->server cobid.*/
    +00526     UNS16 sdoNum = 0;
    +00527     offset = d->firstIndex->SDO_CLT;
    +00528     lastIndex = d->lastIndex->SDO_CLT;
     00529     if (offset == 0) {
    -00530       MSG_ERR(0x1A42, "SendSDO : No SDO client index found", 0); 
    +00530       MSG_ERR(0x1A42, "SendSDO : No SDO client index found", 0); 
     00531       return 0xFF;
     00532     }
    +00533     /* First, have to find at the index where is defined the communication with the server node */
     00534     while (offset <= lastIndex){
    -00535       MSG_WAR(0x3A43,"Reading index : ", 0x1280 + sdoNum);
    -00536       if (d->objdict[offset].bSubCount <= 3) {
    -00537         MSG_ERR(0x1A28, "Subindex 3  not found at index ", 0x1280 + sdoNum);
    +00535       MSG_WAR(0x3A43,"Reading index : ", 0x1280 + sdoNum);
    +00536       if (d->objdict[offset].bSubCount <= 3) {
    +00537         MSG_ERR(0x1A28, "Subindex 3  not found at index ", 0x1280 + sdoNum);
     00538         return 0xFF;
     00539       }
    -00540       pwNodeId = d->objdict[offset].pSubindex[3].pObject;
    -00541       MSG_WAR(0x3A44, "Found nodeId server = ", *pwNodeId);     
    -00542       if(*pwNodeId == sdo.nodeId) {
    +00540       pwNodeId = d->objdict[offset].pSubindex[3].pObject;
    +00541       MSG_WAR(0x3A44, "Found nodeId server = ", *pwNodeId);     
    +00542       if(*pwNodeId == sdo.nodeId) {
     00543         found = 1;
     00544         break;          
     00545       }      
    @@ -373,606 +381,719 @@
     00547       sdoNum ++;
     00548     }
     00549     if (! found){
    -00550       MSG_WAR (0x2A45, "No SDO client corresponds to the mesage to send to node ", sdo.nodeId);
    +00550       MSG_WAR (0x2A45, "No SDO client corresponds to the mesage to send to node ", sdo.nodeId);
     00551       return 0xFF;
     00552     }
    -00554     pwCobId = d->objdict[offset].pSubindex[1].pObject;
    +00553     /* Second, read the cobid client->server */
    +00554     pwCobId = d->objdict[offset].pSubindex[1].pObject;
     00555   }
    -00557   m.cob_id.w = *pwCobId;
    -00558   m.rtr = NOT_A_REQUEST; 
    -00560   m.len = 8;
    +00556   /* message copy for sending */
    +00557   m.cob_id.w = *pwCobId;
    +00558   m.rtr = NOT_A_REQUEST; 
    +00559   /* the length of SDO must be 8 */
    +00560   m.len = 8;
     00561   for (i = 0 ; i < 8 ; i++) {
    -00562     m.data[i] =  sdo.body.data[i];
    +00562     m.data[i] =  sdo.body.data[i];
     00563   }
    -00564   return canSend(d->canHandle,&m);
    +00564   return canSend(d->canHandle,&m);
     00565 }
     00566 
    -00578 UNS8 sendSDOabort (CO_Data* d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    +00578 UNS8 sendSDOabort (CO_Data* d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
     00579 {
    -00580   s_SDO sdo;
    -00581   UNS8 ret;
    -00582   MSG_WAR(0x2A50,"Sending SDO abort ", abortCode);
    -00583   sdo.nodeId = *d->bDeviceNodeId;
    -00584   sdo.body.data[0] = 0x80;
    +00580   s_SDO sdo;
    +00581   UNS8 ret;
    +00582   MSG_WAR(0x2A50,"Sending SDO abort ", abortCode);
    +00583   sdo.nodeId = *d->bDeviceNodeId;
    +00584   sdo.body.data[0] = 0x80;
     00585   /* Index */
    -00586   sdo.body.data[1] = index & 0xFF; /* LSB */
    -00587   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    +00586   sdo.body.data[1] = index & 0xFF; /* LSB */
    +00587   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
     00588   /* Subindex */
    -00589   sdo.body.data[3] = subIndex;
    +00589   sdo.body.data[3] = subIndex;
     00590   /* Data */
    -00591   sdo.body.data[4] = (UNS8)(abortCode & 0xFF);
    -00592   sdo.body.data[5] = (UNS8)((abortCode >> 8) & 0xFF);
    -00593   sdo.body.data[6] = (UNS8)((abortCode >> 16) & 0xFF);
    -00594   sdo.body.data[7] = (UNS8)((abortCode >> 24) & 0xFF);
    -00595   ret = sendSDO(d, whoami, sdo);
    +00591   sdo.body.data[4] = (UNS8)(abortCode & 0xFF);
    +00592   sdo.body.data[5] = (UNS8)((abortCode >> 8) & 0xFF);
    +00593   sdo.body.data[6] = (UNS8)((abortCode >> 16) & 0xFF);
    +00594   sdo.body.data[7] = (UNS8)((abortCode >> 24) & 0xFF);
    +00595   ret = sendSDO(d, whoami, sdo);
     00596 
     00597   return ret;
     00598 }
     00599 
    -00608 UNS8 proceedSDO (CO_Data* d, Message *m)
    +00608 UNS8 proceedSDO (CO_Data* d, Message *m)
     00609 {
    -00610   UNS8 err;
    -00611   UNS8 line;
    -00612   UNS8 nbBytes; 
    -00613   UNS8 nodeId = 0;  
    -00614   UNS32 nodeId_32; 
    -00615   UNS32 *pNodeId = NULL;
    -00616   UNS8 whoami = SDO_UNKNOWN;  
    -00617   UNS32 errorCode; 
    -00618   s_SDO sdo;    
    -00619   UNS16 index;
    -00620   UNS8 subIndex;
    -00621   UNS32 abortCode;
    -00622   UNS8 i,j;
    -00623   UNS32 *     pCobId = NULL;
    -00624   UNS16 offset;
    -00625   UNS16 lastIndex;
    +00610   UNS8 err;
    +00611   UNS8 line;
    +00612   UNS8 nbBytes; /* received or to be transmited. */
    +00613   UNS8 nodeId = 0;  /* The node from which the SDO is received */
    +00614   UNS32 nodeId_32; /* node id in 32 bits, for temporary use */
    +00615   UNS32 *pNodeId = NULL;
    +00616   UNS8 whoami = SDO_UNKNOWN;  /* SDO_SERVER or SDO_CLIENT.*/
    +00617   UNS32 errorCode; /* while reading or writing in the local object dictionary.*/
    +00618   s_SDO sdo;    /* SDO to transmit */
    +00619   UNS16 index;
    +00620   UNS8 subIndex;
    +00621   UNS32 abortCode;
    +00622   UNS8 i,j;
    +00623   UNS32 *     pCobId = NULL;
    +00624   UNS16 offset;
    +00625   UNS16 lastIndex;
     00626 
    -00627   MSG_WAR(0x3A60, "proceedSDO ", 0);
    -00628   whoami = SDO_UNKNOWN;
    -00631   offset = d->firstIndex->SDO_SVR;
    -00632   lastIndex = d->lastIndex->SDO_SVR;
    +00627   MSG_WAR(0x3A60, "proceedSDO ", 0);
    +00628   whoami = SDO_UNKNOWN;
    +00629   /* Looking for the cobId in the object dictionary. */
    +00630   /* Am-I a server ? */
    +00631   offset = d->firstIndex->SDO_SVR;
    +00632   lastIndex = d->lastIndex->SDO_SVR;
     00633   j = 0;
     00634   if(offset) while (offset <= lastIndex) {
    -00635      if (d->objdict[offset].bSubCount <= 1) {
    -00636           MSG_ERR(0x1A61, "Subindex 1  not found at index ", 0x1200 + j);
    +00635      if (d->objdict[offset].bSubCount <= 1) {
    +00636           MSG_ERR(0x1A61, "Subindex 1  not found at index ", 0x1200 + j);
     00637           return 0xFF;
     00638         }
    -00639       pCobId = d->objdict[offset].pSubindex[1].pObject;
    +00639       pCobId = d->objdict[offset].pSubindex[1].pObject;
     00640       if ( *pCobId == (*m).cob_id.w ) {
    -00641         whoami = SDO_SERVER;
    -00642         MSG_WAR(0x3A62, "proceedSDO. I am server. index : ", 0x1200 + j);
    +00641         whoami = SDO_SERVER;
    +00642         MSG_WAR(0x3A62, "proceedSDO. I am server. index : ", 0x1200 + j);
    +00643         /* In case of server, the node id of the client may be unknown. So we put the index minus offset */
    +00644         /* 0x1200 where the cobid received is defined. */
     00645         nodeId = j;
     00646         break;
     00647       }
     00648       j++;
     00649       offset++;
    -00650   } 
    -00651   if (whoami == SDO_UNKNOWN) {
    -00653     offset = d->firstIndex->SDO_CLT;
    -00654     lastIndex = d->lastIndex->SDO_CLT;
    +00650   } /* end while */
    +00651   if (whoami == SDO_UNKNOWN) {
    +00652     /* Am-I client ? */
    +00653     offset = d->firstIndex->SDO_CLT;
    +00654     lastIndex = d->lastIndex->SDO_CLT;
     00655     j = 0;
     00656     if(offset) while (offset <= lastIndex) {
    -00657        if (d->objdict[offset].bSubCount <= 3) {
    -00658          MSG_ERR(0x1A63, "Subindex 3  not found at index ", 0x1280 + j);
    +00657        if (d->objdict[offset].bSubCount <= 3) {
    +00658          MSG_ERR(0x1A63, "Subindex 3  not found at index ", 0x1280 + j);
     00659          return 0xFF;
     00660        }
    -00662        pCobId = d->objdict[offset].pSubindex[2].pObject;
    +00661        /* a) Looking for the cobid received. */
    +00662        pCobId = d->objdict[offset].pSubindex[2].pObject;
     00663        if (*pCobId == (*m).cob_id.w ) {
    -00665          pNodeId = d->objdict[offset].pSubindex[3].pObject;
    -00666          whoami = SDO_CLIENT;
    +00664          /* b) cobid found, so reading the node id of the server. */
    +00665          pNodeId = d->objdict[offset].pSubindex[3].pObject;
    +00666          whoami = SDO_CLIENT;
     00667          nodeId_32 = *pNodeId;
    -00668          nodeId = (UNS8)nodeId_32;
    -00669          MSG_WAR(0x3A64, "proceedSDO. I am server. index : ", 0x1280 + j);
    -00670          MSG_WAR(0x3A65, "                 Server nodeId : ", nodeId);
    +00668          nodeId = (UNS8)nodeId_32;
    +00669          MSG_WAR(0x3A64, "proceedSDO. I am server. index : ", 0x1280 + j);
    +00670          MSG_WAR(0x3A65, "                 Server nodeId : ", nodeId);
     00671          break;
     00672         }
     00673        j++;
     00674        offset++;
     00675     } /* end while */
     00676   }
    -00677   if (whoami == SDO_UNKNOWN) {
    -00678     return 0xFF;
    +00677   if (whoami == SDO_UNKNOWN) {
    +00678     return 0xFF;/* This SDO was not for us ! */
     00679   }
     00680 
    +00681   /* Test if the size of the SDO is ok */
     00682   if ( (*m).len != 8) {
    -00683     MSG_ERR(0x1A67, "Error size SDO. CobId  : ", (*m).cob_id.w);
    -00684     failedSDO(d, nodeId, whoami, 0, 0, SDOABT_GENERAL_ERROR);
    +00683     MSG_ERR(0x1A67, "Error size SDO. CobId  : ", (*m).cob_id.w);
    +00684     failedSDO(d, nodeId, whoami, 0, 0, SDOABT_GENERAL_ERROR);
     00685     return 0xFF;
     00686   }
     00687   
    -00688   if (whoami == SDO_CLIENT) {
    -00689     MSG_WAR(0x3A68, "I am CLIENT. Received SDO from nodeId : ", nodeId);
    +00688   if (whoami == SDO_CLIENT) {
    +00689     MSG_WAR(0x3A68, "I am CLIENT. Received SDO from nodeId : ", nodeId);
     00690   }
     00691   else {
    -00692     MSG_WAR(0x3A69, "I am SERVER. Received SDO cobId : ", (*m).cob_id.w);
    +00692     MSG_WAR(0x3A69, "I am SERVER. Received SDO cobId : ", (*m).cob_id.w);
     00693   }
     00694     
    -00698   switch (getSDOcs(m->data[0])) {
    +00695   /* Testing the command specifier */
    +00696   /* Allowed : cs = 0, 1, 2, 3, 4. (=  all except those for block tranfert). */
    +00697   /* cs = other : Not allowed -> abort. */
    +00698   switch (getSDOcs(m->data[0])) {
     00699 
     00700   case 0:
    -00702     if (whoami == SDO_SERVER) {
    -00705       err = getSDOlineOnUse( d, nodeId, whoami, &line ); 
    +00701     /* I am SERVER */
    +00702     if (whoami == SDO_SERVER) {
    +00703       /* Receiving a download segment data. */
    +00704       /* A SDO transfert should have been yet initiated. */
    +00705       err = getSDOlineOnUse( d, nodeId, whoami, &line ); 
     00706       if (!err)
    -00707         err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS;
    +00707         err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS;
     00708       if (err) {
    -00709         MSG_ERR(0x1A70, "SDO error : Received download segment for unstarted trans. index 0x1200 + ", 
    +00709         MSG_ERR(0x1A70, "SDO error : Received download segment for unstarted trans. index 0x1200 + ", 
     00710                 nodeId); 
    -00711         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
    +00711         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
     00712         return 0xFF;
     00713       }
    +00714       /* Reset the wathdog */
     00715       RestartSDO_TIMER(line)
    -00716       MSG_WAR(0x3A71, "Received SDO download segment defined at index 0x1200 + ", nodeId); 
    -00717       index = d->transfers[line].index;
    -00718       subIndex = d->transfers[line].subIndex;
    -00720       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    -00721         MSG_ERR(0x1A72, "SDO error : Toggle error : ", getSDOt(m->data[0])); 
    -00722         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
    +00716       MSG_WAR(0x3A71, "Received SDO download segment defined at index 0x1200 + ", nodeId); 
    +00717       index = d->transfers[line].index;
    +00718       subIndex = d->transfers[line].subIndex;
    +00719       /* Toggle test. */
    +00720       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    +00721         MSG_ERR(0x1A72, "SDO error : Toggle error : ", getSDOt(m->data[0])); 
    +00722         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
     00723         return 0xFF;
     00724       }
    -00726       nbBytes = 7 - getSDOn3(m->data[0]);
    -00728       err = SDOtoLine(d, line, nbBytes, (*m).data + 1);
    +00725       /* Nb of data to be downloaded */
    +00726       nbBytes = 7 - getSDOn3(m->data[0]);
    +00727       /* Store the data in the transfert structure. */
    +00728       err = SDOtoLine(d, line, nbBytes, (*m).data + 1);
     00729       if (err) {
    -00730         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +00730         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     00731         return 0xFF;
     00732       }
    -00734       sdo.nodeId = *d->bDeviceNodeId; 
    -00735       sdo.body.data[0] = (1 << 5) | (d->transfers[line].toggle << 4);
    +00733       /* Sending the SDO response, CS = 1 */
    +00734       sdo.nodeId = *d->bDeviceNodeId; /* The node id of the server, (here it is the sender). */
    +00735       sdo.body.data[0] = (1 << 5) | (d->transfers[line].toggle << 4);
     00736       for (i = 1 ; i < 8 ; i++)
    -00737         sdo.body.data[i] = 0;
    -00738       MSG_WAR(0x3A73, "SDO. Send response to download request defined at index 0x1200 + ", nodeId); 
    -00739       sendSDO(d, whoami, sdo);
    +00737         sdo.body.data[i] = 0;
    +00738       MSG_WAR(0x3A73, "SDO. Send response to download request defined at index 0x1200 + ", nodeId); 
    +00739       sendSDO(d, whoami, sdo);
    +00740       /* Inverting the toggle for the next segment. */
     00741       d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    -00743       if (getSDOc(m->data[0])) {
    +00742       /* If it was the last segment, */
    +00743       if (getSDOc(m->data[0])) {
    +00744         /* Transfering line data to object dictionary. */
    +00745         /* The code does not use the "d" of initiate frame. So it is safe if e=s=0 */
     00746         errorCode = SDOlineToObjdict(d, line);
     00747         if (errorCode) {
    -00748           MSG_ERR(0x1A54, "SDO error : Unable to copy the data in the object dictionary", 0); 
    +00748           MSG_ERR(0x1A54, "SDO error : Unable to copy the data in the object dictionary", 0); 
     00749           failedSDO(d, nodeId, whoami, index, subIndex, errorCode);
     00750           return 0xFF;    
     00751         }
    +00752         /* Release of the line */
     00753         resetSDOline(d, line);
    -00754         MSG_WAR(0x3A74, "SDO. End of download defined at index 0x1200 + ", nodeId); 
    +00754         MSG_WAR(0x3A74, "SDO. End of download defined at index 0x1200 + ", nodeId); 
     00755       }
     00756     } /* end if SERVER */
     00757     else { /* if CLIENT */
    -00760       err = getSDOlineOnUse( d, nodeId, whoami, &line);
    +00758       /* I am CLIENT */
    +00759       /* It is a request for a previous upload segment. We should find a line opened for this.*/
    +00760       err = getSDOlineOnUse( d, nodeId, whoami, &line);
     00761       if (!err)
    -00762         err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS;
    +00762         err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS;
     00763       if (err) {
    -00764         MSG_ERR(0x1A75, "SDO error : Received segment response for unknown trans. from nodeId", nodeId); 
    -00765         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
    +00764         MSG_ERR(0x1A75, "SDO error : Received segment response for unknown trans. from nodeId", nodeId); 
    +00765         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
     00766         return 0xFF;
     00767       }
    +00768       /* Reset the wathdog */
     00769       RestartSDO_TIMER(line)
    -00770       index = d->transfers[line].index;
    -00771       subIndex = d->transfers[line].subIndex;
    -00773       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    -00774         MSG_ERR(0x1A76, "SDO error : Received segment response Toggle error. from nodeId", nodeId); 
    -00775         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
    +00770       index = d->transfers[line].index;
    +00771       subIndex = d->transfers[line].subIndex;
    +00772       /* test of the toggle; */
    +00773       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    +00774         MSG_ERR(0x1A76, "SDO error : Received segment response Toggle error. from nodeId", nodeId); 
    +00775         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
     00776         return 0xFF;
     00777       }
    -00779       nbBytes = 7 - getSDOn3(m->data[0]);
    -00781       err = SDOtoLine(d, line, nbBytes, (*m).data + 1);
    +00778       /* nb of data to be uploaded */
    +00779       nbBytes = 7 - getSDOn3(m->data[0]);
    +00780       /* Storing the data in the line structure. */
    +00781       err = SDOtoLine(d, line, nbBytes, (*m).data + 1);
     00782       if (err) {
    -00783         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +00783         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     00784         return 0xFF;
     00785       }
    -00787       d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    -00789       if ( getSDOc(m->data[0])) {
    +00786       /* Inverting the toggle for the next segment. */
    +00787       d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    +00788       /* If it was the last segment,*/
    +00789       if ( getSDOc(m->data[0])) {
    +00790         /* Put in state finished */
    +00791         /* The code is safe for the case e=s=0 in initiate frame. */
     00792         StopSDO_TIMER(line)
    -00793         d->transfers[line].state = SDO_FINISHED;
    -00794         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
    +00793         d->transfers[line].state = SDO_FINISHED;
    +00794         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
     00795         
    -00796         MSG_WAR(0x3A77, "SDO. End of upload from node : ", nodeId);
    +00796         MSG_WAR(0x3A77, "SDO. End of upload from node : ", nodeId);
     00797       }
    -00798       else { 
    -00800         sdo.nodeId = nodeId;
    -00801         sdo.body.data[0] = (3 << 5) | (d->transfers[line].toggle << 4);
    +00798       else { /* more segments to receive */
    +00799              /* Sending the request for the next segment. */
    +00800         sdo.nodeId = nodeId;
    +00801         sdo.body.data[0] = (3 << 5) | (d->transfers[line].toggle << 4);
     00802         for (i = 1 ; i < 8 ; i++)
    -00803           sdo.body.data[i] = 0;
    -00804         sendSDO(d, whoami, sdo);
    -00805         MSG_WAR(0x3A78, "SDO send upload segment request to nodeId", nodeId);
    +00803           sdo.body.data[i] = 0;
    +00804         sendSDO(d, whoami, sdo);
    +00805         MSG_WAR(0x3A78, "SDO send upload segment request to nodeId", nodeId);
     00806       }            
     00807     } /* End if CLIENT */
     00808     break;
     00809 
     00810   case 1:
    -00813     if (whoami == SDO_SERVER) {
    -00814       index = getSDOindex(m->data[1],m->data[2]);
    -00815       subIndex = getSDOsubIndex(m->data[3]);
    -00816       MSG_WAR(0x3A79, "Received SDO Initiate Download (to store data) defined at index 0x1200 + ", 
    +00811     /* I am SERVER */
    +00812     /* Receive of an initiate download */
    +00813     if (whoami == SDO_SERVER) {
    +00814       index = getSDOindex(m->data[1],m->data[2]);
    +00815       subIndex = getSDOsubIndex(m->data[3]);
    +00816       MSG_WAR(0x3A79, "Received SDO Initiate Download (to store data) defined at index 0x1200 + ", 
     00817               nodeId); 
    -00818       MSG_WAR(0x3A80, "Writing at index : ", index);
    -00819       MSG_WAR(0x3A80, "Writing at subIndex : ", subIndex);
    +00818       MSG_WAR(0x3A80, "Writing at index : ", index);
    +00819       MSG_WAR(0x3A80, "Writing at subIndex : ", subIndex);
     00820       
    -00822       err = getSDOlineOnUse( d, nodeId, whoami, &line );
    +00821       /* Search if a SDO transfert have been yet initiated */
    +00822       err = getSDOlineOnUse( d, nodeId, whoami, &line );
     00823       if (! err) {
    -00824         MSG_ERR(0x1A81, "SDO error : Transmission yet started.", 0); 
    -00825         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
    +00824         MSG_ERR(0x1A81, "SDO error : Transmission yet started.", 0); 
    +00825         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
     00826         return 0xFF;
     00827       }
    -00830       err = getSDOfreeLine( d, whoami, &line );
    +00828       /* No line on use. Great ! */
    +00829       /* Try to open a new line. */
    +00830       err = getSDOfreeLine( d, whoami, &line );
     00831       if (err) {
    -00832         MSG_ERR(0x1A82, "SDO error : No line free, too many SDO in progress. Aborted.", 0);
    -00833         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
    +00832         MSG_ERR(0x1A82, "SDO error : No line free, too many SDO in progress. Aborted.", 0);
    +00833         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
     00834         return 0xFF;
     00835       }
    -00836       initSDOline(d, line, nodeId, index, subIndex, SDO_DOWNLOAD_IN_PROGRESS);      
    +00836       initSDOline(d, line, nodeId, index, subIndex, SDO_DOWNLOAD_IN_PROGRESS);      
     00837 
    -00838       if (getSDOe(m->data[0])) { 
    -00840         nbBytes = 4 - getSDOn2(m->data[0]);
    -00842         d->transfers[line].count = nbBytes;
    -00843         err = SDOtoLine(d, line, nbBytes, (*m).data + 4);
    +00838       if (getSDOe(m->data[0])) { /* If SDO expedited */
    +00839         /* nb of data to be downloaded */
    +00840         nbBytes = 4 - getSDOn2(m->data[0]);
    +00841         /* Storing the data in the line structure. */
    +00842         d->transfers[line].count = nbBytes;
    +00843         err = SDOtoLine(d, line, nbBytes, (*m).data + 4);
     00844         
     00845         if (err) {
    -00846           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +00846           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     00847           return 0xFF;
     00848         }         
     00849 
    -00852         MSG_WAR(0x3A83, "SDO Initiate Download is an expedited transfert. Finished.: ", nodeId);
    -00854         errorCode = SDOlineToObjdict(d, line);
    +00850         /* SDO expedited -> transfert finished. Data can be stored in the dictionary. */
    +00851         /*The line will be reseted when it is downloading in the dictionary. */
    +00852         MSG_WAR(0x3A83, "SDO Initiate Download is an expedited transfert. Finished.: ", nodeId);
    +00853         /* Transfering line data to object dictionary. */
    +00854         errorCode = SDOlineToObjdict(d, line);
     00855         if (errorCode) {
    -00856           MSG_ERR(0x1A84, "SDO error : Unable to copy the data in the object dictionary", 0); 
    -00857           failedSDO(d, nodeId, whoami, index, subIndex, errorCode);
    +00856           MSG_ERR(0x1A84, "SDO error : Unable to copy the data in the object dictionary", 0); 
    +00857           failedSDO(d, nodeId, whoami, index, subIndex, errorCode);
     00858           return 0xFF;
     00859         }
    -00861         resetSDOline(d, line);
    +00860         /* Release of the line. */
    +00861         resetSDOline(d, line);
     00862       }
    -00863       else {
    -00864         if (getSDOs(m->data[0])) {
    -00866           nbBytes = m->data[4]; 
    -00867           err = setSDOlineRestBytes(d, nodeId, nbBytes);
    +00863       else {/* So, if it is not an expedited transfert */
    +00864         if (getSDOs(m->data[0])) {
    +00865           /* TODO : if e and s = 0, not reading m->data[4] but put nbBytes = 0 */
    +00866           nbBytes = m->data[4]; /* Transfert limited to 255 bytes. */
    +00867           err = setSDOlineRestBytes(d, nodeId, nbBytes);
     00868           if (err) {
    -00869             failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +00869             failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     00870             return 0xFF;
     00871           }     
     00872         }
     00873       }
    -00875       sdo.nodeId = *d->bDeviceNodeId; 
    -00876       sdo.body.data[0] = 3 << 5;
    -00877       sdo.body.data[1] = index & 0xFF;        /* LSB */
    -00878       sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    -00879       sdo.body.data[3] = subIndex;
    +00874       /*Sending a SDO, cs=3*/
    +00875       sdo.nodeId = *d->bDeviceNodeId; /* The node id of the server, (here it is the sender).*/
    +00876       sdo.body.data[0] = 3 << 5;
    +00877       sdo.body.data[1] = index & 0xFF;        /* LSB */
    +00878       sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    +00879       sdo.body.data[3] = subIndex;
     00880       for (i = 4 ; i < 8 ; i++)
    -00881                 sdo.body.data[i] = 0;
    -00882       sendSDO(d, whoami, sdo);
    +00881                 sdo.body.data[i] = 0;
    +00882       sendSDO(d, whoami, sdo);
     00883     } /* end if I am SERVER */
     00884     else {
    -00887       err = getSDOlineOnUse( d, nodeId, whoami, &line);
    +00885       /* I am CLIENT */
    +00886       /* It is a response for a previous download segment. We should find a line opened for this. */
    +00887       err = getSDOlineOnUse( d, nodeId, whoami, &line);
     00888       if (!err)
    -00889         err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS;
    +00889         err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS;
     00890       if (err) {
    -00891         MSG_ERR(0x1A85, "SDO error : Received segment response for unknown trans. from nodeId", nodeId); 
    -00892         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
    +00891         MSG_ERR(0x1A85, "SDO error : Received segment response for unknown trans. from nodeId", nodeId); 
    +00892         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
     00893         return 0xFF;
     00894       }
    +00895       /* Reset the wathdog */
     00896       RestartSDO_TIMER(line)
    -00897       index = d->transfers[line].index;
    -00898       subIndex = d->transfers[line].subIndex;
    -00900       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    -00901         MSG_ERR(0x1A86, "SDO error : Received segment response Toggle error. from nodeId", nodeId); 
    -00902         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
    +00897       index = d->transfers[line].index;
    +00898       subIndex = d->transfers[line].subIndex;
    +00899       /* test of the toggle; */
    +00900       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    +00901         MSG_ERR(0x1A86, "SDO error : Received segment response Toggle error. from nodeId", nodeId); 
    +00902         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
     00903         return 0xFF;
     00904       }
     00905 
    -00907       getSDOlineRestBytes(d, line, &nbBytes);
    +00906       /* End transmission or downloading next segment. We need to know if it will be the last one. */
    +00907       getSDOlineRestBytes(d, line, &nbBytes);
     00908       if (nbBytes == 0) {
    -00909         MSG_WAR(0x3A87, "SDO End download. segment response received. OK. from nodeId", nodeId); 
    +00909         MSG_WAR(0x3A87, "SDO End download. segment response received. OK. from nodeId", nodeId); 
     00910         StopSDO_TIMER(line)
    -00911         d->transfers[line].state = SDO_FINISHED;
    -00912         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
    +00911         d->transfers[line].state = SDO_FINISHED;
    +00912         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
     00913         return 0x00;
     00914       }
    +00915       /* At least one transfer to send. */
     00916       if (nbBytes > 7) {
    -00919         d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    -00920         sdo.nodeId = nodeId; /* The server node Id; */
    -00921         sdo.body.data[0] = (d->transfers[line].toggle << 4);
    -00922         err = lineToSDO(d, line, 7, sdo.body.data + 1);  
    +00917         /* several segments to download.*/
    +00918         /* code to send the next segment. (cs = 0; c = 0) */
    +00919         d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    +00920         sdo.nodeId = nodeId; /* The server node Id; */
    +00921         sdo.body.data[0] = (d->transfers[line].toggle << 4);
    +00922         err = lineToSDO(d, line, 7, sdo.body.data + 1);  
     00923         if (err) {
    -00924           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +00924           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     00925           return 0xFF;
     00926         }
     00927       } 
     00928       else {
    -00931         d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    -00932         sdo.nodeId = nodeId; /* The server node Id; */
    -00933         sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1;
    -00934         err = lineToSDO(d, line, nbBytes, sdo.body.data + 1);    
    +00929         /* Last segment. */
    +00930         /* code to send the last segment. (cs = 0; c = 1)*/
    +00931         d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    +00932         sdo.nodeId = nodeId; /* The server node Id; */
    +00933         sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1;
    +00934         err = lineToSDO(d, line, nbBytes, sdo.body.data + 1);    
     00935         if (err) {
    -00936           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +00936           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     00937           return 0xFF;
     00938         }
     00939         for (i = nbBytes + 1 ; i < 8 ; i++)
    -00940           sdo.body.data[i] = 0;
    +00940           sdo.body.data[i] = 0;
     00941       }
    -00942       MSG_WAR(0x3A88, "SDO sending download segment to nodeId", nodeId); 
    -00943       sendSDO(d, whoami, sdo); 
    -00944     } 
    +00942       MSG_WAR(0x3A88, "SDO sending download segment to nodeId", nodeId); 
    +00943       sendSDO(d, whoami, sdo); 
    +00944     } /* end if I am a CLIENT */                          
     00945     break;
     00946 
     00947   case 2:
    -00950     if (whoami == SDO_SERVER) {
    -00951       index = getSDOindex(m->data[1],m->data[2]);
    -00952       subIndex = getSDOsubIndex(m->data[3]);
    -00953       MSG_WAR(0x3A89, "Received SDO Initiate upload (to send data) defined at index 0x1200 + ", 
    +00948     /* I am SERVER */
    +00949     /* Receive of an initiate upload.*/
    +00950     if (whoami == SDO_SERVER) {
    +00951       index = getSDOindex(m->data[1],m->data[2]);
    +00952       subIndex = getSDOsubIndex(m->data[3]);
    +00953       MSG_WAR(0x3A89, "Received SDO Initiate upload (to send data) defined at index 0x1200 + ", 
     00954               nodeId); 
    -00955       MSG_WAR(0x3A90, "Reading at index : ", index);
    -00956       MSG_WAR(0x3A91, "Reading at subIndex : ", subIndex);
    -00958       err = getSDOlineOnUse( d, nodeId, whoami, &line );
    +00955       MSG_WAR(0x3A90, "Reading at index : ", index);
    +00956       MSG_WAR(0x3A91, "Reading at subIndex : ", subIndex);
    +00957       /* Search if a SDO transfert have been yet initiated*/
    +00958       err = getSDOlineOnUse( d, nodeId, whoami, &line );
     00959       if (! err) {
    -00960             MSG_ERR(0x1A92, "SDO error : Transmission yet started at line : ", line); 
    -00961         MSG_WAR(0x3A93, "nodeId = ", nodeId); 
    -00962             failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
    +00960             MSG_ERR(0x1A92, "SDO error : Transmission yet started at line : ", line); 
    +00961         MSG_WAR(0x3A93, "nodeId = ", nodeId); 
    +00962             failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
     00963             return 0xFF;
     00964       }
    -00967       err = getSDOfreeLine( d, whoami, &line );
    +00965       /* No line on use. Great !*/
    +00966       /* Try to open a new line.*/
    +00967       err = getSDOfreeLine( d, whoami, &line );
     00968       if (err) {
    -00969         MSG_ERR(0x1A71, "SDO error : No line free, too many SDO in progress. Aborted.", 0);
    -00970         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
    +00969         MSG_ERR(0x1A71, "SDO error : No line free, too many SDO in progress. Aborted.", 0);
    +00970         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR);
     00971         return 0xFF;
     00972       }
    -00973       initSDOline(d, line, nodeId, index, subIndex, SDO_UPLOAD_IN_PROGRESS);
    -00975       errorCode = objdictToSDOline(d, line);
    +00973       initSDOline(d, line, nodeId, index, subIndex, SDO_UPLOAD_IN_PROGRESS);
    +00974       /* Transfer data from dictionary to the line structure. */
    +00975       errorCode = objdictToSDOline(d, line);
     00976      
     00977       if (errorCode) {
    -00978         MSG_ERR(0x1A94, "SDO error : Unable to copy the data from object dictionary. Err code : ", 
    +00978         MSG_ERR(0x1A94, "SDO error : Unable to copy the data from object dictionary. Err code : ", 
     00979                 errorCode); 
    -00980         failedSDO(d, nodeId, whoami, index, subIndex, errorCode);
    +00980         failedSDO(d, nodeId, whoami, index, subIndex, errorCode);
     00981         return 0xFF;
     00982         }
    -00984       getSDOlineRestBytes(d, line, &nbBytes);   
    -00985       sdo.nodeId = nodeId; 
    +00983       /* Preparing the response.*/
    +00984       getSDOlineRestBytes(d, line, &nbBytes);   /* Nb bytes to transfer ? */
    +00985       sdo.nodeId = nodeId; /* The server node Id; */
     00986       if (nbBytes > 4) {
    -00989         sdo.body.data[0] = (2 << 5) | 1;
    -00990         sdo.body.data[1] = index & 0xFF;        /* LSB */
    -00991         sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    -00992         sdo.body.data[3] = subIndex;
    -00993         sdo.body.data[4] = nbBytes; /* Limitation of canfestival2 : Max tranfert is 256 bytes.*/
    +00987         /* normal transfert. (segmented). */
    +00988         /* code to send the initiate upload response. (cs = 2) */
    +00989         sdo.body.data[0] = (2 << 5) | 1;
    +00990         sdo.body.data[1] = index & 0xFF;        /* LSB */
    +00991         sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    +00992         sdo.body.data[3] = subIndex;
    +00993         sdo.body.data[4] = nbBytes; /* Limitation of canfestival2 : Max tranfert is 256 bytes.*/
    +00994         /* It takes too much memory to upgrate to 2^32 because the size of data is also coded */
    +00995         /* in the object dictionary, at every index and subindex. */
     00996         for (i = 5 ; i < 8 ; i++)
    -00997           sdo.body.data[i] = 0;
    -00998         MSG_WAR(0x3A95, "SDO. Sending normal upload initiate response defined at index 0x1200 + ", nodeId); 
    -00999         sendSDO(d, whoami, sdo); 
    +00997           sdo.body.data[i] = 0;
    +00998         MSG_WAR(0x3A95, "SDO. Sending normal upload initiate response defined at index 0x1200 + ", nodeId); 
    +00999         sendSDO(d, whoami, sdo); 
     01000       }
     01001       else {
    -01003         sdo.body.data[0] = (2 << 5) | ((4 - nbBytes) << 2) | 3;  
    -01004         sdo.body.data[1] = index & 0xFF;        /* LSB */
    -01005         sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    -01006         sdo.body.data[3] = subIndex;
    -01007         err = lineToSDO(d, line, nbBytes, sdo.body.data + 4);    
    +01002         /* Expedited upload. (cs = 2 ; e = 1) */
    +01003         sdo.body.data[0] = (2 << 5) | ((4 - nbBytes) << 2) | 3;  
    +01004         sdo.body.data[1] = index & 0xFF;        /* LSB */
    +01005         sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    +01006         sdo.body.data[3] = subIndex;
    +01007         err = lineToSDO(d, line, nbBytes, sdo.body.data + 4);    
     01008         if (err) {
    -01009           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01009           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01010           return 0xFF;
     01011         }
     01012         for (i = 4 + nbBytes ; i < 8 ; i++)
    -01013           sdo.body.data[i] = 0;
    -01014         MSG_WAR(0x3A96, "SDO. Sending expedited upload initiate response defined at index 0x1200 + ", 
    +01013           sdo.body.data[i] = 0;
    +01014         MSG_WAR(0x3A96, "SDO. Sending expedited upload initiate response defined at index 0x1200 + ", 
     01015                 nodeId); 
    -01016         sendSDO(d, whoami, sdo); 
    +01016         sendSDO(d, whoami, sdo); 
    +01017         /* Release the line.*/
     01018         resetSDOline(d, line);
     01019       }
    -01020     } 
    +01020     } /* end if I am SERVER*/
     01021     else {
    -01025       err = getSDOlineOnUse( d, nodeId, whoami, &line);
    +01022       /* I am CLIENT */
    +01023       /* It is the response for the previous initiate upload request.*/
    +01024       /* We should find a line opened for this. */
    +01025       err = getSDOlineOnUse( d, nodeId, whoami, &line);
     01026       if (!err)
    -01027         err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS;
    +01027         err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS;
     01028       if (err) {
    -01029         MSG_ERR(0x1A97, "SDO error : Received response for unknown upload request from nodeId", nodeId); 
    -01030         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
    +01029         MSG_ERR(0x1A97, "SDO error : Received response for unknown upload request from nodeId", nodeId); 
    +01030         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
     01031         return 0xFF;
     01032       }
    +01033       /* Reset the wathdog */
     01034       RestartSDO_TIMER(line)
    -01035       index = d->transfers[line].index;
    -01036       subIndex = d->transfers[line].subIndex;
    +01035       index = d->transfers[line].index;
    +01036       subIndex = d->transfers[line].subIndex;
     01037       
    -01038       if (getSDOe(m->data[0])) { /* If SDO expedited */
    -01040           nbBytes = 4 - getSDOn2(m->data[0]);
    -01042         err = SDOtoLine(d, line, nbBytes, (*m).data + 4);
    +01038       if (getSDOe(m->data[0])) { /* If SDO expedited */
    +01039         /* nb of data to be uploaded */
    +01040           nbBytes = 4 - getSDOn2(m->data[0]);
    +01041         /* Storing the data in the line structure. */
    +01042         err = SDOtoLine(d, line, nbBytes, (*m).data + 4);
     01043         if (err) {
    -01044           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01044           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01045           return 0xFF;
     01046         }
    -01048         MSG_WAR(0x3A98, "SDO expedited upload finished. Response received from node : ", nodeId);
    +01047         /* SDO expedited -> transfert finished. data are available via  getReadResultNetworkDict(). */
    +01048         MSG_WAR(0x3A98, "SDO expedited upload finished. Response received from node : ", nodeId);
     01049         StopSDO_TIMER(line)
    -01050         d->transfers[line].count = nbBytes;
    -01051         d->transfers[line].state = SDO_FINISHED;
    -01052         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
    +01050         d->transfers[line].count = nbBytes;
    +01051         d->transfers[line].state = SDO_FINISHED;
    +01052         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
     01053         return 0;
     01054       }
    -01055       else { 
    -01057         if (getSDOs(m->data[0])) {
    -01058           nbBytes = m->data[4]; 
    -01059           err = setSDOlineRestBytes(d, line, nbBytes);
    +01055       else { /* So, if it is not an expedited transfert */
    +01056         /* Storing the nb of data to receive. */
    +01057         if (getSDOs(m->data[0])) {
    +01058           nbBytes = m->data[4]; /* Remember the limitation to 255 bytes to transfert */
    +01059           err = setSDOlineRestBytes(d, line, nbBytes);
     01060           if (err) {
    -01061             failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01061             failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01062             return 0xFF;
     01063           }     
     01064         }
    -01066         sdo.nodeId = nodeId;
    -01067         sdo.body.data[0] = 3 << 5;
    +01065         /* Requesting next segment. (cs = 3) */
    +01066         sdo.nodeId = nodeId;
    +01067         sdo.body.data[0] = 3 << 5;
     01068         for (i = 1 ; i < 8 ; i++)
    -01069           sdo.body.data[i] = 0;
    -01070         MSG_WAR(0x3A99, "SDO. Sending upload segment request to node : ", nodeId); 
    -01071         sendSDO(d, whoami, sdo);  
    +01069           sdo.body.data[i] = 0;
    +01070         MSG_WAR(0x3A99, "SDO. Sending upload segment request to node : ", nodeId); 
    +01071         sendSDO(d, whoami, sdo);  
     01072       }
    -01073     } 
    +01073     } /* End if CLIENT */
     01074     break;
     01075 
     01076   case 3:
    -01078     if (whoami == SDO_SERVER) {
    -01081       err = getSDOlineOnUse( d, nodeId, whoami, &line ); 
    +01077     /* I am SERVER */
    +01078     if (whoami == SDO_SERVER) {
    +01079       /* Receiving a upload segment. */
    +01080       /* A SDO transfert should have been yet initiated. */
    +01081       err = getSDOlineOnUse( d, nodeId, whoami, &line ); 
     01082       if (!err)
    -01083         err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS;
    +01083         err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS;
     01084       if (err) {
    -01085         MSG_ERR(0x1AA0, "SDO error : Received upload segment for unstarted trans. index 0x1200 + ", 
    +01085         MSG_ERR(0x1AA0, "SDO error : Received upload segment for unstarted trans. index 0x1200 + ", 
     01086                 nodeId); 
    -01087         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
    +01087         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
     01088         return 0xFF;
     01089       }
    +01090       /* Reset the wathdog */
     01091       RestartSDO_TIMER(line)
    -01092       MSG_WAR(0x3AA1, "Received SDO upload segment defined at index 0x1200 + ", nodeId); 
    -01093       index = d->transfers[line].index;
    -01094       subIndex = d->transfers[line].subIndex;
    -01096       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    -01097         MSG_ERR(0x1AA2, "SDO error : Toggle error : ", getSDOt(m->data[0])); 
    -01098         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
    +01092       MSG_WAR(0x3AA1, "Received SDO upload segment defined at index 0x1200 + ", nodeId); 
    +01093       index = d->transfers[line].index;
    +01094       subIndex = d->transfers[line].subIndex;
    +01095       /* Toggle test.*/
    +01096       if (d->transfers[line].toggle != getSDOt(m->data[0])) {
    +01097         MSG_ERR(0x1AA2, "SDO error : Toggle error : ", getSDOt(m->data[0])); 
    +01098         failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED);
     01099         return 0xFF;
     01100       }
    -01102       getSDOlineRestBytes(d, line, &nbBytes);             
    +01101       /* Uploading next segment. We need to know if it will be the last one. */
    +01102       getSDOlineRestBytes(d, line, &nbBytes);             
     01103       if (nbBytes > 7) {
    -01106         sdo.nodeId = nodeId; /* The server node Id; */
    -01107         sdo.body.data[0] = (d->transfers[line].toggle << 4);
    -01108         err = lineToSDO(d, line, 7, sdo.body.data + 1);  
    +01104         /* The segment to transfer is not the last one.*/
    +01105         /* code to send the next segment. (cs = 0; c = 0) */
    +01106         sdo.nodeId = nodeId; /* The server node Id; */
    +01107         sdo.body.data[0] = (d->transfers[line].toggle << 4);
    +01108         err = lineToSDO(d, line, 7, sdo.body.data + 1);  
     01109         if (err) {
    -01110           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01110           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01111           return 0xFF;
     01112         }
    -01114         d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    -01115         MSG_WAR(0x3AA3, "SDO. Sending upload segment defined at index 0x1200 + ", nodeId); 
    -01116         sendSDO(d, whoami, sdo); 
    +01113         /* Inverting the toggle for the next tranfert. */
    +01114         d->transfers[line].toggle = ! d->transfers[line].toggle & 1;
    +01115         MSG_WAR(0x3AA3, "SDO. Sending upload segment defined at index 0x1200 + ", nodeId); 
    +01116         sendSDO(d, whoami, sdo); 
     01117       } 
     01118       else {
    -01121         sdo.nodeId = nodeId; 
    -01122         sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1;
    -01123         err = lineToSDO(d, line, nbBytes, sdo.body.data + 1);    
    +01119         /* Last segment. */
    +01120         /* code to send the last segment. (cs = 0; c = 1) */        
    +01121         sdo.nodeId = nodeId; 
    +01122         sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1;
    +01123         err = lineToSDO(d, line, nbBytes, sdo.body.data + 1);    
     01124         if (err) {
    -01125           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01125           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01126           return 0xFF;
     01127         }
     01128         for (i = nbBytes + 1 ; i < 8 ; i++)
    -01129           sdo.body.data[i] = 0;
    -01130         MSG_WAR(0x3AA4, "SDO. Sending last upload segment defined at index 0x1200 + ", nodeId);      
    -01131         sendSDO(d, whoami, sdo);
    +01129           sdo.body.data[i] = 0;
    +01130         MSG_WAR(0x3AA4, "SDO. Sending last upload segment defined at index 0x1200 + ", nodeId);      
    +01131         sendSDO(d, whoami, sdo);
    +01132         /* Release the line */
     01133         resetSDOline(d, line);
     01134       }
     01135     } /* end if SERVER*/
     01136     else {
    -01140       err = getSDOlineOnUse( d, nodeId, whoami, &line);
    +01137       /* I am CLIENT */
    +01138       /* It is the response for the previous initiate download request. */
    +01139       /* We should find a line opened for this. */
    +01140       err = getSDOlineOnUse( d, nodeId, whoami, &line);
     01141       if (!err)
    -01142         err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS;
    +01142         err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS;
     01143       if (err) {
    -01144         MSG_ERR(0x1AA5, "SDO error : Received response for unknown download request from nodeId", nodeId); 
    -01145         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
    +01144         MSG_ERR(0x1AA5, "SDO error : Received response for unknown download request from nodeId", nodeId); 
    +01145         failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
     01146         return 0xFF;
     01147       }
    +01148       /* Reset the watchdog */
     01149       RestartSDO_TIMER(line)
    -01150       index = d->transfers[line].index;
    -01151       subIndex = d->transfers[line].subIndex;
    +01150       index = d->transfers[line].index;
    +01151       subIndex = d->transfers[line].subIndex;
     01152       /* End transmission or requesting  next segment. */
    -01153       getSDOlineRestBytes(d, line, &nbBytes);
    +01153       getSDOlineRestBytes(d, line, &nbBytes);
     01154       if (nbBytes == 0) {
    -01155         MSG_WAR(0x3AA6, "SDO End download expedited. Response received. from nodeId", nodeId); 
    +01155         MSG_WAR(0x3AA6, "SDO End download expedited. Response received. from nodeId", nodeId); 
     01156         StopSDO_TIMER(line)
    -01157         d->transfers[line].state = SDO_FINISHED;
    -01158         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
    +01157         d->transfers[line].state = SDO_FINISHED;
    +01158         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
     01159         return 0x00;
     01160       }   
     01161       if (nbBytes > 7) {
    -01164         sdo.nodeId = nodeId; 
    -01165         sdo.body.data[0] = (d->transfers[line].toggle << 4);
    -01166         err = lineToSDO(d, line, 7, sdo.body.data + 1);  
    +01162         /* more than one request to send */
    +01163         /* code to send the next segment. (cs = 0; c = 0)       */    
    +01164         sdo.nodeId = nodeId; 
    +01165         sdo.body.data[0] = (d->transfers[line].toggle << 4);
    +01166         err = lineToSDO(d, line, 7, sdo.body.data + 1);  
     01167         if (err) {
    -01168           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01168           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01169           return 0xFF;
     01170         }
     01171       } 
     01172       else {
    -01175         sdo.nodeId = nodeId; 
    -01176         sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1;
    -01177         err = lineToSDO(d, line, nbBytes, sdo.body.data + 1);    
    +01173         /* Last segment.*/
    +01174         /* code to send the last segment. (cs = 0; c = 1)       */   
    +01175         sdo.nodeId = nodeId; /* The server node Id; */
    +01176         sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1;
    +01177         err = lineToSDO(d, line, nbBytes, sdo.body.data + 1);    
     01178         if (err) {
    -01179           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
    +01179           failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR);
     01180           return 0xFF;
     01181         }
     01182         for (i = nbBytes + 1 ; i < 8 ; i++)
    -01183           sdo.body.data[i] = 0;
    +01183           sdo.body.data[i] = 0;
     01184       }
    -01185       MSG_WAR(0x3AA7, "SDO sending download segment to nodeId", nodeId); 
    -01186       sendSDO(d, whoami, sdo); 
    +01185       MSG_WAR(0x3AA7, "SDO sending download segment to nodeId", nodeId); 
    +01186       sendSDO(d, whoami, sdo); 
     01187 
     01188     } /* end if I am a CLIENT           */        
     01189     break;  
     01190 
     01191    case 4:
     01192      abortCode = (*m).data[3] |
    -01193       ((UNS32)m->data[5] << 8) |
    -01194       ((UNS32)m->data[6] << 16) |
    -01195       ((UNS32)m->data[7] << 24);
    -01198     if (whoami == SDO_SERVER) {
    -01199       err = getSDOlineOnUse( d, nodeId, whoami, &line );
    +01193       ((UNS32)m->data[5] << 8) |
    +01194       ((UNS32)m->data[6] << 16) |
    +01195       ((UNS32)m->data[7] << 24);
    +01196     /* Received SDO abort. */
    +01197     /* Looking for the line concerned. */
    +01198     if (whoami == SDO_SERVER) {
    +01199       err = getSDOlineOnUse( d, nodeId, whoami, &line );
     01200       if (!err) {
    -01201         resetSDOline( d, line );
    -01202         MSG_WAR(0x3AA8, "SD0. Received SDO abort. Line released. Code : ", abortCode);
    +01201         resetSDOline( d, line );
    +01202         MSG_WAR(0x3AA8, "SD0. Received SDO abort. Line released. Code : ", abortCode);
     01203       }
     01204       else
    -01205         MSG_WAR(0x3AA9, "SD0. Received SDO abort. No line found. Code : ", abortCode);
    +01205         MSG_WAR(0x3AA9, "SD0. Received SDO abort. No line found. Code : ", abortCode);
    +01206       /* Tips : The end user has no way to know that the server node has received an abort SDO. */
    +01207       /* Its is ok, I think.*/
     01208     }
    -01209     else { 
    -01210       err = getSDOlineOnUse( d, nodeId, whoami, &line );
    +01209     else { /* If I am CLIENT */
    +01210       err = getSDOlineOnUse( d, nodeId, whoami, &line );
     01211       if (!err) {
    +01212         /* The line *must* be released by the core program. */
     01213         StopSDO_TIMER(line)
    -01214         d->transfers[line].state = SDO_ABORTED_RCV;
    -01215         d->transfers[line].abortCode = abortCode;
    -01216         MSG_WAR(0x3AB0, "SD0. Received SDO abort. Line state ABORTED. Code : ", abortCode);
    -01217         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
    +01214         d->transfers[line].state = SDO_ABORTED_RCV;
    +01215         d->transfers[line].abortCode = abortCode;
    +01216         MSG_WAR(0x3AB0, "SD0. Received SDO abort. Line state ABORTED. Code : ", abortCode);
    +01217         if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId);
     01218       }
     01219       else
    -01220         MSG_WAR(0x3AB1, "SD0. Received SDO abort. No line found. Code : ", abortCode);
    +01220         MSG_WAR(0x3AB1, "SD0. Received SDO abort. No line found. Code : ", abortCode);
     01221     } 
     01222     break;
     01223   default:
    -01225     MSG_ERR(0x1AB2, "SDO. Received unknown command specifier : ", getSDOcs(m->data[0]));
    +01224     /* Error : Unknown cs */
    +01225     MSG_ERR(0x1AB2, "SDO. Received unknown command specifier : ", getSDOcs(m->data[0]));
     01226     return 0xFF;
     01227 
     01228   } /* End switch */
     01229   return 0;     
     01230 }
     01231 
    -01247 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    -01248                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize)
    +01247 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +01248                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize)
     01249 {
    -01250   UNS8 err;
    -01251   UNS8 SDOfound = 0;
    -01252   UNS8 line;
    -01253   s_SDO sdo;    /* SDO to transmit */
    -01254   UNS8 i, j;
    -01255   UNS16     lastIndex;
    -01256   UNS16     offset;
    -01257   UNS32      *pNodeIdServer;
    -01258   UNS32      nodeIdServer;
    +01250   UNS8 err;
    +01251   UNS8 SDOfound = 0;
    +01252   UNS8 line;
    +01253   s_SDO sdo;    /* SDO to transmit */
    +01254   UNS8 i, j;
    +01255   UNS16     lastIndex;
    +01256   UNS16     offset;
    +01257   UNS32      *pNodeIdServer;
    +01258   UNS32      nodeIdServer;
     01259 
    -01260   MSG_WAR(0x3AC0, "Send SDO to write in the dictionary of node : ", nodeId);
    -01261   MSG_WAR(0x3AC1, "                                   At index : ", index);
    -01262   MSG_WAR(0x3AC2, "                                   subIndex : ", subIndex);
    -01263   MSG_WAR(0x3AC3, "                                   nb bytes : ", count);
    +01260   MSG_WAR(0x3AC0, "Send SDO to write in the dictionary of node : ", nodeId);
    +01261   MSG_WAR(0x3AC1, "                                   At index : ", index);
    +01262   MSG_WAR(0x3AC2, "                                   subIndex : ", subIndex);
    +01263   MSG_WAR(0x3AC3, "                                   nb bytes : ", count);
     01264 
    -01266   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
    +01265   /* Verify that there is no SDO communication yet. */
    +01266   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
     01267   if (!err) {
    -01268     MSG_ERR(0x1AC4, "SDO error : Communication yet established. with node : ", nodeId); 
    +01268     MSG_ERR(0x1AC4, "SDO error : Communication yet established. with node : ", nodeId); 
     01269     return 0xFF;
     01270   }
    -01272   err = getSDOfreeLine( d, SDO_CLIENT, &line );
    +01271   /* Taking the line ... */
    +01272   err = getSDOfreeLine( d, SDO_CLIENT, &line );
     01273   if (err) {
    -01274     MSG_ERR(0x1AC5, "SDO error : No line free, too many SDO in progress. Aborted for node : ", nodeId); 
    +01274     MSG_ERR(0x1AC5, "SDO error : No line free, too many SDO in progress. Aborted for node : ", nodeId); 
     01275     return (0xFF);
     01276   }
    -01278   offset = d->firstIndex->SDO_CLT;
    -01279   lastIndex = d->lastIndex->SDO_CLT;
    +01277   /* Check which SDO to use to communicate with the node */
    +01278   offset = d->firstIndex->SDO_CLT;
    +01279   lastIndex = d->lastIndex->SDO_CLT;
     01280   if (offset == 0) {
    -01281     MSG_ERR(0x1AC6, "writeNetworkDict : No SDO client index found", 0); 
    +01281     MSG_ERR(0x1AC6, "writeNetworkDict : No SDO client index found", 0); 
     01282     return 0xFF;
     01283   }
     01284   i = 0;
     01285    while (offset <= lastIndex) {
    -01286      if (d->objdict[offset].bSubCount <= 3) {
    -01287          MSG_ERR(0x1AC8, "Subindex 3  not found at index ", 0x1280 + i);
    +01286      if (d->objdict[offset].bSubCount <= 3) {
    +01287          MSG_ERR(0x1AC8, "Subindex 3  not found at index ", 0x1280 + i);
     01288          return 0xFF;
     01289      }
    -01291      pNodeIdServer = d->objdict[offset].pSubindex[3].pObject;
    +01290      /* looking for the nodeId server */
    +01291      pNodeIdServer = d->objdict[offset].pSubindex[3].pObject;
     01292      nodeIdServer = *pNodeIdServer;
    -01293      MSG_WAR(0x1AD2, "index : ", 0x1280 + i);
    -01294      MSG_WAR(0x1AD3, "nodeIdServer : ", nodeIdServer);
    +01293      MSG_WAR(0x1AD2, "index : ", 0x1280 + i);
    +01294      MSG_WAR(0x1AD3, "nodeIdServer : ", nodeIdServer);
     01295    
    -01296     if(nodeIdServer == (UNS32)nodeId) {
    +01296     if(nodeIdServer == (UNS32)nodeId) {
     01297       SDOfound = 1;
     01298       break;
     01299     }
    @@ -980,47 +1101,50 @@
     01301     i++;
     01302   } /* end while */
     01303   if (!SDOfound) {
    -01304     MSG_ERR(0x1AC9, "SDO. Error. No client found to communicate with node : ", nodeId);
    +01304     MSG_ERR(0x1AC9, "SDO. Error. No client found to communicate with node : ", nodeId);
     01305     return 0xFF;
     01306   }
    -01307   MSG_WAR(0x3AD0,"        SDO client defined at index  : ", 0x1280 + i);
    -01308   initSDOline(d, line, nodeId, index, subIndex, SDO_DOWNLOAD_IN_PROGRESS);
    -01309   d->transfers[line].count = count;
    -01310   d->transfers[line].dataType = dataType;
    +01307   MSG_WAR(0x3AD0,"        SDO client defined at index  : ", 0x1280 + i);
    +01308   initSDOline(d, line, nodeId, index, subIndex, SDO_DOWNLOAD_IN_PROGRESS);
    +01309   d->transfers[line].count = count;
    +01310   d->transfers[line].dataType = dataType;
     01311   
    +01312   /* Copy data to transfers structure. */
     01313   for (j = 0 ; j < count ; j++) {
    -01314 # ifdef CANOPEN_BIG_ENDIAN
    +01314 # ifdef CANOPEN_BIG_ENDIAN
     01315     if (dataType == 0 && endianize)
    -01316       d->transfers[line].data[count - 1 - j] = ((char *)data)[j];
    +01316       d->transfers[line].data[count - 1 - j] = ((char *)data)[j];
     01317     else /* String of bytes. */
    -01318       d->transfers[line].data[j] = ((char *)data)[j];
    +01318       d->transfers[line].data[j] = ((char *)data)[j];
     01319 #  else 
    -01320     d->transfers[line].data[j] = ((char *)data)[j];
    +01320     d->transfers[line].data[j] = ((char *)data)[j];
     01321 #  endif
     01322   }
    -01324   sdo.nodeId = nodeId;
    -01325   if (count <= 4) { 
    -01326     sdo.body.data[0] = (1 << 5) | ((4 - count) << 2) | 3;
    +01323   /* Send the SDO to the server. Initiate download, cs=1. */
    +01324   sdo.nodeId = nodeId;
    +01325   if (count <= 4) { /* Expedited transfert */
    +01326     sdo.body.data[0] = (1 << 5) | ((4 - count) << 2) | 3;
     01327     for (i = 4 ; i < 8 ; i++)
    -01328       sdo.body.data[i] = d->transfers[line].data[i - 4];
    -01329     d->transfers[line].offset = count;
    +01328       sdo.body.data[i] = d->transfers[line].data[i - 4];
    +01329     d->transfers[line].offset = count;
     01330   }     
     01331   else { 
    -01332     sdo.body.data[0] = (1 << 5) | 1;
    -01333     sdo.body.data[4] = count; 
    +01332     sdo.body.data[0] = (1 << 5) | 1;
    +01333     sdo.body.data[4] = count; /* nb of byte to transmit. Max = 255. (canfestival2 limitation). */
     01334     for (i = 5 ; i < 8 ; i++)
    -01335       sdo.body.data[i] = 0;
    +01335       sdo.body.data[i] = 0;
     01336   }
    -01337   sdo.body.data[1] = index & 0xFF;        /* LSB */
    -01338   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    -01339   sdo.body.data[3] = subIndex;
    +01337   sdo.body.data[1] = index & 0xFF;        /* LSB */
    +01338   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    +01339   sdo.body.data[3] = subIndex;
     01340 
    -01341   d->transfers[line].Callback = Callback;
    +01341   d->transfers[line].Callback = Callback;
     01342     
    -01343   err = sendSDO(d, SDO_CLIENT, sdo);
    +01343   err = sendSDO(d, SDO_CLIENT, sdo);
     01344   if (err) {
    -01345     MSG_ERR(0x1AD1, "SDO. Error while sending SDO to node : ", nodeId);
    -01347     resetSDOline(d, line);
    +01345     MSG_ERR(0x1AD1, "SDO. Error while sending SDO to node : ", nodeId);
    +01346     /* release the line */
    +01347     resetSDOline(d, line);
     01348     return 0xFF;
     01349   }
     01350 
    @@ -1028,63 +1152,67 @@
     01352   return 0;
     01353 }
     01354 
    -01368 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    -01369                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data)
    +01368 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +01369                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data)
     01370 {
    -01371         return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, NULL, 1);
    +01371         return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, NULL, 1);
     01372 }
     01373 
    -01388 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, 
    -01389                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback)
    +01388 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +01389                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback)
     01390 {
    -01391         return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, Callback, 1);      
    +01391         return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, Callback, 1);      
     01392 }
     01393 
    -01406 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    +01406 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
     01407 {
    -01408   UNS8 err;
    -01409   UNS8 SDOfound = 0;
    -01410   UNS8 i;
    -01411   UNS8 line;
    -01412   s_SDO sdo;    /* SDO to transmit */
    -01413   UNS32      *pNodeIdServer;
    -01414   UNS32      nodeIdServer;
    -01415   UNS16     offset;
    -01416   UNS16     lastIndex;
    -01417   MSG_WAR(0x3AD5, "Send SDO to read in the dictionary of node : ", nodeId);
    -01418   MSG_WAR(0x3AD6, "                                  At index : ", index);
    -01419   MSG_WAR(0x3AD7, "                                  subIndex : ", subIndex);
    +01408   UNS8 err;
    +01409   UNS8 SDOfound = 0;
    +01410   UNS8 i;
    +01411   UNS8 line;
    +01412   s_SDO sdo;    /* SDO to transmit */
    +01413   UNS32      *pNodeIdServer;
    +01414   UNS32      nodeIdServer;
    +01415   UNS16     offset;
    +01416   UNS16     lastIndex;
    +01417   MSG_WAR(0x3AD5, "Send SDO to read in the dictionary of node : ", nodeId);
    +01418   MSG_WAR(0x3AD6, "                                  At index : ", index);
    +01419   MSG_WAR(0x3AD7, "                                  subIndex : ", subIndex);
     01420 
     01421 
    -01423   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
    +01422   /* Verify that there is no SDO communication yet. */
    +01423   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
     01424   if (!err) {
    -01425     MSG_ERR(0x1AD8, "SDO error : Communication yet established. with node : ", nodeId); 
    +01425     MSG_ERR(0x1AD8, "SDO error : Communication yet established. with node : ", nodeId); 
     01426     return 0xFF;
     01427   }
    -01429   err = getSDOfreeLine( d, SDO_CLIENT, &line );
    +01428   /* Taking the line ... */
    +01429   err = getSDOfreeLine( d, SDO_CLIENT, &line );
     01430   if (err) {
    -01431     MSG_ERR(0x1AD9, "SDO error : No line free, too many SDO in progress. Aborted for node : ", nodeId); 
    +01431     MSG_ERR(0x1AD9, "SDO error : No line free, too many SDO in progress. Aborted for node : ", nodeId); 
     01432     return (0xFF);
     01433   }
     01434   else
    -01435     MSG_WAR(0x3AE0, "Transmission on line : ", line);
    +01435     MSG_WAR(0x3AE0, "Transmission on line : ", line);
     01436 
    -01438   offset = d->firstIndex->SDO_CLT;
    -01439   lastIndex = d->lastIndex->SDO_CLT;
    +01437   /* Check which SDO to use to communicate with the node */
    +01438   offset = d->firstIndex->SDO_CLT;
    +01439   lastIndex = d->lastIndex->SDO_CLT;
     01440   if (offset == 0) {
    -01441     MSG_ERR(0x1AE1, "writeNetworkDict : No SDO client index found", 0); 
    +01441     MSG_ERR(0x1AE1, "writeNetworkDict : No SDO client index found", 0); 
     01442     return 0xFF;
     01443   }
     01444   i = 0;
     01445   while (offset <= lastIndex) {
    -01446      if (d->objdict[offset].bSubCount <= 3) {
    -01447          MSG_ERR(0x1AE2, "Subindex 3  not found at index ", 0x1280 + i);
    +01446      if (d->objdict[offset].bSubCount <= 3) {
    +01447          MSG_ERR(0x1AE2, "Subindex 3  not found at index ", 0x1280 + i);
     01448          return 0xFF;
     01449      }
    -01451      pNodeIdServer = d->objdict[offset].pSubindex[3].pObject;
    +01450      /* looking for the nodeId server */
    +01451      pNodeIdServer = d->objdict[offset].pSubindex[3].pObject;
     01452      nodeIdServer = *pNodeIdServer;
     01453    
    -01454     if(nodeIdServer == (UNS32)nodeId) {
    +01454     if(nodeIdServer == (UNS32)nodeId) {
     01455       SDOfound = 1;
     01456       break;
     01457     }
    @@ -1092,86 +1220,90 @@
     01459     i++;
     01460   } /* end while */
     01461   if (!SDOfound) {
    -01462     MSG_ERR(0x1AE3, "SDO. Error. No client found to communicate with node : ", nodeId);
    +01462     MSG_ERR(0x1AE3, "SDO. Error. No client found to communicate with node : ", nodeId);
     01463     return 0xFF;
     01464   }
    -01465   MSG_WAR(0x3AE4,"        SDO client defined at index  : ", 0x1280 + i);
    -01466   initSDOline(d, line, nodeId, index, subIndex, SDO_UPLOAD_IN_PROGRESS);
    -01467   getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
    -01468   sdo.nodeId = nodeId;
    -01470   d->transfers[line].dataType = dataType;                               
    -01471   sdo.body.data[0] = (2 << 5);  
    -01472   sdo.body.data[1] = index & 0xFF;        /* LSB */
    -01473   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    -01474   sdo.body.data[3] = subIndex;
    +01465   MSG_WAR(0x3AE4,"        SDO client defined at index  : ", 0x1280 + i);
    +01466   initSDOline(d, line, nodeId, index, subIndex, SDO_UPLOAD_IN_PROGRESS);
    +01467   getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
    +01468   sdo.nodeId = nodeId;
    +01469   /* Send the SDO to the server. Initiate upload, cs=2. */
    +01470   d->transfers[line].dataType = dataType;                               
    +01471   sdo.body.data[0] = (2 << 5);  
    +01472   sdo.body.data[1] = index & 0xFF;        /* LSB */
    +01473   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
    +01474   sdo.body.data[3] = subIndex;
     01475   for (i = 4 ; i < 8 ; i++)
    -01476     sdo.body.data[i] = 0;
    -01477   d->transfers[line].Callback = Callback;
    -01478   err = sendSDO(d, SDO_CLIENT, sdo);
    +01476     sdo.body.data[i] = 0;
    +01477   d->transfers[line].Callback = Callback;
    +01478   err = sendSDO(d, SDO_CLIENT, sdo);
     01479   if (err) {
    -01480     MSG_ERR(0x1AE5, "SDO. Error while sending SDO to node : ", nodeId);
    +01480     MSG_ERR(0x1AE5, "SDO. Error while sending SDO to node : ", nodeId);
     01481     /* release the line */
    -01482     resetSDOline(d, line);
    +01482     resetSDOline(d, line);
     01483     return 0xFF;
     01484   }             
     01485   return 0;
     01486 }
     01487 
    -01499 UNS8 readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType)
    +01499 UNS8 readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType)
     01500 {
    -01501         return _readNetworkDict (d, nodeId, index, subIndex, dataType, NULL);
    +01501         return _readNetworkDict (d, nodeId, index, subIndex, dataType, NULL);
     01502 }
     01503 
    -01516 UNS8 readNetworkDictCallback (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    +01516 UNS8 readNetworkDictCallback (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
     01517 {
    -01518         return _readNetworkDict (d, nodeId, index, subIndex, dataType, Callback);
    +01518         return _readNetworkDict (d, nodeId, index, subIndex, dataType, Callback);
     01519 }
     01520 
    -01532 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data, UNS8 *size, 
    -01533                                UNS32 * abortCode)
    +01532 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data, UNS8 *size, 
    +01533                                UNS32 * abortCode)
     01534 {
    -01535   UNS8 i;
    -01536   UNS8 err;
    -01537   UNS8 line;
    +01535   UNS8 i;
    +01536   UNS8 err;
    +01537   UNS8 line;
     01538   * size = 0;
     01539 
    -01541   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
    +01540   /* Looking for the line tranfert. */
    +01541   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
     01542   if (err) {
    -01543     MSG_ERR(0x1AF0, "SDO error : No line found for communication with node : ", nodeId); 
    -01544     return SDO_ABORTED_INTERNAL;
    +01543     MSG_ERR(0x1AF0, "SDO error : No line found for communication with node : ", nodeId); 
    +01544     return SDO_ABORTED_INTERNAL;
     01545   }
    -01546   if (d->transfers[line].state != SDO_FINISHED)
    -01547     return d->transfers[line].state;
    +01546   if (d->transfers[line].state != SDO_FINISHED)
    +01547     return d->transfers[line].state;
     01548 
    -01550   * size = (UNS8)d->transfers[line].count;
    +01549   /* Transfert is finished. Put the value in the data. */
    +01550   * size = (UNS8)d->transfers[line].count;
     01551   for  ( i = 0 ; i < *size ; i++) {
    -01552 # ifdef CANOPEN_BIG_ENDIAN
    -01553     if (d->transfers[line].dataType != visible_string)
    -01554       ( (char *) data)[*size - 1 - i] = d->transfers[line].data[i];
    -01555     else 
    -01556       ( (char *) data)[i] = d->transfers[line].data[i];
    +01552 # ifdef CANOPEN_BIG_ENDIAN
    +01553     if (d->transfers[line].dataType != visible_string)
    +01554       ( (char *) data)[*size - 1 - i] = d->transfers[line].data[i];
    +01555     else /* String of bytes. */
    +01556       ( (char *) data)[i] = d->transfers[line].data[i];
     01557 # else 
    -01558     ( (char *) data)[i] = d->transfers[line].data[i];
    +01558     ( (char *) data)[i] = d->transfers[line].data[i];
     01559 # endif
     01560   } 
    -01561   return SDO_FINISHED;
    +01561   return SDO_FINISHED;
     01562 }
     01563 
    -01573 UNS8 getWriteResultNetworkDict (CO_Data* d, UNS8 nodeId, UNS32 * abortCode)
    +01573 UNS8 getWriteResultNetworkDict (CO_Data* d, UNS8 nodeId, UNS32 * abortCode)
     01574 {
    -01575   UNS8 line = 0;
    -01576   UNS8 err;
    +01575   UNS8 line = 0;
    +01576   UNS8 err;
     01577 
     01578   * abortCode = 0;
    -01580   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
    +01579   /* Looking for the line tranfert. */
    +01580   err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line);
     01581   if (err) {
    -01582     MSG_ERR(0x1AF1, "SDO error : No line found for communication with node : ", nodeId); 
    -01583     return SDO_ABORTED_INTERNAL;
    +01582     MSG_ERR(0x1AF1, "SDO error : No line found for communication with node : ", nodeId); 
    +01583     return SDO_ABORTED_INTERNAL;
     01584   }
    -01585   * abortCode = d->transfers[line].abortCode;
    -01586   return d->transfers[line].state;
    +01585   * abortCode = d->transfers[line].abortCode;
    +01586   return d->transfers[line].state;
     01587 }
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c.html --- a/doc/doxygen/html/sdo_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/sdo.c File Reference +CanFestival: src/sdo.c File Reference @@ -8,19 +8,42 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/sdo.c File Reference

    #include "objacces.h"
    -#include "sdo.h"
    -#include "canfestival.h"
    - -

    -Include dependency graph for sdo.c:

    + +

    sdo.c File Reference

    #include "objacces.h"
    +#include "sdo.h"
    +#include "canfestival.h"
    + +

    +Include dependency graph for sdo.c:

    + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. @@ -55,55 +78,55 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #define RestartSDO_TIMER(id)

    Functions

    INLINE UNS8 _writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize)
    INLINE UNS8 _readNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    void SDOTimeoutAlarm (CO_Data *d, UNS32 id)
    void resetSDO (CO_Data *d)
    UNS32 SDOlineToObjdict (CO_Data *d, UNS8 line)
    UNS32 objdictToSDOline (CO_Data *d, UNS8 line)
    UNS8 lineToSDO (CO_Data *d, UNS8 line, UNS8 nbBytes, UNS8 *data)
    UNS8 SDOtoLine (CO_Data *d, UNS8 line, UNS8 nbBytes, UNS8 *data)
    UNS8 failedSDO (CO_Data *d, UNS8 nodeId, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    void resetSDOline (CO_Data *d, UNS8 line)
    UNS8 initSDOline (CO_Data *d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state)
    UNS8 getSDOfreeLine (CO_Data *d, UNS8 whoami, UNS8 *line)
    UNS8 getSDOlineOnUse (CO_Data *d, UNS8 nodeId, UNS8 whoami, UNS8 *line)
    UNS8 closeSDOtransfer (CO_Data *d, UNS8 nodeId, UNS8 whoami)
    UNS8 getSDOlineRestBytes (CO_Data *d, UNS8 line, UNS8 *nbBytes)
    UNS8 setSDOlineRestBytes (CO_Data *d, UNS8 line, UNS8 nbBytes)
    UNS8 sendSDO (CO_Data *d, UNS8 whoami, s_SDO sdo)
    UNS8 sendSDOabort (CO_Data *d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    UNS8 proceedSDO (CO_Data *d, Message *m)
    UNS8 writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data)
    UNS8 writeNetworkDictCallBack (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback)
    UNS8 readNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType)
    UNS8 readNetworkDictCallback (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    UNS8 getReadResultNetworkDict (CO_Data *d, UNS8 nodeId, void *data, UNS8 *size, UNS32 *abortCode)
    UNS8 getWriteResultNetworkDict (CO_Data *d, UNS8 nodeId, UNS32 *abortCode)
    INLINE UNS8 _writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize)
    INLINE UNS8 _readNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    void SDOTimeoutAlarm (CO_Data *d, UNS32 id)
    void resetSDO (CO_Data *d)
    UNS32 SDOlineToObjdict (CO_Data *d, UNS8 line)
    UNS32 objdictToSDOline (CO_Data *d, UNS8 line)
    UNS8 lineToSDO (CO_Data *d, UNS8 line, UNS8 nbBytes, UNS8 *data)
    UNS8 SDOtoLine (CO_Data *d, UNS8 line, UNS8 nbBytes, UNS8 *data)
    UNS8 failedSDO (CO_Data *d, UNS8 nodeId, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    void resetSDOline (CO_Data *d, UNS8 line)
    UNS8 initSDOline (CO_Data *d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state)
    UNS8 getSDOfreeLine (CO_Data *d, UNS8 whoami, UNS8 *line)
    UNS8 getSDOlineOnUse (CO_Data *d, UNS8 nodeId, UNS8 whoami, UNS8 *line)
    UNS8 closeSDOtransfer (CO_Data *d, UNS8 nodeId, UNS8 whoami)
    UNS8 getSDOlineRestBytes (CO_Data *d, UNS8 line, UNS8 *nbBytes)
    UNS8 setSDOlineRestBytes (CO_Data *d, UNS8 line, UNS8 nbBytes)
    UNS8 sendSDO (CO_Data *d, UNS8 whoami, s_SDO sdo)
    UNS8 sendSDOabort (CO_Data *d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    UNS8 proceedSDO (CO_Data *d, Message *m)
    UNS8 writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data)
    UNS8 writeNetworkDictCallBack (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback)
    UNS8 readNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType)
    UNS8 readNetworkDictCallback (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    UNS8 getReadResultNetworkDict (CO_Data *d, UNS8 nodeId, void *data, UNS8 *size, UNS32 *abortCode)
    UNS8 getWriteResultNetworkDict (CO_Data *d, UNS8 nodeId, UNS32 *abortCode)


    Detailed Description

    @@ -382,8 +405,8 @@

    -Value:

    MSG_WAR(0x3A07, "restartSDO_TIMER for line : ", line);\
    -if(d->transfers[id].timer != TIMER_NONE) { StopSDO_TIMER(id) StartSDO_TIMER(id) }
    +Value:
    MSG_WAR(0x3A07, "restartSDO_TIMER for line : ", line);\
    +if(d->transfers[id].timer != TIMER_NONE) { StopSDO_TIMER(id) StartSDO_TIMER(id) }
     

    Definition at line 160 of file sdo.c. @@ -408,8 +431,8 @@

    -Value:

    MSG_WAR(0x3A06, "StartSDO_TIMER for line : ", line);\
    -d->transfers[id].timer = SetAlarm(d,id,&SDOTimeoutAlarm,MS_TO_TIMEVAL(SDO_TIMEOUT_MS),0);
    +Value:
    MSG_WAR(0x3A06, "StartSDO_TIMER for line : ", line);\
    +d->transfers[id].timer = SetAlarm(d,id,&SDOTimeoutAlarm,MS_TO_TIMEVAL(SDO_TIMEOUT_MS),0);
     

    Definition at line 156 of file sdo.c. @@ -434,8 +457,8 @@

    -Value:

    MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\
    -d->transfers[id].timer = DelAlarm(d->transfers[id].timer);
    +Value:
    MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\
    +d->transfers[id].timer = DelAlarm(d->transfers[id].timer);
     

    Definition at line 152 of file sdo.c. @@ -451,7 +474,7 @@ INLINE UNS8 _readNetworkDict ( - CO_Data *  + CO_Datad, @@ -481,7 +504,7 @@ - SDOCallback_t  + SDOCallback_t  Callback  @@ -507,25 +530,21 @@

    Returns:

    -Verify that there is no SDO communication yet.

    -Taking the line ...

    -Check which SDO to use to communicate with the node

    -looking for the nodeId server

    -Send the SDO to the server. Initiate upload, cs=2. -

    Definition at line 1406 of file sdo.c.

    -References getSDOfreeLine(), getSDOlineOnUse(), initSDOline(), resetSDOline(), and sendSDO(). +References struct_s_SDO::body, td_indextable::bSubCount, struct_s_transfer::Callback, struct_s_timer_entry::d, BODY::data, struct_s_transfer::dataType, struct_CO_Data::firstIndex, getSDOfreeLine(), getSDOlineOnUse(), initSDOline(), struct_CO_Data::lastIndex, MSG_ERR, MSG_WAR, struct_s_SDO::nodeId, struct_CO_Data::objdict, td_subindex::pObject, td_indextable::pSubindex, resetSDOline(), SDO_CLIENT, s_quick_index::SDO_CLT, SDO_UPLOAD_IN_PROGRESS, sendSDO(), struct_CO_Data::transfers, UNS16, UNS32, and UNS8.

    Referenced by readNetworkDict(), and readNetworkDictCallback().

    Here is the call graph for this function:

    - + + +
    @@ -537,7 +556,7 @@ INLINE UNS8 _writeNetworkDict ( - CO_Data *  + CO_Datad, @@ -579,7 +598,7 @@ - SDOCallback_t  + SDOCallback_t  Callback, @@ -623,7 +642,7 @@ UNS8 closeSDOtransfer ( - CO_Data *  + CO_Datad, @@ -660,7 +679,9 @@

    Definition at line 439 of file sdo.c.

    -References getSDOlineOnUse(), and resetSDOline(). +References struct_s_timer_entry::d, getSDOlineOnUse(), MSG_WAR, resetSDOline(), and UNS8. +

    +Referenced by ReadSDO(), and TestMaster_post_TPDO().

    Here is the call graph for this function:

    @@ -678,7 +699,7 @@ UNS8 failedSDO ( - CO_Data *  + CO_Datad, @@ -736,7 +757,7 @@

    Definition at line 307 of file sdo.c.

    -References getSDOlineOnUse(), resetSDOline(), sendSDOabort(), and StopSDO_TIMER. +References struct_s_timer_entry::d, getSDOlineOnUse(), MSG_WAR, resetSDOline(), SDO_ABORTED_INTERNAL, SDO_CLIENT, SDO_SERVER, sendSDOabort(), struct_s_transfer::state, StopSDO_TIMER, struct_CO_Data::transfers, and UNS8.

    Referenced by proceedSDO().

    @@ -747,6 +768,8 @@ + +

    @@ -758,7 +781,7 @@ UNS8 getReadResultNetworkDict ( - CO_Data *  + CO_Datad, @@ -807,12 +830,11 @@
    Returns:

    -Looking for the line tranfert.

    -Transfert is finished. Put the value in the data. -

    Definition at line 1532 of file sdo.c.

    -References getSDOlineOnUse(). +References CANOPEN_BIG_ENDIAN, struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, struct_s_transfer::dataType, getSDOlineOnUse(), MSG_ERR, SDO_ABORTED_INTERNAL, SDO_CLIENT, SDO_FINISHED, struct_s_transfer::state, struct_CO_Data::transfers, UNS8, and visible_string. +

    +Referenced by ReadSDO(), and TestMaster_post_TPDO().

    Here is the call graph for this function:

    @@ -828,7 +850,7 @@ UNS8 getSDOfreeLine ( - CO_Data *  + CO_Datad, @@ -865,6 +887,8 @@

    Definition at line 388 of file sdo.c.

    +References struct_s_timer_entry::d, SDO_MAX_SIMULTANEOUS_TRANSFERTS, SDO_RESET, struct_s_transfer::state, struct_CO_Data::transfers, UNS8, and struct_s_transfer::whoami. +

    Referenced by _readNetworkDict(), _writeNetworkDict(), and proceedSDO().

    @@ -875,7 +899,7 @@ UNS8 getSDOlineOnUse ( - CO_Data *  + CO_Datad, @@ -919,6 +943,8 @@

    Definition at line 414 of file sdo.c.

    +References struct_s_timer_entry::d, struct_s_transfer::nodeId, SDO_MAX_SIMULTANEOUS_TRANSFERTS, SDO_RESET, struct_s_transfer::state, struct_CO_Data::transfers, UNS8, and struct_s_transfer::whoami. +

    Referenced by _readNetworkDict(), _writeNetworkDict(), closeSDOtransfer(), failedSDO(), getReadResultNetworkDict(), getWriteResultNetworkDict(), and proceedSDO().

    @@ -929,7 +955,7 @@ UNS8 getSDOlineRestBytes ( - CO_Data *  + CO_Datad, @@ -966,6 +992,8 @@

    Definition at line 461 of file sdo.c.

    +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::offset, struct_CO_Data::transfers, and UNS8. +

    Referenced by proceedSDO().

    @@ -976,7 +1004,7 @@ UNS8 getWriteResultNetworkDict ( - CO_Data *  + CO_Datad, @@ -1011,11 +1039,9 @@

    Returns:

    -Looking for the line tranfert. -

    Definition at line 1573 of file sdo.c.

    -References getSDOlineOnUse(). +References struct_s_transfer::abortCode, struct_s_timer_entry::d, getSDOlineOnUse(), MSG_ERR, SDO_ABORTED_INTERNAL, SDO_CLIENT, struct_s_transfer::state, struct_CO_Data::transfers, and UNS8.

    Here is the call graph for this function:

    @@ -1031,7 +1057,7 @@ UNS8 initSDOline ( - CO_Data *  + CO_Datad, @@ -1089,7 +1115,7 @@

    Definition at line 359 of file sdo.c.

    -References StartSDO_TIMER, and StopSDO_TIMER. +References struct_s_transfer::Callback, struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::dataType, struct_s_transfer::index, MSG_WAR, struct_s_transfer::nodeId, struct_s_transfer::offset, SDO_DOWNLOAD_IN_PROGRESS, SDO_UPLOAD_IN_PROGRESS, StartSDO_TIMER, struct_s_transfer::state, StopSDO_TIMER, struct_s_transfer::subIndex, struct_s_transfer::toggle, and struct_CO_Data::transfers.

    Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), and resetSDOline(). @@ -1101,7 +1127,7 @@ UNS8 lineToSDO ( - CO_Data *  + CO_Datad, @@ -1145,6 +1171,8 @@

    Definition at line 250 of file sdo.c.

    +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, MSG_ERR, struct_s_transfer::offset, SDO_MAX_LENGTH_TRANSFERT, struct_CO_Data::transfers, and UNS8. +

    Referenced by proceedSDO().

    @@ -1155,7 +1183,7 @@ UNS32 objdictToSDOline ( - CO_Data *  + CO_Datad, @@ -1185,7 +1213,7 @@

    Definition at line 209 of file sdo.c.

    -References getODentry(). +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, getODentry(), struct_s_transfer::index, MSG_WAR, OD_SUCCESSFUL, struct_s_transfer::offset, struct_s_transfer::subIndex, struct_CO_Data::transfers, UNS32, and UNS8.

    Referenced by proceedSDO().

    @@ -1205,13 +1233,13 @@ UNS8 proceedSDO ( - CO_Data *  - d, - - - - - Message *  + CO_Data *  + d, + + + + + Messagem  @@ -1233,141 +1261,12 @@

    Returns:

    -received or to be transmited.

    -The node from which the SDO is received

    -node id in 32 bits, for temporary use

    -SDO_SERVER or SDO_CLIENT.

    -while reading or writing in the local object dictionary.

    -SDO to transmit

    -Looking for the cobId in the object dictionary.

    -Am-I a server ?

    -In case of server, the node id of the client may be unknown. So we put the index minus offset

    -0x1200 where the cobid received is defined.

    -end while

    -Am-I client ?

    -a) Looking for the cobid received.

    -b) cobid found, so reading the node id of the server.

    -This SDO was not for us !

    -Test if the size of the SDO is ok

    -Testing the command specifier

    -Allowed : cs = 0, 1, 2, 3, 4. (= all except those for block tranfert).

    -cs = other : Not allowed -> abort.

    -I am SERVER

    -Receiving a download segment data.

    -A SDO transfert should have been yet initiated.

    -Reset the wathdog

    -Toggle test.

    -Nb of data to be downloaded

    -Store the data in the transfert structure.

    -Sending the SDO response, CS = 1

    -The node id of the server, (here it is the sender).

    -Inverting the toggle for the next segment.

    -If it was the last segment,

    -Transfering line data to object dictionary.

    -The code does not use the "d" of initiate frame. So it is safe if e=s=0

    -Release of the line

    -I am CLIENT

    -It is a request for a previous upload segment. We should find a line opened for this.

    -Reset the wathdog

    -test of the toggle;

    -nb of data to be uploaded

    -Storing the data in the line structure.

    -Inverting the toggle for the next segment.

    -If it was the last segment,

    -Put in state finished

    -The code is safe for the case e=s=0 in initiate frame.

    -more segments to receive

    -Sending the request for the next segment.

    -I am SERVER

    -Receive of an initiate download

    -Search if a SDO transfert have been yet initiated

    -No line on use. Great !

    -Try to open a new line.

    -If SDO expedited

    -nb of data to be downloaded

    -Storing the data in the line structure.

    -SDO expedited -> transfert finished. Data can be stored in the dictionary.

    -The line will be reseted when it is downloading in the dictionary.

    -Transfering line data to object dictionary.

    -Release of the line.

    -So, if it is not an expedited transfert

    -TODO : if e and s = 0, not reading m->data[4] but put nbBytes = 0

    -Transfert limited to 255 bytes.

    -Sending a SDO, cs=3

    -The node id of the server, (here it is the sender).

    -I am CLIENT

    -It is a response for a previous download segment. We should find a line opened for this.

    -Reset the wathdog

    -test of the toggle;

    -End transmission or downloading next segment. We need to know if it will be the last one.

    -At least one transfer to send.

    -several segments to download.

    -code to send the next segment. (cs = 0; c = 0)

    -Last segment.

    -code to send the last segment. (cs = 0; c = 1)

    -end if I am a CLIENT

    -I am SERVER

    -Receive of an initiate upload.

    -Search if a SDO transfert have been yet initiated

    -No line on use. Great !

    -Try to open a new line.

    -Transfer data from dictionary to the line structure.

    -Preparing the response.

    -Nb bytes to transfer ?

    The server node Id;

    -normal transfert. (segmented).

    -code to send the initiate upload response. (cs = 2)

    -It takes too much memory to upgrate to 2^32 because the size of data is also coded

    -in the object dictionary, at every index and subindex.

    -Expedited upload. (cs = 2 ; e = 1)

    -Release the line.

    -end if I am SERVER

    -I am CLIENT

    -It is the response for the previous initiate upload request.

    -We should find a line opened for this.

    -Reset the wathdog

    -nb of data to be uploaded

    -Storing the data in the line structure.

    -SDO expedited -> transfert finished. data are available via getReadResultNetworkDict().

    -So, if it is not an expedited transfert

    -Storing the nb of data to receive.

    -Remember the limitation to 255 bytes to transfert

    -Requesting next segment. (cs = 3)

    -End if CLIENT

    -I am SERVER

    -Receiving a upload segment.

    -A SDO transfert should have been yet initiated.

    -Reset the wathdog

    -Toggle test.

    -Uploading next segment. We need to know if it will be the last one.

    -The segment to transfer is not the last one.

    -code to send the next segment. (cs = 0; c = 0)

    -Inverting the toggle for the next tranfert.

    -Last segment.

    -code to send the last segment. (cs = 0; c = 1)

    -The server node Id;

    -Release the line

    -I am CLIENT

    -It is the response for the previous initiate download request.

    -We should find a line opened for this.

    -Reset the watchdog

    -more than one request to send

    -code to send the next segment. (cs = 0; c = 0)

    -The server node Id;

    -Last segment.

    -code to send the last segment. (cs = 0; c = 1)

    -The server node Id;

    -Received SDO abort.

    -Looking for the line concerned.

    -Tips : The end user has no way to know that the server node has received an abort SDO.

    -Its is ok, I think.

    -If I am CLIENT

    -The line *must* be released by the core program.

    -Error : Unknown cs +The server node Id;

    Definition at line 608 of file sdo.c.

    -References failedSDO(), getSDOc, getSDOcs, getSDOe, getSDOfreeLine(), getSDOindex, getSDOlineOnUse(), getSDOlineRestBytes(), getSDOn2, getSDOn3, getSDOs, getSDOsubIndex, getSDOt, initSDOline(), lineToSDO(), objdictToSDOline(), resetSDOline(), RestartSDO_TIMER, SDOlineToObjdict(), SDOtoLine(), sendSDO(), setSDOlineRestBytes(), and StopSDO_TIMER. +References struct_s_transfer::abortCode, struct_CO_Data::bDeviceNodeId, struct_s_SDO::body, td_indextable::bSubCount, struct_s_transfer::Callback, struct_s_transfer::count, struct_s_timer_entry::d, Message::data, BODY::data, failedSDO(), struct_CO_Data::firstIndex, getSDOc, getSDOcs, getSDOe, getSDOfreeLine(), getSDOindex, getSDOlineOnUse(), getSDOlineRestBytes(), getSDOn2, getSDOn3, getSDOs, getSDOsubIndex, getSDOt, struct_s_transfer::index, initSDOline(), struct_CO_Data::lastIndex, lineToSDO(), MSG_ERR, MSG_WAR, struct_s_SDO::nodeId, struct_CO_Data::objdict, objdictToSDOline(), td_subindex::pObject, td_indextable::pSubindex, resetSDOline(), RestartSDO_TIMER, SDO_ABORTED_RCV, SDO_CLIENT, s_quick_index::SDO_CLT, SDO_DOWNLOAD_IN_PROGRESS, SDO_FINISHED, SDO_SERVER, s_quick_index::SDO_SVR, SDO_UNKNOWN, SDO_UPLOAD_IN_PROGRESS, SDOABT_GENERAL_ERROR, SDOABT_LOCAL_CTRL_ERROR, SDOABT_TOGGLE_NOT_ALTERNED, SDOlineToObjdict(), SDOtoLine(), sendSDO(), setSDOlineRestBytes(), struct_s_transfer::state, StopSDO_TIMER, struct_s_transfer::subIndex, struct_s_transfer::toggle, struct_CO_Data::transfers, UNS16, UNS32, and UNS8.

    Referenced by canDispatch().

    @@ -1386,6 +1285,7 @@ + @@ -1402,7 +1302,7 @@ UNS8 readNetworkDict ( - CO_Data *  + CO_Datad, @@ -1453,16 +1353,20 @@

    Definition at line 1499 of file sdo.c.

    -References _readNetworkDict(). +References _readNetworkDict(), and struct_s_timer_entry::d. +

    +Referenced by ReadSDO(), and TestMaster_post_TPDO().

    Here is the call graph for this function:

    - + + + @@ -1474,7 +1378,7 @@ UNS8 readNetworkDictCallback ( - CO_Data *  + CO_Datad, @@ -1504,7 +1408,7 @@ - SDOCallback_t  + SDOCallback_t  Callback  @@ -1532,16 +1436,18 @@

    Definition at line 1516 of file sdo.c.

    -References _readNetworkDict(). +References _readNetworkDict(), and struct_s_timer_entry::d.

    Here is the call graph for this function:

    - + + + @@ -1553,7 +1459,7 @@ void resetSDO ( - CO_Data *  + CO_Datad  )  @@ -1571,11 +1477,9 @@

    -transfer structure initialization -

    Definition at line 169 of file sdo.c.

    -References resetSDOline(). +References struct_s_timer_entry::d, resetSDOline(), SDO_MAX_SIMULTANEOUS_TRANSFERTS, and UNS8.

    Referenced by switchCommunicationState().

    @@ -1594,7 +1498,7 @@ void resetSDOline ( - CO_Data *  + CO_Datad, @@ -1623,7 +1527,7 @@

    Definition at line 338 of file sdo.c.

    -References initSDOline(). +References struct_s_timer_entry::d, struct_s_transfer::data, initSDOline(), MSG_WAR, SDO_MAX_LENGTH_TRANSFERT, SDO_RESET, struct_CO_Data::transfers, and UNS8.

    Referenced by _readNetworkDict(), _writeNetworkDict(), closeSDOtransfer(), failedSDO(), proceedSDO(), resetSDO(), and SDOTimeoutAlarm().

    @@ -1641,7 +1545,7 @@ UNS32 SDOlineToObjdict ( - CO_Data *  + CO_Datad, @@ -1671,7 +1575,7 @@

    Definition at line 186 of file sdo.c.

    -References setODentry(). +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, struct_s_transfer::index, MSG_WAR, OD_SUCCESSFUL, setODentry(), struct_s_transfer::subIndex, struct_CO_Data::transfers, UNS32, and UNS8.

    Referenced by proceedSDO().

    @@ -1691,7 +1595,7 @@ void SDOTimeoutAlarm ( - CO_Data *  + CO_Datad, @@ -1720,7 +1624,7 @@

    Definition at line 129 of file sdo.c.

    -References resetSDOline(), and sendSDOabort(). +References struct_s_transfer::abortCode, struct_s_transfer::Callback, struct_s_timer_entry::d, struct_s_transfer::index, MSG_ERR, MSG_WAR, struct_s_transfer::nodeId, resetSDOline(), SDO_ABORTED_INTERNAL, SDO_SERVER, SDOABT_TIMED_OUT, sendSDOabort(), struct_s_transfer::state, struct_s_transfer::subIndex, struct_s_transfer::timer, struct_CO_Data::transfers, UNS8, and struct_s_transfer::whoami.

    Here is the call graph for this function:

    @@ -1728,6 +1632,8 @@ + + @@ -1739,7 +1645,7 @@ UNS8 SDOtoLine ( - CO_Data *  + CO_Datad, @@ -1783,6 +1689,8 @@

    Definition at line 279 of file sdo.c.

    +References struct_s_timer_entry::d, struct_s_transfer::data, MSG_ERR, struct_s_transfer::offset, SDO_MAX_LENGTH_TRANSFERT, struct_CO_Data::transfers, and UNS8. +

    Referenced by proceedSDO().

    @@ -1793,7 +1701,7 @@ UNS8 sendSDO ( - CO_Data *  + CO_Datad, @@ -1805,7 +1713,7 @@ - s_SDO  + s_SDO  sdo  @@ -1828,18 +1736,18 @@

    Returns:

    -get the server->client cobid

    -case server. Easy because today only one server SDO is authorized in CanFestival

    -case client

    -Get the client->server cobid.

    -First, have to find at the index where is defined the communication with the server node

    -Second, read the cobid client->server

    -message copy for sending

    -the length of SDO must be 8 -

    Definition at line 498 of file sdo.c.

    +References struct_s_SDO::body, td_indextable::bSubCount, struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::data, BODY::data, struct_CO_Data::firstIndex, struct_CO_Data::lastIndex, Message::len, MSG_ERR, MSG_WAR, struct_s_SDO::nodeId, struct_CO_Data::nodeState, NOT_A_REQUEST, struct_CO_Data::objdict, Operational, td_subindex::pObject, Pre_operational, td_indextable::pSubindex, Message::rtr, s_quick_index::SDO_CLT, SDO_SERVER, s_quick_index::SDO_SVR, UNS16, UNS32, UNS8, and SHORT_CAN::w. +

    Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), and sendSDOabort(). +

    +Here is the call graph for this function:

    + + + + +

    @@ -1849,7 +1757,7 @@ UNS8 sendSDOabort ( - CO_Data *  + CO_Datad, @@ -1900,13 +1808,15 @@

    Definition at line 578 of file sdo.c.

    -References sendSDO(). +References struct_CO_Data::bDeviceNodeId, struct_s_SDO::body, struct_s_timer_entry::d, BODY::data, MSG_WAR, struct_s_SDO::nodeId, sendSDO(), and UNS8.

    Referenced by failedSDO(), and SDOTimeoutAlarm().

    Here is the call graph for this function:

    + + @@ -1918,7 +1828,7 @@ UNS8 setSDOlineRestBytes ( - CO_Data *  + CO_Datad, @@ -1955,6 +1865,8 @@

    Definition at line 479 of file sdo.c.

    +References struct_s_transfer::count, struct_s_timer_entry::d, MSG_ERR, SDO_MAX_LENGTH_TRANSFERT, and struct_CO_Data::transfers. +

    Referenced by proceedSDO().

    @@ -1965,7 +1877,7 @@ UNS8 writeNetworkDict ( - CO_Data *  + CO_Datad, @@ -2030,16 +1942,18 @@

    Definition at line 1368 of file sdo.c.

    -References _writeNetworkDict(). +References _writeNetworkDict(), and struct_s_timer_entry::d.

    Here is the call graph for this function:

    - + - - + + + + @@ -2051,7 +1965,7 @@ UNS8 writeNetworkDictCallBack ( - CO_Data *  + CO_Datad, @@ -2093,7 +2007,7 @@ - SDOCallback_t  + SDOCallback_t  Callback  @@ -2123,21 +2037,23 @@

    Definition at line 1388 of file sdo.c.

    -References _writeNetworkDict(). +References _writeNetworkDict(), and struct_s_timer_entry::d.

    Here is the call graph for this function:

    - - + + + +

    -


    Generated on Tue Jun 5 18:32:09 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:14 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.map --- a/doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,7 +1,9 @@ base referer rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 191,103 332,127 -rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 389,5 517,29 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 390,5 518,29 rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 383,53 524,77 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 575,128 671,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 399,152 508,176 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 412,200 495,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 583,200 663,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 722,200 852,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -26b7ca555399e691db14f99088684e23 \ No newline at end of file +15bb1abf0178295c41edaac84b06fa87 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.png Binary file doc/doxygen/html/sdo_8c_0e102a0835e4115920cd406e80a8d135_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.map --- a/doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -4,3 +4,5 @@ rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 156,102 276,126 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 337,54 433,78 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 344,102 427,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 484,102 564,126 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 615,102 745,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -6767769d5450121954ad1a25d4f8bdbe \ No newline at end of file +d48309764568bd4761e530071d6b46b2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.png Binary file doc/doxygen/html/sdo_8c_2019db2a4d17e6d29c055cbae173e2b9_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.map --- a/doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -12,6 +12,7 @@ rect $sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694 196,530 290,554 rect $sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810 162,578 324,602 rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 386,140 506,164 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 768,191 848,215 rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 396,434 495,458 rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 567,434 674,458 rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 724,458 892,482 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -ffb43fee57112beca3daea5167b8246d \ No newline at end of file +097b64f9861e3efe74fe05d8644842ae \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.png Binary file doc/doxygen/html/sdo_8c_2a93a7c780472b1d8666d89aa270f661_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.map --- a/doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,8 @@ base referer -rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 205,5 333,29 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 206,5 334,29 rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 199,53 340,77 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 391,128 487,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 215,152 324,176 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 228,200 311,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 399,200 479,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 538,200 668,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -743dc1883d82bcdcd3a0ec7cc3dabfdb \ No newline at end of file +5fdb0ad77d521fb0166676090d2be0e3 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.png Binary file doc/doxygen/html/sdo_8c_4bb4b3cd35af7e7580cffde23e9d3270_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.map --- a/doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,7 +1,9 @@ base referer rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 247,103 388,127 -rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 445,5 573,29 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 446,5 574,29 rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 439,53 580,77 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 631,128 727,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 455,152 564,176 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 468,200 551,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 639,200 719,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 778,200 908,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -b9f530acaf8f3b14a379f7ed46b000e8 \ No newline at end of file +44e1870f49848e9785876453ac53352a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.png Binary file doc/doxygen/html/sdo_8c_542a5cdd20c00aa130a39fe68295e769_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.map --- a/doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -3,3 +3,5 @@ rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 200,54 320,78 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 369,6 465,30 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 376,54 459,78 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 516,54 596,78 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 647,54 777,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -0eb8c356a7e0e467aaa215bf47e347dc \ No newline at end of file +0596c0c7ac30d0f3a9a77f29be656adc \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.png Binary file doc/doxygen/html/sdo_8c_9309025e29b59e09026abcd3b45a5b61_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c__incl.map --- a/doc/doxygen/html/sdo_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $objacces_8h.html 144,299 238,323 +rect $sdo_8h.html 470,496 528,520 +rect $win32_2canfestival_8h.html 138,569 244,593 +rect $win32_2applicfg_8h.html 723,399 811,423 +rect $data_8h.html 314,299 378,323 +rect $def_8h.html 607,112 663,136 +rect $can_8h.html 470,544 528,568 +rect $objdictdef_8h.html 448,299 550,323 +rect $pdo_8h.html 470,203 528,227 +rect $states_8h.html 462,397 536,421 +rect $lifegrd_8h.html 460,251 538,275 +rect $sync_8h.html 466,107 532,131 +rect $nmtMaster_8h.html 446,155 552,179 +rect $config_8h.html 730,112 804,136 +rect $timer_8h.html 600,471 670,495 +rect $win32_2timerscfg_8h.html 718,545 816,569 +rect $can__driver_8h.html 294,569 398,593 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c__incl.md5 --- a/doc/doxygen/html/sdo_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -1df30fb9841a1cd1d15c9f0ff2be6060 \ No newline at end of file +12779db29a3133853ab33df67d2bfdd7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c__incl.png Binary file doc/doxygen/html/sdo_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.map --- a/doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,2 +1,4 @@ base referer rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 175,6 257,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 308,6 388,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 439,6 569,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -3ecf8029450f6a29664dbf8d01db8dc4 \ No newline at end of file +47aa803b7ad3cdedc5eb4e245566ff26 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.png Binary file doc/doxygen/html/sdo_8c_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.map --- a/doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,7 +1,9 @@ base referer rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 192,103 339,127 rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 395,5 523,29 -rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 388,53 530,77 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 388,53 529,77 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 580,128 676,152 -rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 404,152 514,176 -rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 418,200 500,224 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 404,152 513,176 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 417,200 500,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 588,200 668,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 727,200 857,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -df178112e080b0144468185c9a62356a \ No newline at end of file +2c407413fa6b38b901473fe13667db49 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.png Binary file doc/doxygen/html/sdo_8c_bc20ed246e00053dcf71faa8f45ee39c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_c6b5d7d1439d537da992a96644a1ca5d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8c_c6b5d7d1439d537da992a96644a1ca5d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 140,6 220,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 271,6 401,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_c6b5d7d1439d537da992a96644a1ca5d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8c_c6b5d7d1439d537da992a96644a1ca5d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +dabcb23631009778917b4fa499c0e53b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_c6b5d7d1439d537da992a96644a1ca5d_cgraph.png Binary file doc/doxygen/html/sdo_8c_c6b5d7d1439d537da992a96644a1ca5d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.map --- a/doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,7 +1,9 @@ base referer -rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 251,103 397,127 -rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 453,5 581,29 +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 251,103 398,127 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 454,5 582,29 rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 447,53 588,77 rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 639,128 735,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 463,152 572,176 rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 476,200 559,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 647,200 727,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 786,200 916,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.md5 --- a/doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -9a7f4be149ebf0ad81d000770fdbdea2 \ No newline at end of file +9ce2687b98fa907011f3ddc226b61ad3 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.png Binary file doc/doxygen/html/sdo_8c_f4ec05293fb8971a1b282994498ed4f5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,167 @@ + + +CanFestival: include/sdo.h Source File + + + + + + + +

    sdo.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __sdo_h__
    +00024 #define __sdo_h__
    +00025 
    +00026 struct struct_s_transfer;
    +00027 
    +00028 #include "timer.h"
    +00029 
    +00030 typedef void (*SDOCallback_t)(CO_Data* d, UNS8 nodeId);
    +00031 
    +00032 /* The Transfer structure
    +00033 Used to store the different segments of 
    +00034  - a SDO received before writing in the dictionary  
    +00035  - the reading of the dictionary to put on a SDO to transmit 
    +00036 */
    +00037 
    +00038 struct struct_s_transfer {
    +00039   UNS8           nodeId;     /*own ID if server, or node ID of the server if client */
    +00040   
    +00041   UNS8           whoami;     /* Takes the values SDO_CLIENT or SDO_SERVER */
    +00042   UNS8           state;      /* state of the transmission : Takes the values SDO_... */
    +00043   UNS8           toggle;
    +00044   UNS32          abortCode;  /* Sent or received */
    +00045   /* index and subindex of the dictionary where to store */
    +00046   /* (for a received SDO) or to read (for a transmit SDO) */
    +00047   UNS16          index; 
    +00048   UNS8           subIndex; 
    +00049   UNS32          count;      /* Number of data received or to be sent. */
    +00050   UNS32          offset;     /* stack pointer of data[]
    +00051                               * Used only to tranfer part of a line to or from a SDO.
    +00052                               * offset is always pointing on the next free cell of data[].
    +00053                               * WARNING s_transfer.data is subject to ENDIANISATION 
    +00054                               * (with respect to CANOPEN_BIG_ENDIAN)
    +00055                               */
    +00056   UNS8           data [SDO_MAX_LENGTH_TRANSFERT];
    +00057   UNS8           dataType;   /* Defined in objdictdef.h Value is visible_string 
    +00058                               * if it is a string, any other value if it is not a string, 
    +00059                               * like 0. In fact, it is used only if client.
    +00060                               */
    +00061   TIMER_HANDLE   timer;      /* Time counter to implement a timeout in milliseconds.
    +00062                               * It is automatically incremented whenever 
    +00063                               * the line state is in SDO_DOWNLOAD_IN_PROGRESS or 
    +00064                               * SDO_UPLOAD_IN_PROGRESS, and reseted to 0 
    +00065                               * when the response SDO have been received.
    +00066                               */
    +00067   SDOCallback_t Callback;   /* The user callback func to be called at SDO transaction end */
    +00068 };
    +00069 typedef struct struct_s_transfer s_transfer;
    +00070   
    +00071 
    +00072 #include "data.h"
    +00073 
    +00074 /* The 8 bytes data of the SDO */
    +00075 struct BODY{
    +00076     UNS8 data[8];
    +00077 };
    +00078 
    +00079 /* The SDO structure ...*/
    +00080 struct struct_s_SDO {
    +00081   UNS8 nodeId;          /*in any case, Node ID of the server (case sender or receiver).*/
    +00082   struct BODY body;
    +00083 };
    +00084 
    +00085 
    +00086 typedef struct struct_s_SDO s_SDO;
    +00087 
    +00091 void SDOTimeoutAlarm(CO_Data* d, UNS32 id);
    +00092 
    +00095 void resetSDO (CO_Data* d);
    +00096 
    +00097 
    +00101 UNS32 SDOlineToObjdict (CO_Data* d, UNS8 line);
    +00102 
    +00106 UNS32 objdictToSDOline (CO_Data* d, UNS8 line);
    +00107 
    +00111 UNS8 lineToSDO (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8 * data);
    +00112 
    +00116 UNS8 SDOtoLine (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8 * data);
    +00117 
    +00126 UNS8 failedSDO (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS16 index, 
    +00127                 UNS8 subIndex, UNS32 abortCode);
    +00128 
    +00132 void resetSDOline (CO_Data* d, UNS8 line);
    +00133 
    +00137 UNS8 initSDOline (CO_Data* d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state);
    +00138 
    +00147 UNS8 getSDOfreeLine (CO_Data* d, UNS8 whoami, UNS8 *line);
    +00148 
    +00156 UNS8 getSDOlineOnUse (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS8 *line);
    +00157 
    +00162 UNS8 closeSDOtransfer (CO_Data* d, UNS8 nodeId, UNS8 whoami);
    +00163 
    +00168 UNS8 getSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 * nbBytes);
    +00169 
    +00174 UNS8 setSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 nbBytes);
    +00175 
    +00182 UNS8 sendSDO (CO_Data* d, UNS8 whoami, s_SDO sdo);
    +00183 
    +00191 UNS8 sendSDOabort (CO_Data* d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode);
    +00192 
    +00200 UNS8 proceedSDO (CO_Data* d, Message *m);
    +00201 
    +00210 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +00211                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data); 
    +00216 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +00217                        UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback);
    +00225 UNS8 readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, 
    +00226                       UNS8 subIndex, UNS8 dataType);
    +00227                        
    +00232 UNS8 readNetworkDictCallback (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback);
    +00233 
    +00249 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data, 
    +00250                                UNS8 *size, UNS32 * abortCode);
    +00251 
    +00268 UNS8 getWriteResultNetworkDict (CO_Data* d, UNS8 nodeId, UNS32 * abortCode);
    +00269 
    +00270 
    +00271  
    +00272 
    +00273 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1609 @@ + + +CanFestival: include/sdo.h File Reference + + + + + + + +

    sdo.h File Reference

    #include "timer.h"
    +#include "data.h"
    + +

    +Include dependency graph for sdo.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  struct_s_transfer
    struct  BODY
    struct  struct_s_SDO

    Typedefs

    typedef void(*) SDOCallback_t (CO_Data *d, UNS8 nodeId)
    typedef struct_s_transfer s_transfer
    typedef struct_s_SDO s_SDO

    Functions

    void SDOTimeoutAlarm (CO_Data *d, UNS32 id)
    void resetSDO (CO_Data *d)
    UNS32 SDOlineToObjdict (CO_Data *d, UNS8 line)
    UNS32 objdictToSDOline (CO_Data *d, UNS8 line)
    UNS8 lineToSDO (CO_Data *d, UNS8 line, UNS8 nbBytes, UNS8 *data)
    UNS8 SDOtoLine (CO_Data *d, UNS8 line, UNS8 nbBytes, UNS8 *data)
    UNS8 failedSDO (CO_Data *d, UNS8 nodeId, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    void resetSDOline (CO_Data *d, UNS8 line)
    UNS8 initSDOline (CO_Data *d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state)
    UNS8 getSDOfreeLine (CO_Data *d, UNS8 whoami, UNS8 *line)
    UNS8 getSDOlineOnUse (CO_Data *d, UNS8 nodeId, UNS8 whoami, UNS8 *line)
    UNS8 closeSDOtransfer (CO_Data *d, UNS8 nodeId, UNS8 whoami)
    UNS8 getSDOlineRestBytes (CO_Data *d, UNS8 line, UNS8 *nbBytes)
    UNS8 setSDOlineRestBytes (CO_Data *d, UNS8 line, UNS8 nbBytes)
    UNS8 sendSDO (CO_Data *d, UNS8 whoami, s_SDO sdo)
    UNS8 sendSDOabort (CO_Data *d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode)
    UNS8 proceedSDO (CO_Data *d, Message *m)
    UNS8 writeNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data)
    UNS8 writeNetworkDictCallBack (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback)
    UNS8 readNetworkDict (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType)
    UNS8 readNetworkDictCallback (CO_Data *d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback)
    UNS8 getReadResultNetworkDict (CO_Data *d, UNS8 nodeId, void *data, UNS8 *size, UNS32 *abortCode)
    UNS8 getWriteResultNetworkDict (CO_Data *d, UNS8 nodeId, UNS32 *abortCode)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef struct struct_s_SDO s_SDO
    +
    +
    + +

    + +

    +Definition at line 86 of file sdo.h. +

    +

    + +

    +
    + + + + +
    typedef struct struct_s_transfer s_transfer
    +
    +
    + +

    + +

    +Definition at line 69 of file sdo.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) SDOCallback_t(CO_Data *d, UNS8 nodeId)
    +
    +
    + +

    + +

    +Definition at line 30 of file sdo.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 closeSDOtransfer (CO_Data d,
    UNS8  nodeId,
    UNS8  whoami 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + +
    d 
    nodeId 
    whoami 
    +
    +
    Returns:
    + +

    +Definition at line 439 of file sdo.c. +

    +References struct_s_timer_entry::d, getSDOlineOnUse(), MSG_WAR, resetSDOline(), and UNS8. +

    +Referenced by ReadSDO(), and TestMaster_post_TPDO(). +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 failedSDO (CO_Data d,
    UNS8  nodeId,
    UNS8  whoami,
    UNS16  index,
    UNS8  subIndex,
    UNS32  abortCode 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + +
    d 
    nodeId 
    whoami 
    index 
    subIndex 
    abortCode 
    +
    +
    Returns:
    + +

    +Definition at line 307 of file sdo.c. +

    +References struct_s_timer_entry::d, getSDOlineOnUse(), MSG_WAR, resetSDOline(), SDO_ABORTED_INTERNAL, SDO_CLIENT, SDO_SERVER, sendSDOabort(), struct_s_transfer::state, StopSDO_TIMER, struct_CO_Data::transfers, and UNS8. +

    +Referenced by proceedSDO(). +

    +Here is the call graph for this function:

    + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 getReadResultNetworkDict (CO_Data d,
    UNS8  nodeId,
    void *  data,
    UNS8 *  size,
    UNS32 *  abortCode 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + +
    d 
    nodeId 
    data 
    size 
    abortCode 
    +
    +
    Returns:
    + +

    +Definition at line 1532 of file sdo.c. +

    +References CANOPEN_BIG_ENDIAN, struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, struct_s_transfer::dataType, getSDOlineOnUse(), MSG_ERR, SDO_ABORTED_INTERNAL, SDO_CLIENT, SDO_FINISHED, struct_s_transfer::state, struct_CO_Data::transfers, UNS8, and visible_string. +

    +Referenced by ReadSDO(), and TestMaster_post_TPDO(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 getSDOfreeLine (CO_Data d,
    UNS8  whoami,
    UNS8 *  line 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + +
    d 
    whoami 
    line 
    +
    +
    Returns:
    + +

    +Definition at line 388 of file sdo.c. +

    +References struct_s_timer_entry::d, SDO_MAX_SIMULTANEOUS_TRANSFERTS, SDO_RESET, struct_s_transfer::state, struct_CO_Data::transfers, UNS8, and struct_s_transfer::whoami. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), and proceedSDO(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 getSDOlineOnUse (CO_Data d,
    UNS8  nodeId,
    UNS8  whoami,
    UNS8 *  line 
    )
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 getSDOlineRestBytes (CO_Data d,
    UNS8  line,
    UNS8 *  nbBytes 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + +
    d 
    line 
    nbBytes 
    +
    +
    Returns:
    + +

    +Definition at line 461 of file sdo.c. +

    +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::offset, struct_CO_Data::transfers, and UNS8. +

    +Referenced by proceedSDO(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 getWriteResultNetworkDict (CO_Data d,
    UNS8  nodeId,
    UNS32 *  abortCode 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + +
    d 
    nodeId 
    abortCode 
    +
    +
    Returns:
    + +

    +Definition at line 1573 of file sdo.c. +

    +References struct_s_transfer::abortCode, struct_s_timer_entry::d, getSDOlineOnUse(), MSG_ERR, SDO_ABORTED_INTERNAL, SDO_CLIENT, struct_s_transfer::state, struct_CO_Data::transfers, and UNS8. +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 initSDOline (CO_Data d,
    UNS8  line,
    UNS8  nodeId,
    UNS16  index,
    UNS8  subIndex,
    UNS8  state 
    )
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 lineToSDO (CO_Data d,
    UNS8  line,
    UNS8  nbBytes,
    UNS8 *  data 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + +
    d 
    line 
    nbBytes 
    data 
    +
    +
    Returns:
    + +

    +Definition at line 250 of file sdo.c. +

    +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, MSG_ERR, struct_s_transfer::offset, SDO_MAX_LENGTH_TRANSFERT, struct_CO_Data::transfers, and UNS8. +

    +Referenced by proceedSDO(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS32 objdictToSDOline (CO_Data d,
    UNS8  line 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    line 
    +
    +
    Returns:
    + +

    +Definition at line 209 of file sdo.c. +

    +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, getODentry(), struct_s_transfer::index, MSG_WAR, OD_SUCCESSFUL, struct_s_transfer::offset, struct_s_transfer::subIndex, struct_CO_Data::transfers, UNS32, and UNS8. +

    +Referenced by proceedSDO(). +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 readNetworkDict (CO_Data d,
    UNS8  nodeId,
    UNS16  index,
    UNS8  subIndex,
    UNS8  dataType 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + +
    d 
    nodeId 
    index 
    subIndex 
    dataType 
    +
    +
    Returns:
    + +

    +Definition at line 1499 of file sdo.c. +

    +References _readNetworkDict(), and struct_s_timer_entry::d. +

    +Referenced by ReadSDO(), and TestMaster_post_TPDO(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 readNetworkDictCallback (CO_Data d,
    UNS8  nodeId,
    UNS16  index,
    UNS8  subIndex,
    UNS8  dataType,
    SDOCallback_t  Callback 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + +
    d 
    nodeId 
    index 
    subIndex 
    dataType 
    Callback 
    +
    +
    Returns:
    + +

    +Definition at line 1516 of file sdo.c. +

    +References _readNetworkDict(), and struct_s_timer_entry::d. +

    +Here is the call graph for this function:

    + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void resetSDO (CO_Data d  ) 
    +
    +
    + +

    +Reset all sdo buffers

    +

    Parameters:
    + + +
    d 
    +
    + +

    +Definition at line 169 of file sdo.c. +

    +References struct_s_timer_entry::d, resetSDOline(), SDO_MAX_SIMULTANEOUS_TRANSFERTS, and UNS8. +

    +Referenced by switchCommunicationState(). +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    void resetSDOline (CO_Data d,
    UNS8  line 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    line 
    +
    + +

    +Definition at line 338 of file sdo.c. +

    +References struct_s_timer_entry::d, struct_s_transfer::data, initSDOline(), MSG_WAR, SDO_MAX_LENGTH_TRANSFERT, SDO_RESET, struct_CO_Data::transfers, and UNS8. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), closeSDOtransfer(), failedSDO(), proceedSDO(), resetSDO(), and SDOTimeoutAlarm(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS32 SDOlineToObjdict (CO_Data d,
    UNS8  line 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    line 
    +
    +
    Returns:
    + +

    +Definition at line 186 of file sdo.c. +

    +References struct_s_transfer::count, struct_s_timer_entry::d, struct_s_transfer::data, struct_s_transfer::index, MSG_WAR, OD_SUCCESSFUL, setODentry(), struct_s_transfer::subIndex, struct_CO_Data::transfers, UNS32, and UNS8. +

    +Referenced by proceedSDO(). +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    void SDOTimeoutAlarm (CO_Data d,
    UNS32  id 
    )
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 SDOtoLine (CO_Data d,
    UNS8  line,
    UNS8  nbBytes,
    UNS8 *  data 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + +
    d 
    line 
    nbBytes 
    data 
    +
    +
    Returns:
    + +

    +Definition at line 279 of file sdo.c. +

    +References struct_s_timer_entry::d, struct_s_transfer::data, MSG_ERR, struct_s_transfer::offset, SDO_MAX_LENGTH_TRANSFERT, struct_CO_Data::transfers, and UNS8. +

    +Referenced by proceedSDO(). +

    +

    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 sendSDOabort (CO_Data d,
    UNS8  whoami,
    UNS16  index,
    UNS8  subIndex,
    UNS32  abortCode 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + +
    d 
    whoami 
    index 
    subIndex 
    abortCode 
    +
    +
    Returns:
    + +

    +Definition at line 578 of file sdo.c. +

    +References struct_CO_Data::bDeviceNodeId, struct_s_SDO::body, struct_s_timer_entry::d, BODY::data, MSG_WAR, struct_s_SDO::nodeId, sendSDO(), and UNS8. +

    +Referenced by failedSDO(), and SDOTimeoutAlarm(). +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 setSDOlineRestBytes (CO_Data d,
    UNS8  line,
    UNS8  nbBytes 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + +
    d 
    line 
    nbBytes 
    +
    +
    Returns:
    + +

    +Definition at line 479 of file sdo.c. +

    +References struct_s_transfer::count, struct_s_timer_entry::d, MSG_ERR, SDO_MAX_LENGTH_TRANSFERT, and struct_CO_Data::transfers. +

    +Referenced by proceedSDO(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 writeNetworkDict (CO_Data d,
    UNS8  nodeId,
    UNS16  index,
    UNS8  subIndex,
    UNS8  count,
    UNS8  dataType,
    void *  data 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + + +
    d 
    nodeId 
    index 
    subIndex 
    count 
    dataType 
    data 
    +
    +
    Returns:
    + +

    +Definition at line 1368 of file sdo.c. +

    +References _writeNetworkDict(), and struct_s_timer_entry::d. +

    +Here is the call graph for this function:

    + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UNS8 writeNetworkDictCallBack (CO_Data d,
    UNS8  nodeId,
    UNS16  index,
    UNS8  subIndex,
    UNS8  count,
    UNS8  dataType,
    void *  data,
    SDOCallback_t  Callback 
    )
    +
    +
    + +

    +

    Parameters:
    + + + + + + + + + +
    d 
    nodeId 
    index 
    subIndex 
    count 
    dataType 
    data 
    Callback 
    +
    +
    Returns:
    + +

    +Definition at line 1388 of file sdo.c. +

    +References _writeNetworkDict(), and struct_s_timer_entry::d. +

    +Here is the call graph for this function:

    + + + + + + + + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:04 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_05b0c8eee1faee3c7a2f6e2ba3a16533_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_05b0c8eee1faee3c7a2f6e2ba3a16533_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 257,6 399,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_05b0c8eee1faee3c7a2f6e2ba3a16533_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_05b0c8eee1faee3c7a2f6e2ba3a16533_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +63f1906192f3bfd4bee126ed7fe5ab05 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_05b0c8eee1faee3c7a2f6e2ba3a16533_cgraph.png Binary file doc/doxygen/html/sdo_8h_05b0c8eee1faee3c7a2f6e2ba3a16533_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_0e102a0835e4115920cd406e80a8d135_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_0e102a0835e4115920cd406e80a8d135_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 191,103 332,127 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 390,5 518,29 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 383,53 524,77 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 575,128 671,152 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 399,152 508,176 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 412,200 495,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 583,200 663,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 722,200 852,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_0e102a0835e4115920cd406e80a8d135_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_0e102a0835e4115920cd406e80a8d135_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +15bb1abf0178295c41edaac84b06fa87 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_0e102a0835e4115920cd406e80a8d135_cgraph.png Binary file doc/doxygen/html/sdo_8h_0e102a0835e4115920cd406e80a8d135_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_1f4f07eccc4890a11ccf4f632da7740b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_1f4f07eccc4890a11ccf4f632da7740b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 140,6 250,30 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 300,6 396,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_1f4f07eccc4890a11ccf4f632da7740b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_1f4f07eccc4890a11ccf4f632da7740b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d0fd730ed7edd8d2968cab6ed969cc62 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_1f4f07eccc4890a11ccf4f632da7740b_cgraph.png Binary file doc/doxygen/html/sdo_8h_1f4f07eccc4890a11ccf4f632da7740b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2019db2a4d17e6d29c055cbae173e2b9_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_2019db2a4d17e6d29c055cbae173e2b9_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 145,6 287,30 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 161,54 271,78 +rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 156,102 276,126 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 337,54 433,78 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 344,102 427,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 484,102 564,126 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 615,102 745,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2019db2a4d17e6d29c055cbae173e2b9_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_2019db2a4d17e6d29c055cbae173e2b9_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d48309764568bd4761e530071d6b46b2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2019db2a4d17e6d29c055cbae173e2b9_cgraph.png Binary file doc/doxygen/html/sdo_8h_2019db2a4d17e6d29c055cbae173e2b9_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_29427a80fd1aeabff30bf0602fbc220f_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_29427a80fd1aeabff30bf0602fbc220f_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 191,6 289,30 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 340,6 447,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 497,6 665,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_29427a80fd1aeabff30bf0602fbc220f_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_29427a80fd1aeabff30bf0602fbc220f_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fe541b8d8b8ad642d91fd5b0006545ad \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_29427a80fd1aeabff30bf0602fbc220f_cgraph.png Binary file doc/doxygen/html/sdo_8h_29427a80fd1aeabff30bf0602fbc220f_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2a93a7c780472b1d8666d89aa270f661_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_2a93a7c780472b1d8666d89aa270f661_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,20 @@ +base referer +rect $sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9 199,140 287,164 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 375,190 516,214 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 391,91 500,115 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 572,66 668,90 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 579,191 662,215 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 179,290 307,314 +rect $sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f 160,338 326,362 +rect $sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065 198,386 288,410 +rect $sdo_8c.html#29427a80fd1aeabff30bf0602fbc220f 175,434 311,458 +rect $sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58 174,482 312,506 +rect $sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694 196,530 290,554 +rect $sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810 162,578 324,602 +rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 386,140 506,164 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 768,191 848,215 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 396,434 495,458 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 567,434 674,458 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 724,458 892,482 +rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 396,482 495,506 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 567,482 674,506 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2a93a7c780472b1d8666d89aa270f661_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_2a93a7c780472b1d8666d89aa270f661_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +097b64f9861e3efe74fe05d8644842ae \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2a93a7c780472b1d8666d89aa270f661_cgraph.png Binary file doc/doxygen/html/sdo_8h_2a93a7c780472b1d8666d89aa270f661_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2eb5309dca3a7363da5e5e7230b85d58_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_2eb5309dca3a7363da5e5e7230b85d58_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 192,6 291,30 +rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 339,6 445,30 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 495,6 663,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2eb5309dca3a7363da5e5e7230b85d58_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_2eb5309dca3a7363da5e5e7230b85d58_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1a26ce6cb528468e5ef9331c367142ae \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_2eb5309dca3a7363da5e5e7230b85d58_cgraph.png Binary file doc/doxygen/html/sdo_8h_2eb5309dca3a7363da5e5e7230b85d58_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_42d33be015d4c4c83c73f1f0e588f481_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_42d33be015d4c4c83c73f1f0e588f481_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 167,6 263,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_42d33be015d4c4c83c73f1f0e588f481_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_42d33be015d4c4c83c73f1f0e588f481_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +64afe778dff749b86d4daf70f25596a0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_42d33be015d4c4c83c73f1f0e588f481_cgraph.png Binary file doc/doxygen/html/sdo_8h_42d33be015d4c4c83c73f1f0e588f481_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_542a5cdd20c00aa130a39fe68295e769_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_542a5cdd20c00aa130a39fe68295e769_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $sdo_8c.html#4bb4b3cd35af7e7580cffde23e9d3270 247,103 388,127 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 446,5 574,29 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 439,53 580,77 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 631,128 727,152 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 455,152 564,176 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 468,200 551,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 639,200 719,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 778,200 908,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_542a5cdd20c00aa130a39fe68295e769_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_542a5cdd20c00aa130a39fe68295e769_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +44e1870f49848e9785876453ac53352a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_542a5cdd20c00aa130a39fe68295e769_cgraph.png Binary file doc/doxygen/html/sdo_8h_542a5cdd20c00aa130a39fe68295e769_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_555a772d3a88a29c495f33513f8b2d58_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_555a772d3a88a29c495f33513f8b2d58_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 196,6 338,30 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 212,54 322,78 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 388,54 484,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_555a772d3a88a29c495f33513f8b2d58_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_555a772d3a88a29c495f33513f8b2d58_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8341253992bff439c780e9372ce8b8e6 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_555a772d3a88a29c495f33513f8b2d58_cgraph.png Binary file doc/doxygen/html/sdo_8h_555a772d3a88a29c495f33513f8b2d58_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_8671e306873f19362c60bb50ab930d1d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_8671e306873f19362c60bb50ab930d1d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 260,6 401,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_8671e306873f19362c60bb50ab930d1d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_8671e306873f19362c60bb50ab930d1d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fde7774bcf31a60e57de4ca9a1ccd5c8 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_8671e306873f19362c60bb50ab930d1d_cgraph.png Binary file doc/doxygen/html/sdo_8h_8671e306873f19362c60bb50ab930d1d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_9309025e29b59e09026abcd3b45a5b61_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_9309025e29b59e09026abcd3b45a5b61_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,7 @@ +base referer +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 205,6 315,30 +rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 200,54 320,78 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 369,6 465,30 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 376,54 459,78 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 516,54 596,78 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 647,54 777,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_9309025e29b59e09026abcd3b45a5b61_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_9309025e29b59e09026abcd3b45a5b61_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +0596c0c7ac30d0f3a9a77f29be656adc \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_9309025e29b59e09026abcd3b45a5b61_cgraph.png Binary file doc/doxygen/html/sdo_8h_9309025e29b59e09026abcd3b45a5b61_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ +base referer +rect $dcf_8c.html 735,33 812,57 +rect $sdo_8c.html 733,107 813,131 +rect $data_8h.html 167,396 284,420 +rect $lifegrd_8c.html 723,784 824,808 +rect $sync_8c.html 729,421 817,445 +rect $unix_8c.html 700,483 847,507 +rect $objdict_8h.html 351,544 633,568 +rect $TestMasterSlave_2TestMaster_8h.html 348,592 636,616 +rect $TestSlave_8h.html 351,640 633,664 +rect $TestMasterMicroMod_2TestMaster_8h.html 333,688 651,712 +rect $win32test_8h.html 372,736 612,760 +rect $objacces_8h.html 419,107 565,131 +rect $lifegrd_8h.html 427,784 557,808 +rect $nmtMaster_8h.html 412,155 572,179 +rect $nmtSlave_8h.html 416,203 568,227 +rect $timer_8h.html 431,883 553,907 +rect $pdo_8h.html 435,251 549,275 +rect $states_8h.html 428,299 556,323 +rect $unix_2canfestival_8h.html 395,347 589,371 +rect $win32_2canfestival_8h.html 388,445 596,469 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +4f653317d611fedacc787a26ea50a2bc \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h__dep__incl.png Binary file doc/doxygen/html/sdo_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $timer_8h.html 165,148 235,172 +rect $data_8h.html 300,301 364,325 +rect $win32_2timerscfg_8h.html 283,8 381,32 +rect $win32_2applicfg_8h.html 585,277 673,301 +rect $def_8h.html 601,517 657,541 +rect $can_8h.html 453,301 512,325 +rect $objdictdef_8h.html 432,397 533,421 +rect $objacces_8h.html 436,349 529,373 +rect $pdo_8h.html 453,493 512,517 +rect $states_8h.html 445,445 520,469 +rect $lifegrd_8h.html 444,107 521,131 +rect $sync_8h.html 449,155 516,179 +rect $nmtMaster_8h.html 429,203 536,227 +rect $config_8h.html 732,517 807,541 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e553c5848a82e257cf764b33760bb028 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h__incl.png Binary file doc/doxygen/html/sdo_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 175,6 257,30 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 308,6 388,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 439,6 569,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +47aa803b7ad3cdedc5eb4e245566ff26 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.png Binary file doc/doxygen/html/sdo_8h_b26c3f2fb63d81055809d6ccaa785b7c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_bc20ed246e00053dcf71faa8f45ee39c_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_bc20ed246e00053dcf71faa8f45ee39c_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 192,103 339,127 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 395,5 523,29 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 388,53 529,77 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 580,128 676,152 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 404,152 513,176 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 417,200 500,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 588,200 668,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 727,200 857,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_bc20ed246e00053dcf71faa8f45ee39c_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_bc20ed246e00053dcf71faa8f45ee39c_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +2c407413fa6b38b901473fe13667db49 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_bc20ed246e00053dcf71faa8f45ee39c_cgraph.png Binary file doc/doxygen/html/sdo_8h_bc20ed246e00053dcf71faa8f45ee39c_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_c6b5d7d1439d537da992a96644a1ca5d_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_c6b5d7d1439d537da992a96644a1ca5d_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 140,6 220,30 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 271,6 401,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_c6b5d7d1439d537da992a96644a1ca5d_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_c6b5d7d1439d537da992a96644a1ca5d_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +dabcb23631009778917b4fa499c0e53b \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_c6b5d7d1439d537da992a96644a1ca5d_cgraph.png Binary file doc/doxygen/html/sdo_8h_c6b5d7d1439d537da992a96644a1ca5d_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_f4ec05293fb8971a1b282994498ed4f5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_f4ec05293fb8971a1b282994498ed4f5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 251,103 398,127 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 454,5 582,29 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 447,53 588,77 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 639,128 735,152 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 463,152 572,176 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 476,200 559,224 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 647,200 727,224 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 786,200 916,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_f4ec05293fb8971a1b282994498ed4f5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h_f4ec05293fb8971a1b282994498ed4f5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9ce2687b98fa907011f3ddc226b61ad3 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sdo_8h_f4ec05293fb8971a1b282994498ed4f5_cgraph.png Binary file doc/doxygen/html/sdo_8h_f4ec05293fb8971a1b282994498ed4f5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c-source.html --- a/doc/doxygen/html/states_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/states.c Source File +CanFestival: src/states.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/states.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    states.c

    Go to the documentation of this file.
    00001 /*
     00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
     00003 
     00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    @@ -36,51 +40,52 @@
     00019 License along with this library; if not, write to the Free Software
     00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     00021 */
    -00032 #include "states.h"
    -00033 #include "def.h"
    -00034 #include "dcf.h"
    -00035 #include "nmtSlave.h"
    +00032 #include "states.h"
    +00033 #include "def.h"
    +00034 #include "dcf.h"
    +00035 #include "nmtSlave.h"
     00036 
    -00044 void switchCommunicationState(CO_Data* d, 
    -00045         s_state_communication *newCommunicationState);
    +00044 void switchCommunicationState(CO_Data* d, 
    +00045         s_state_communication *newCommunicationState);
     00046         
    -00054 e_nodeState getState(CO_Data* d)
    +00054 e_nodeState getState(CO_Data* d)
     00055 {
    -00056   return d->nodeState;
    +00056   return d->nodeState;
     00057 }
     00058 
    -00065 void canDispatch(CO_Data* d, Message *m)
    +00065 void canDispatch(CO_Data* d, Message *m)
     00066 {
    -00067          switch(m->cob_id.w >> 7)
    +00067          switch(m->cob_id.w >> 7)
     00068         {
    -00069                 case SYNC:
    -00070                         if(d->CurrentCommunicationState.csSYNC)
    -00071                                 proceedSYNC(d,m);
    +00069                 case SYNC:
    +00070                         if(d->CurrentCommunicationState.csSYNC)
    +00071                                 proceedSYNC(d,m);
     00072                         break;
    -00074                 case PDO1tx:
    -00075                 case PDO1rx:
    -00076                 case PDO2tx:
    -00077                 case PDO2rx:
    -00078                 case PDO3tx:
    -00079                 case PDO3rx:
    -00080                 case PDO4tx:
    -00081                 case PDO4rx:
    -00082                         if (d->CurrentCommunicationState.csPDO)
    -00083                                 proceedPDO(d,m);
    +00073                 /* case TIME_STAMP: */
    +00074                 case PDO1tx:
    +00075                 case PDO1rx:
    +00076                 case PDO2tx:
    +00077                 case PDO2rx:
    +00078                 case PDO3tx:
    +00079                 case PDO3rx:
    +00080                 case PDO4tx:
    +00081                 case PDO4rx:
    +00082                         if (d->CurrentCommunicationState.csPDO)
    +00083                                 proceedPDO(d,m);
     00084                         break;
    -00085                 case SDOtx:
    -00086                 case SDOrx:
    -00087                         if (d->CurrentCommunicationState.csSDO)
    -00088                                 proceedSDO(d,m);
    +00085                 case SDOtx:
    +00086                 case SDOrx:
    +00087                         if (d->CurrentCommunicationState.csSDO)
    +00088                                 proceedSDO(d,m);
     00089                         break;
    -00090                 case NODE_GUARD:
    -00091                         if (d->CurrentCommunicationState.csHeartbeat)
    -00092                                 proceedNODE_GUARD(d,m);
    +00090                 case NODE_GUARD:
    +00091                         if (d->CurrentCommunicationState.csHeartbeat)
    +00092                                 proceedNODE_GUARD(d,m);
     00093                         break;
    -00094                 case NMT:
    -00095                         if (*(d->iam_a_slave))
    +00094                 case NMT:
    +00095                         if (*(d->iam_a_slave))
     00096                         {
    -00097                                 proceedNMTstateChange(d,m);
    +00097                                 proceedNMTstateChange(d,m);
     00098                         }
     00099         }
     00100 }
    @@ -97,139 +102,155 @@
     00111         }
     00112 #define None
     00113 
    -00120 void switchCommunicationState(CO_Data* d, s_state_communication *newCommunicationState)
    +00120 void switchCommunicationState(CO_Data* d, s_state_communication *newCommunicationState)
     00121 {
    -00122         StartOrStop(csSDO,      None,           resetSDO(d))
    -00123         StartOrStop(csSYNC,     startSYNC(d),           stopSYNC(d))
    -00124         StartOrStop(csHeartbeat,        heartbeatInit(d),       heartbeatStop(d))
    +00122         StartOrStop(csSDO,      None,           resetSDO(d))
    +00123         StartOrStop(csSYNC,     startSYNC(d),           stopSYNC(d))
    +00124         StartOrStop(csHeartbeat,        heartbeatInit(d),       heartbeatStop(d))
     00125 /*      StartOrStop(Emergency,,) */
     00126         StartOrStop(csPDO,      None,   None)
    -00127         StartOrStop(csBoot_Up,  None,   slaveSendBootUp(d))
    +00127         StartOrStop(csBoot_Up,  None,   slaveSendBootUp(d))
     00128 }
     00129 
    -00138 UNS8 setState(CO_Data* d, e_nodeState newState)
    +00138 UNS8 setState(CO_Data* d, e_nodeState newState)
     00139 {
    -00140         UNS16 wIndex = 0x1F22;
    -00141         const indextable *ptrTable;
    -00142         ODCallback_t *Callback;
    -00143         UNS32 errorCode;
    -00144         while(newState != d->nodeState){
    +00140         UNS16 wIndex = 0x1F22;
    +00141         const indextable *ptrTable;
    +00142         ODCallback_t *Callback;
    +00143         UNS32 errorCode;
    +00144         while(newState != d->nodeState){
     00145                 switch( newState ){
    -00146                         case Initialisation:
    +00146                         case Initialisation:
     00147                         {
    -00148                                 s_state_communication newCommunicationState = {1, 0, 0, 0, 0, 0};
    -00150                                 d->nodeState = Initialisation;
    -00151                                 newState = Pre_operational;
    -00152                                 switchCommunicationState(d, &newCommunicationState);
    -00154                                 (*d->initialisation)();
    +00148                                 s_state_communication newCommunicationState = {1, 0, 0, 0, 0, 0};
    +00149                                 /* This will force a second loop for the state switch */
    +00150                                 d->nodeState = Initialisation;
    +00151                                 newState = Pre_operational;
    +00152                                 switchCommunicationState(d, &newCommunicationState);
    +00153                                 /* call user app related state func. */
    +00154                                 (*d->initialisation)();
     00155                                 
     00156                         }
     00157                         break;
     00158                                                                 
    -00159                         case Pre_operational:
    +00159                         case Pre_operational:
     00160                         {
     00161                                 
    -00162                                 s_state_communication newCommunicationState = {0, 1, 1, 1, 1, 0};
    -00163                                 d->nodeState = Pre_operational;
    -00164                                 newState = Pre_operational;
    -00165                                 switchCommunicationState(d, &newCommunicationState);
    -00166                                 if (!(*(d->iam_a_slave)))
    +00162                                 s_state_communication newCommunicationState = {0, 1, 1, 1, 1, 0};
    +00163                                 d->nodeState = Pre_operational;
    +00164                                 newState = Pre_operational;
    +00165                                 switchCommunicationState(d, &newCommunicationState);
    +00166                                 if (!(*(d->iam_a_slave)))
     00167                                 {
    -00168                                         ptrTable =(*d->scanIndexOD)(wIndex, &errorCode, &Callback);
    +00168                                         ptrTable =(*d->scanIndexOD)(wIndex, &errorCode, &Callback);
     00169                                         
    -00170                                         if (errorCode != OD_SUCCESSFUL)
    +00170                                         if (errorCode != OD_SUCCESSFUL)
     00171                                                 {
    -00172                                                         (*d->preOperational)();
    +00172                                                         (*d->preOperational)();
     00173                                                 }
     00174                                         else
     00175                                                 {
    -00176                                                         UNS32 res;
    -00177                                                         res = decompo_dcf(d,0x01);
    +00176                                                         UNS32 res;
    +00177                                                         res = decompo_dcf(d,0x01);
     00178                                                 }                               
     00179                                 }
     00180                                 else 
     00181                                 {
    -00182                                         (*d->preOperational)();
    +00182                                         (*d->preOperational)();
     00183                                 }
     00184                         }
     00185                         break;
     00186                                                                 
    -00187                         case Operational:
    -00188                         if(d->nodeState == Initialisation) return 0xFF;
    +00187                         case Operational:
    +00188                         if(d->nodeState == Initialisation) return 0xFF;
     00189                         {
    -00190                                 s_state_communication newCommunicationState = {0, 1, 1, 1, 1, 1};
    -00191                                 d->nodeState = Operational;
    -00192                                 newState = Operational;
    -00193                                 switchCommunicationState(d, &newCommunicationState);
    -00194                                 (*d->operational)();
    +00190                                 s_state_communication newCommunicationState = {0, 1, 1, 1, 1, 1};
    +00191                                 d->nodeState = Operational;
    +00192                                 newState = Operational;
    +00193                                 switchCommunicationState(d, &newCommunicationState);
    +00194                                 (*d->operational)();
     00195                         }
     00196                         break;
     00197                                                 
    -00198                         case Stopped:
    -00199                         if(d->nodeState == Initialisation) return 0xFF;
    +00198                         case Stopped:
    +00199                         if(d->nodeState == Initialisation) return 0xFF;
     00200                         {
    -00201                                 s_state_communication newCommunicationState = {0, 0, 0, 0, 1, 0};
    -00202                                 d->nodeState = Stopped;
    -00203                                 newState = Stopped;
    -00204                                 switchCommunicationState(d, &newCommunicationState);
    -00205                                 (*d->stopped)();
    +00201                                 s_state_communication newCommunicationState = {0, 0, 0, 0, 1, 0};
    +00202                                 d->nodeState = Stopped;
    +00203                                 newState = Stopped;
    +00204                                 switchCommunicationState(d, &newCommunicationState);
    +00205                                 (*d->stopped)();
     00206                         }
     00207                         break;
     00208                         
     00209                         default:
     00210                                 return 0xFF;
    -00211                 }
    +00211                 }/* end switch case */
    +00212         
     00213         }
     00214         return 0;
     00215 }
     00216 
    -00224 UNS8 getNodeId(CO_Data* d)
    +00224 UNS8 getNodeId(CO_Data* d)
     00225 {
    -00226   return *d->bDeviceNodeId;
    +00226   return *d->bDeviceNodeId;
     00227 }
     00228 
    -00235 void setNodeId(CO_Data* d, UNS8 nodeId)
    +00235 void setNodeId(CO_Data* d, UNS8 nodeId)
     00236 {
    -00237   UNS16 offset = d->firstIndex->SDO_SVR;
    +00237   UNS16 offset = d->firstIndex->SDO_SVR;
     00238   if(offset){
    -00240       *(UNS32*)d->objdict[offset].pSubindex[1].pObject = 0x600 + nodeId;
    -00242       *(UNS32*)d->objdict[offset].pSubindex[2].pObject = 0x580 + nodeId;
    +00239       /* cob_id_client = 0x600 + nodeId; */
    +00240       *(UNS32*)d->objdict[offset].pSubindex[1].pObject = 0x600 + nodeId;
    +00241       /* cob_id_server = 0x580 + nodeId; */
    +00242       *(UNS32*)d->objdict[offset].pSubindex[2].pObject = 0x580 + nodeId;
    +00243       /* node Id client. As we do not know the value, we put the node Id Server */
    +00244       /* *(UNS8*)d->objdict[offset].pSubindex[3].pObject = nodeId; */
     00245   }
     00246 
    +00247   /* 
    +00248         Initialize the server(s) SDO parameters
    +00249         Remember that only one SDO server is allowed, defined at index 0x1200   
    +00250                 
    +00251         Initialize the client(s) SDO parameters         
    +00252         Nothing to initialize (no default values required by the DS 401)        
    +00253         Initialize the receive PDO communication parameters. Only for 0x1400 to 0x1403 
    +00254   */
     00255   {
    -00256     UNS8 i = 0;
    -00257     UNS16 offset = d->firstIndex->PDO_RCV;
    -00258     UNS16 lastIndex = d->lastIndex->PDO_RCV;
    -00259     UNS32 cobID[] = {0x200, 0x300, 0x400, 0x500};
    +00256     UNS8 i = 0;
    +00257     UNS16 offset = d->firstIndex->PDO_RCV;
    +00258     UNS16 lastIndex = d->lastIndex->PDO_RCV;
    +00259     UNS32 cobID[] = {0x200, 0x300, 0x400, 0x500};
     00260     if( offset ) while( (offset <= lastIndex) && (i < 4)) {
     00261       //if(*(UNS32*)d->objdict[offset].pSubindex[1].pObject == cobID[i] + *d->bDeviceNodeId)
    -00262               *(UNS32*)d->objdict[offset].pSubindex[1].pObject = cobID[i] + nodeId;
    +00262               *(UNS32*)d->objdict[offset].pSubindex[1].pObject = cobID[i] + nodeId;
     00263       i ++;
     00264       offset ++;
     00265     }
     00266   }
     00267   /* ** Initialize the transmit PDO communication parameters. Only for 0x1800 to 0x1803 */
     00268   {
    -00269     UNS8 i = 0;
    -00270     UNS16 offset = d->firstIndex->PDO_TRS;
    -00271     UNS16 lastIndex = d->lastIndex->PDO_TRS;
    -00272     UNS32 cobID[] = {0x180, 0x280, 0x380, 0x480};
    +00269     UNS8 i = 0;
    +00270     UNS16 offset = d->firstIndex->PDO_TRS;
    +00271     UNS16 lastIndex = d->lastIndex->PDO_TRS;
    +00272     UNS32 cobID[] = {0x180, 0x280, 0x380, 0x480};
     00273     i = 0;
     00274     if( offset ) while ((offset <= lastIndex) && (i < 4)) {
     00275       //if(*(UNS32*)d->objdict[offset].pSubindex[1].pObject == cobID[i] + *d->bDeviceNodeId)
    -00276               *(UNS32*)d->objdict[offset].pSubindex[1].pObject = cobID[i] + nodeId;
    +00276               *(UNS32*)d->objdict[offset].pSubindex[1].pObject = cobID[i] + nodeId;
     00277       i ++;
     00278       offset ++;
     00279     }
     00280   }
    -00282   *d->bDeviceNodeId = nodeId;
    +00281   /* bDeviceNodeId is defined in the object dictionary. */
    +00282   *d->bDeviceNodeId = nodeId;
     00283 }
     00284 
    -00285 void _initialisation(){}
    -00286 void _preOperational(){}
    -00287 void _operational(){}
    -00288 void _stopped(){}
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +00285 void _initialisation(){} +00286 void _preOperational(){} +00287 void _operational(){} +00288 void _stopped(){} +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c.html --- a/doc/doxygen/html/states_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/states.c File Reference +CanFestival: src/states.c File Reference @@ -8,20 +8,43 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/states.c File Reference

    #include "states.h"
    -#include "def.h"
    -#include "dcf.h"
    -#include "nmtSlave.h"
    - -

    -Include dependency graph for states.c:

    + +

    states.c File Reference

    #include "states.h"
    +#include "def.h"
    +#include "dcf.h"
    +#include "nmtSlave.h"
    + +

    +Include dependency graph for states.c:

    + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. @@ -32,17 +55,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -101,13 +124,13 @@

    -Value:

    if(newCommunicationState->CommType && !d->CurrentCommunicationState.CommType){\
    -                MSG_WAR(0x9999,#FuncStart, 9999);\
    -                d->CurrentCommunicationState.CommType = 1;\
    +Value:
    if(newCommunicationState->CommType && !d->CurrentCommunicationState.CommType){\
    +                MSG_WAR(0x9999,#FuncStart, 9999);\
    +                d->CurrentCommunicationState.CommType = 1;\
                     FuncStart;\
    -        }else if(!newCommunicationState->CommType && d->CurrentCommunicationState.CommType){\
    -                MSG_WAR(0x9999,#FuncStop, 9999);\
    -                d->CurrentCommunicationState.CommType = 0;\
    +        }else if(!newCommunicationState->CommType && d->CurrentCommunicationState.CommType){\
    +                MSG_WAR(0x9999,#FuncStop, 9999);\
    +                d->CurrentCommunicationState.CommType = 0;\
                     FuncStop;\
             }
     
    @@ -125,6 +148,7 @@
    + @@ -146,6 +170,7 @@ + @@ -167,6 +192,7 @@ + @@ -188,6 +214,7 @@ + @@ -209,13 +236,13 @@ - + - + @@ -236,43 +263,40 @@

    -case TIME_STAMP: -

    Definition at line 65 of file states.c.

    -References proceedNMTstateChange(), proceedNODE_GUARD(), proceedPDO(), proceedSDO(), and proceedSYNC(). +References Message::cob_id, s_state_communication::csHeartbeat, s_state_communication::csPDO, s_state_communication::csSDO, s_state_communication::csSYNC, struct_CO_Data::CurrentCommunicationState, struct_s_timer_entry::d, struct_CO_Data::iam_a_slave, NMT, NODE_GUARD, PDO1rx, PDO1tx, PDO2rx, PDO2tx, PDO3rx, PDO3tx, PDO4rx, PDO4tx, proceedNMTstateChange(), proceedNODE_GUARD(), proceedPDO(), proceedSDO(), proceedSYNC(), SDOrx, SDOtx, SYNC, and SHORT_CAN::w. +

    +Referenced by canReceiveLoop(), and main().

    Here is the call graph for this function:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -284,7 +308,7 @@ - + @@ -303,6 +327,10 @@

    Definition at line 224 of file states.c. +

    +References struct_CO_Data::bDeviceNodeId, and struct_s_timer_entry::d. +

    +Referenced by initSensor().

    @@ -310,9 +338,9 @@

    #define None

    Functions

    void switchCommunicationState (CO_Data *d, s_state_communication *newCommunicationState)
    e_nodeState getState (CO_Data *d)
    void canDispatch (CO_Data *d, Message *m)
    UNS8 setState (CO_Data *d, e_nodeState newState)
    UNS8 getNodeId (CO_Data *d)
    void setNodeId (CO_Data *d, UNS8 nodeId)
    void switchCommunicationState (CO_Data *d, s_state_communication *newCommunicationState)
    e_nodeState getState (CO_Data *d)
    void canDispatch (CO_Data *d, Message *m)
    UNS8 setState (CO_Data *d, e_nodeState newState)
    UNS8 getNodeId (CO_Data *d)
    void setNodeId (CO_Data *d, UNS8 nodeId)
    void _initialisation ()
    void _initialisation (void   ) 
    void _operational (void   ) 
    void _preOperational (void   ) 
    void _stopped (void   ) 
    void canDispatch (CO_Data * CO_Data d,
    Message * Message m 
    UNS8 getNodeId (CO_Data * CO_Data d  ) 
    - - - + + + @@ -331,6 +359,8 @@

    Definition at line 54 of file states.c. +

    +References struct_s_timer_entry::d, and struct_CO_Data::nodeState.

    @@ -340,7 +370,7 @@

    - + @@ -367,15 +397,11 @@

    -cob_id_client = 0x600 + nodeId;

    -cob_id_server = 0x580 + nodeId;

    -node Id client. As we do not know the value, we put the node Id Server

    -*(UNS8*)d->objdict[offset].pSubindex[3].pObject = nodeId;

    -Initialize the server(s) SDO parameters Remember that only one SDO server is allowed, defined at index 0x1200

    -Initialize the client(s) SDO parameters Nothing to initialize (no default values required by the DS 401) Initialize the receive PDO communication parameters. Only for 0x1400 to 0x1403

    -bDeviceNodeId is defined in the object dictionary. -

    Definition at line 235 of file states.c. +

    +References struct_CO_Data::bDeviceNodeId, struct_s_timer_entry::d, struct_CO_Data::firstIndex, struct_CO_Data::lastIndex, struct_CO_Data::objdict, s_quick_index::PDO_RCV, s_quick_index::PDO_TRS, td_subindex::pObject, td_indextable::pSubindex, s_quick_index::SDO_SVR, UNS16, UNS32, and UNS8. +

    +Referenced by InitNodes(), initSensor(), and main().

    @@ -385,13 +411,13 @@

    - + - + @@ -413,39 +439,36 @@
    Returns:

    -This will force a second loop for the state switch

    -call user app related state func.

    -end switch case -

    Definition at line 138 of file states.c.

    -References decompo_dcf(), ptrTable, and switchCommunicationState(). -

    -Referenced by proceedNMTstateChange(). +References struct_s_timer_entry::d, decompo_dcf(), struct_CO_Data::iam_a_slave, Initialisation, struct_CO_Data::initialisation, struct_CO_Data::nodeState, OD_SUCCESSFUL, Operational, struct_CO_Data::operational, Pre_operational, struct_CO_Data::preOperational, ptrTable, struct_CO_Data::scanIndexOD, Stopped, struct_CO_Data::stopped, switchCommunicationState(), UNS16, and UNS32. +

    +Referenced by InitNodes(), main(), and proceedNMTstateChange().

    Here is the call graph for this function:

    - - - + + + - - + + - - - + + + + - - - - - - - - - - + + + + + + + + + + @@ -457,13 +480,13 @@ - + - + @@ -486,31 +509,32 @@

    Definition at line 120 of file states.c.

    -References heartbeatInit(), heartbeatStop(), None, resetSDO(), slaveSendBootUp(), StartOrStop, startSYNC(), and stopSYNC(). +References struct_s_timer_entry::d, heartbeatInit(), heartbeatStop(), None, resetSDO(), slaveSendBootUp(), StartOrStop, startSYNC(), and stopSYNC().

    Referenced by setState().

    Here is the call graph for this function:

    - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

    -


    Generated on Tue Jun 5 18:32:10 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:15 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.map --- a/doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,22 +1,23 @@ base referer -rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 181,153 293,177 -rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 135,249 340,273 -rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 389,104 536,128 +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 181,226 293,250 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 135,347 340,371 +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 389,152 536,176 rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 629,104 757,128 -rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 623,152 764,176 -rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 863,104 959,128 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 623,6 764,30 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 863,128 959,152 rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 639,200 748,224 -rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 652,56 735,80 -rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 408,347 517,371 -rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 852,273 969,297 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 652,152 735,176 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 871,250 951,274 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 408,539 517,563 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 852,659 969,683 rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 420,200 505,224 -rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 392,152 533,176 -rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 419,539 507,563 -rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 649,635 737,659 -rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 597,395 789,419 -rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 585,299 801,323 -rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 601,347 785,371 -rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 587,443 800,467 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 652,491 735,515 -rect $sync_8c.html#82595787f641ab85980d83522f1158b0 604,539 783,563 -rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 647,587 740,611 +rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 392,274 533,298 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 419,347 507,371 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 649,395 737,419 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 597,587 789,611 +rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 585,635 801,659 +rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 601,539 785,563 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 587,491 800,515 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 652,443 735,467 +rect $sync_8c.html#82595787f641ab85980d83522f1158b0 604,299 783,323 +rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 647,347 740,371 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.md5 --- a/doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -3f318f4d46f0826d236cc8c1da7ce928 \ No newline at end of file +e11f20c59bbeff8065737d6e65290fa2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.png Binary file doc/doxygen/html/states_8c_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.map --- a/doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,30 +1,27 @@ base referer -rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 162,65 351,89 -rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 171,148 342,172 -rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 446,269 550,293 -rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 203,557 310,581 -rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 442,221 554,245 -rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 459,29 536,53 -rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 691,53 803,77 -rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 644,5 850,29 -rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 402,77 594,101 -rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 456,125 539,149 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 456,173 539,197 -rect $pdo_8c.html#e468510c9f77f502207d961d26389918 707,221 787,245 -rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 698,317 796,341 -rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 706,269 788,293 -rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 698,413 796,437 -rect $objacces_8c.html#72f69950be4a1352fc78648c71454820 899,413 1006,437 -rect $sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9 454,707 542,731 -rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 676,657 818,681 -rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 692,756 802,780 -rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 904,805 1000,829 -rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 911,656 994,680 -rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 434,805 562,829 -rect $sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f 415,365 580,389 -rect $sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065 452,413 543,437 -rect $sdo_8c.html#29427a80fd1aeabff30bf0602fbc220f 430,317 566,341 -rect $sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58 428,461 567,485 -rect $sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694 451,509 544,533 -rect $sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810 416,557 579,581 -rect $sdo_8c.html#b26c3f2fb63d81055809d6ccaa785b7c 687,705 807,729 +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 162,153 351,177 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 171,736 342,760 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 446,688 550,712 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 203,349 310,373 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 442,880 554,904 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 459,5 536,29 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 675,543 755,567 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 402,736 594,760 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 456,784 539,808 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 456,832 539,856 +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 675,760 755,784 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 666,688 764,712 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 674,856 756,880 +rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 666,591 764,615 +rect $sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9 454,251 542,275 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 644,276 786,300 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 660,201 770,225 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 836,176 932,200 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 434,397 562,421 +rect $sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f 415,445 580,469 +rect $sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065 452,493 543,517 +rect $sdo_8c.html#29427a80fd1aeabff30bf0602fbc220f 430,640 566,664 +rect $sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58 428,541 567,565 +rect $sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694 451,53 544,77 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 456,349 539,373 +rect $sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810 416,101 579,125 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.md5 --- a/doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -bdfcd1a4b9740995ed742f0ee037e627 \ No newline at end of file +64c740b84f1bd2a80fe6a5c17e60245a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.png Binary file doc/doxygen/html/states_8c_3f8975650604cc23582f19a43fd4e518_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.map --- a/doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,15 +1,16 @@ base referer -rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 278,152 387,176 -rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 719,56 836,80 -rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 290,395 375,419 -rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 262,443 403,467 -rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 288,296 376,320 -rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 516,392 604,416 -rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 464,56 656,80 -rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 452,104 668,128 -rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 468,152 652,176 -rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 454,200 667,224 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 519,248 602,272 -rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 506,440 615,464 -rect $sync_8c.html#82595787f641ab85980d83522f1158b0 471,296 650,320 -rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 514,344 607,368 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 278,203 387,227 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 719,57 836,81 +rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 290,479 375,503 +rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 262,105 403,129 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 288,347 376,371 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 516,443 604,467 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 464,155 656,179 +rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 452,107 668,131 +rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 468,203 652,227 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 454,299 667,323 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 519,251 602,275 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 738,129 818,153 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 506,491 615,515 +rect $sync_8c.html#82595787f641ab85980d83522f1158b0 471,395 650,419 +rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 514,347 607,371 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.md5 --- a/doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -49797ea4610346e5d195b9beb5559c3a \ No newline at end of file +8aeb46dad9c85f2e0f298bcc34bf8978 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.png Binary file doc/doxygen/html/states_8c_915991eebf7c2ac6c929c6c9cfbd7d03_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c__incl.map --- a/doc/doxygen/html/states_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $states_8h.html 164,419 239,443 +rect $def_8h.html 575,639 631,663 +rect $dcf_8h.html 175,739 228,763 +rect $nmtSlave_8h.html 152,371 251,395 +rect $win32_2applicfg_8h.html 691,392 779,416 +rect $data_8h.html 300,419 364,443 +rect $can_8h.html 574,392 632,416 +rect $objdictdef_8h.html 416,197 518,221 +rect $objacces_8h.html 420,443 514,467 +rect $sdo_8h.html 438,491 496,515 +rect $pdo_8h.html 438,589 496,613 +rect $lifegrd_8h.html 428,149 506,173 +rect $sync_8h.html 434,245 500,269 +rect $nmtMaster_8h.html 414,293 520,317 +rect $config_8h.html 698,639 772,663 +rect $timer_8h.html 568,491 638,515 +rect $win32_2timerscfg_8h.html 686,484 784,508 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c__incl.md5 --- a/doc/doxygen/html/states_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/states_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -dccd6c80ebf03739c1079fb27082ca1b \ No newline at end of file +b3eb487259e4123f8965e42001f84bb2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8c__incl.png Binary file doc/doxygen/html/states_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,113 @@ + + +CanFestival: include/states.h Source File + + + + + + + +

    states.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __states_h__
    +00024 #define __states_h__
    +00025 
    +00026 #include <applicfg.h>
    +00027 
    +00028 /* The nodes states 
    +00029  * -----------------
    +00030  * values are choosen so, that they can be sent directly
    +00031  * for heartbeat messages...
    +00032  * Must be coded on 7 bits only
    +00033  * */
    +00034 /* Should not be modified */
    +00035 enum enum_nodeState {
    +00036   Initialisation  = 0x00, 
    +00037   Disconnected    = 0x01,
    +00038   Connecting      = 0x02,
    +00039   Preparing       = 0x02,
    +00040   Stopped         = 0x04,
    +00041   Operational     = 0x05,
    +00042   Pre_operational = 0x7F,
    +00043   Unknown_state   = 0x0F
    +00044 };
    +00045 
    +00046 typedef enum enum_nodeState e_nodeState;
    +00047 
    +00048 typedef struct
    +00049 {
    +00050         UNS8 csBoot_Up;
    +00051         UNS8 csSDO;
    +00052         UNS8 csEmergency;
    +00053         UNS8 csSYNC;
    +00054         UNS8 csHeartbeat;
    +00055         UNS8 csPDO;
    +00056 } s_state_communication;
    +00057 
    +00061 typedef void (*initialisation_t)(void);
    +00062 typedef void (*preOperational_t)(void);
    +00063 typedef void (*operational_t)(void);
    +00064 typedef void (*stopped_t)(void);
    +00065 
    +00066 void _initialisation(void);
    +00067 void _preOperational(void);
    +00068 void _operational(void);
    +00069 void _stopped(void);
    +00070 
    +00071 #include "data.h"
    +00072 
    +00073 /************************* prototypes ******************************/
    +00074 
    +00077 void canDispatch(CO_Data* d, Message *m);
    +00078 
    +00081 e_nodeState getState (CO_Data* d);
    +00082 
    +00085 UNS8 setState (CO_Data* d, e_nodeState newState);
    +00086 
    +00089 UNS8 getNodeId (CO_Data* d);
    +00090 
    +00093 void setNodeId (CO_Data* d, UNS8 nodeId);
    +00094 
    +00098 /* void initResetMode (CO_Data* d); */
    +00099 
    +00100 
    +00104 void initPreOperationalMode (CO_Data* d);
    +00105 
    +00106 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,603 @@ + + +CanFestival: include/states.h File Reference + + + + + + + +

    states.h File Reference

    #include <applicfg.h>
    +#include "data.h"
    + +

    +Include dependency graph for states.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file.

    e_nodeState getState (CO_Data * e_nodeState getState (CO_Data d  ) 
    void setNodeId (CO_Data * CO_Data d,
    UNS8 setState (CO_Data * CO_Data d,
    e_nodeState e_nodeState  newState 
    void switchCommunicationState (CO_Data * CO_Data d,
    s_state_communication * s_state_communication newCommunicationState 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  s_state_communication

    Typedefs

    typedef enum enum_nodeState e_nodeState
    typedef void(*) initialisation_t (void)
    typedef void(*) preOperational_t (void)
    typedef void(*) operational_t (void)
    typedef void(*) stopped_t (void)

    Enumerations

    enum  enum_nodeState {
    +  Initialisation = 0x00, +Disconnected = 0x01, +Connecting = 0x02, +Preparing = 0x02, +
    +  Stopped = 0x04, +Operational = 0x05, +Pre_operational = 0x7F, +Unknown_state = 0x0F +
    + }

    Functions

    void _initialisation (void)
    void _preOperational (void)
    void _operational (void)
    void _stopped (void)
    void canDispatch (CO_Data *d, Message *m)
    e_nodeState getState (CO_Data *d)
    UNS8 setState (CO_Data *d, e_nodeState newState)
    UNS8 getNodeId (CO_Data *d)
    void setNodeId (CO_Data *d, UNS8 nodeId)
    void initPreOperationalMode (CO_Data *d)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef enum enum_nodeState e_nodeState
    +
    +
    + +

    + +

    +Definition at line 46 of file states.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) initialisation_t(void)
    +
    +
    + +

    +Function that user app can overload +

    +Definition at line 61 of file states.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) operational_t(void)
    +
    +
    + +

    + +

    +Definition at line 63 of file states.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) preOperational_t(void)
    +
    +
    + +

    + +

    +Definition at line 62 of file states.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) stopped_t(void)
    +
    +
    + +

    + +

    +Definition at line 64 of file states.h. +

    +

    +


    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum enum_nodeState
    +
    +
    + +

    +

    Enumerator:
    + + + + + + + + + +
    Initialisation  +
    Disconnected  +
    Connecting  +
    Preparing  +
    Stopped  +
    Operational  +
    Pre_operational  +
    Unknown_state  +
    +
    + +

    +Definition at line 35 of file states.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void _initialisation (void   ) 
    +
    +
    + +

    + +

    +Definition at line 285 of file states.c. +

    +

    + +

    +
    + + + + + + + + + +
    void _operational (void   ) 
    +
    +
    + +

    + +

    +Definition at line 287 of file states.c. +

    +

    + +

    +
    + + + + + + + + + +
    void _preOperational (void   ) 
    +
    +
    + +

    + +

    +Definition at line 286 of file states.c. +

    +

    + +

    +
    + + + + + + + + + +
    void _stopped (void   ) 
    +
    +
    + +

    + +

    +Definition at line 288 of file states.c. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    void canDispatch (CO_Data d,
    Message m 
    )
    +
    + +

    + +

    +
    + + + + + + + + + +
    UNS8 getNodeId (CO_Data d  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    d 
    +
    +
    Returns:
    + +

    +Definition at line 224 of file states.c. +

    +References struct_CO_Data::bDeviceNodeId, and struct_s_timer_entry::d. +

    +Referenced by initSensor(). +

    +

    + +

    +
    + + + + + + + + + +
    e_nodeState getState (CO_Data d  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    d 
    +
    +
    Returns:
    + +

    +Definition at line 54 of file states.c. +

    +References struct_s_timer_entry::d, and struct_CO_Data::nodeState. +

    +

    + +

    +
    + + + + + + + + + +
    void initPreOperationalMode (CO_Data d  ) 
    +
    +
    + +

    +Some stuff to do when the node enter in pre-operational mode +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    void setNodeId (CO_Data d,
    UNS8  nodeId 
    )
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 setState (CO_Data d,
    e_nodeState  newState 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    newState 
    +
    +
    Returns:
    + +

    +Definition at line 138 of file states.c. +

    +References struct_s_timer_entry::d, decompo_dcf(), struct_CO_Data::iam_a_slave, struct_CO_Data::initialisation, Initialisation, struct_CO_Data::nodeState, OD_SUCCESSFUL, struct_CO_Data::operational, Operational, Pre_operational, struct_CO_Data::preOperational, ptrTable, struct_CO_Data::scanIndexOD, struct_CO_Data::stopped, Stopped, switchCommunicationState(), UNS16, and UNS32. +

    +Referenced by InitNodes(), main(), and proceedNMTstateChange(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:05 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,23 @@ +base referer +rect $dcf_8c.html#8452e163e7649968ad6dae1601a5fb0d 181,226 293,250 +rect $states_8c.html#915991eebf7c2ac6c929c6c9cfbd7d03 135,347 340,371 +rect $dcf_8c.html#3c07605ffe3ea197aa36e583ef87a20a 389,152 536,176 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 629,104 757,128 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 623,6 764,30 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 863,128 959,152 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 639,200 748,224 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 652,152 735,176 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 871,250 951,274 +rect $lifegrd_8c.html#8896f6846e4d020390f6953f3d98aa21 408,539 517,563 +rect $lifegrd_8c.html#1b73047269c2a02065e12af18c6053c7 852,659 969,683 +rect $sdo_8c.html#1f4f07eccc4890a11ccf4f632da7740b 420,200 505,224 +rect $nmtSlave_8c.html#aced28a97b2c256320dfde3c4b36a7d5 392,274 533,298 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 419,347 507,371 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 649,395 737,419 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 597,587 789,611 +rect $lifegrd_8c.html#098c81fb9326fb2c7b43e88a55ce1368 585,635 801,659 +rect $lifegrd_8c.html#626b7d9e527a898682d9122f91454de9 601,539 785,563 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 587,491 800,515 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 652,443 735,467 +rect $sync_8c.html#82595787f641ab85980d83522f1158b0 604,299 783,323 +rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 647,347 740,371 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e11f20c59bbeff8065737d6e65290fa2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.png Binary file doc/doxygen/html/states_8h_0a5004efd1dedbee82a4f21ec5c44fb5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h_3f8975650604cc23582f19a43fd4e518_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h_3f8975650604cc23582f19a43fd4e518_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,27 @@ +base referer +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 162,153 351,177 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 171,736 342,760 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 446,688 550,712 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 203,349 310,373 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 442,880 554,904 +rect $states_8c.html#0a5004efd1dedbee82a4f21ec5c44fb5 459,5 536,29 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 675,543 755,567 +rect $lifegrd_8c.html#e3cd4656f5b2a37d4b8d364293538198 402,736 594,760 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 456,784 539,808 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 456,832 539,856 +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 675,760 755,784 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 666,688 764,712 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 674,856 756,880 +rect $objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0 666,591 764,615 +rect $sdo_8c.html#2019db2a4d17e6d29c055cbae173e2b9 454,251 542,275 +rect $sdo_8c.html#bb0c376b048ab2c6e0524b135b62376f 644,276 786,300 +rect $sdo_8c.html#42d33be015d4c4c83c73f1f0e588f481 660,201 770,225 +rect $sdo_8c.html#b9c873a15f55b29112b5527a6cc6898d 836,176 932,200 +rect $sdo_8c.html#58d1f9691977617601beb9e5b4123252 434,397 562,421 +rect $sdo_8c.html#acceb714c6e457e98deb9ba164ba2a2f 415,445 580,469 +rect $sdo_8c.html#ad6eb8be03b832ebba4dfb87aaba4065 452,493 543,517 +rect $sdo_8c.html#29427a80fd1aeabff30bf0602fbc220f 430,640 566,664 +rect $sdo_8c.html#2eb5309dca3a7363da5e5e7230b85d58 428,541 567,565 +rect $sdo_8c.html#18b6f7e9c9441640a88ffef1e8720694 451,53 544,77 +rect $sdo_8c.html#c6b5d7d1439d537da992a96644a1ca5d 456,349 539,373 +rect $sdo_8c.html#601a837ecb5f21bf4c66b058c5ae7810 416,101 579,125 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h_3f8975650604cc23582f19a43fd4e518_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h_3f8975650604cc23582f19a43fd4e518_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +64c740b84f1bd2a80fe6a5c17e60245a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h_3f8975650604cc23582f19a43fd4e518_cgraph.png Binary file doc/doxygen/html/states_8h_3f8975650604cc23582f19a43fd4e518_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,21 @@ +base referer +rect $nmtSlave_8c.html 732,107 852,131 +rect $states_8c.html 743,33 841,57 +rect $data_8h.html 185,475 303,499 +rect $lifegrd_8c.html 741,300 843,324 +rect $sync_8c.html 748,375 836,399 +rect $unix_8c.html 719,436 865,460 +rect $objdict_8h.html 369,499 652,523 +rect $TestMasterSlave_2TestMaster_8h.html 367,547 655,571 +rect $TestSlave_8h.html 369,595 652,619 +rect $TestMasterMicroMod_2TestMaster_8h.html 352,643 669,667 +rect $win32test_8h.html 391,691 631,715 +rect $objacces_8h.html 437,739 584,763 +rect $lifegrd_8h.html 445,251 576,275 +rect $nmtMaster_8h.html 431,787 591,811 +rect $nmtSlave_8h.html 435,107 587,131 +rect $timer_8h.html 449,835 572,859 +rect $sdo_8h.html 736,896 848,920 +rect $pdo_8h.html 453,155 568,179 +rect $unix_2canfestival_8h.html 413,203 608,227 +rect $win32_2canfestival_8h.html 407,349 615,373 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7d630d1ac6d083bd4bc045e32b16fd5f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h__dep__incl.png Binary file doc/doxygen/html/states_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $win32_2applicfg_8h.html 576,323 664,347 +rect $data_8h.html 185,299 249,323 +rect $def_8h.html 460,448 516,472 +rect $can_8h.html 459,127 517,151 +rect $objdictdef_8h.html 301,107 403,131 +rect $objacces_8h.html 305,251 399,275 +rect $sdo_8h.html 323,496 381,520 +rect $pdo_8h.html 323,397 381,421 +rect $lifegrd_8h.html 313,299 391,323 +rect $sync_8h.html 319,155 385,179 +rect $nmtMaster_8h.html 299,203 405,227 +rect $config_8h.html 583,448 657,472 +rect $timer_8h.html 453,496 523,520 +rect $win32_2timerscfg_8h.html 571,496 669,520 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/states_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f3071531363c685c6c48ab77996af1ce \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/states_8h__incl.png Binary file doc/doxygen/html/states_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structBODY.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structBODY.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,59 @@ + + +CanFestival: BODY Struct Reference + + + + + + +

    BODY Struct Reference

    #include <sdo.h> +

    + + + + + +

    Data Fields

    UNS8 data [8]
    +


    Detailed Description

    + +

    + +

    +Definition at line 75 of file sdo.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 BODY::data[8]
    +
    +
    + +

    + +

    +Definition at line 76 of file sdo.h. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), sendSDO(), and sendSDOabort(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structCANPipe.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structCANPipe.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,76 @@ + + +CanFestival: CANPipe Struct Reference + + + + + + +

    CANPipe Struct Reference

    + + + + + + +

    Data Fields

    char used
    int pipe [2]
    +

    Detailed Description

    + +

    + +

    +Definition at line 35 of file can_virtual.c.


    Field Documentation

    + +
    +
    + + + + +
    char CANPipe::used
    +
    +
    + +

    + +

    +Definition at line 36 of file can_virtual.c. +

    +Referenced by canOpen_driver(). +

    +

    + +

    +
    + + + + +
    int CANPipe::pipe[2]
    +
    +
    + +

    + +

    +Definition at line 37 of file can_virtual.c. +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structCANPort.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structCANPort.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,130 @@ + + +CanFestival: CANPort Struct Reference + + + + + + +

    CANPort Struct Reference

    Collaboration diagram for CANPort:

    Collaboration graph
    + + + + + + + + + +
    [legend]
    + + + + + + + + + + +

    Data Fields

    char used
    CAN_HANDLE fd
    TASK_HANDLE receiveTask
    CO_Datad
    +

    Detailed Description

    + +

    + +

    +Definition at line 51 of file unix.c.


    Field Documentation

    + +
    +
    + + + + +
    char CANPort::used
    +
    +
    + +

    + +

    +Definition at line 52 of file unix.c. +

    +Referenced by canOpen(). +

    +

    + +

    +
    + + + + +
    CAN_HANDLE CANPort::fd
    +
    +
    + +

    + +

    +Definition at line 53 of file unix.c. +

    +Referenced by canClose(), and canOpen(). +

    +

    + +

    +
    + + + + +
    TASK_HANDLE CANPort::receiveTask
    +
    +
    + +

    + +

    +Definition at line 54 of file unix.c. +

    +Referenced by canClose(). +

    +

    + +

    +
    + + + + +
    CO_Data* CANPort::d
    +
    +
    + +

    + +

    +Definition at line 55 of file unix.c. +

    +Referenced by canOpen(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structCANPort__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structCANPort__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $structstruct__CO__Data.html 300,202 425,226 +rect $structtd__indextable.html 5,98 120,122 +rect $structtd__subindex.html 11,7 115,31 +rect $structs__quick__index.html 144,98 259,122 +rect $structstruct__s__process__var.html 283,98 443,122 +rect $structs__state__communication.html 467,98 648,122 +rect $structstruct__s__transfer.html 693,98 827,122 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structCANPort__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structCANPort__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +007ff94e59d43135eb7e0b183e86d37c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structCANPort__coll__graph.png Binary file doc/doxygen/html/structCANPort__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structMessage.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structMessage.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,126 @@ + + +CanFestival: Message Struct Reference + + + + + + +

    Message Struct Reference

    #include <can.h> +

    +Collaboration diagram for Message:

    Collaboration graph
    + + + +
    [legend]
    + + + + + + + + + + +

    Data Fields

    SHORT_CAN cob_id
    UNS8 rtr
    UNS8 len
    UNS8 data [8]
    +

    Detailed Description

    +Can message structure +

    + +

    +Definition at line 41 of file can.h.


    Field Documentation

    + +

    + +

    + +

    + +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structMessage__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structMessage__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $structSHORT__CAN.html 6,7 110,31 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structMessage__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structMessage__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +eb3c7ad16bc37bb2e6a01915c630a4f1 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structMessage__coll__graph.png Binary file doc/doxygen/html/structMessage__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structSHORT__CAN.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structSHORT__CAN.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,59 @@ + + +CanFestival: SHORT_CAN Struct Reference + + + + + + +

    SHORT_CAN Struct Reference

    #include <can.h> +

    + + + + + +

    Data Fields

    UNS32 w
    +


    Detailed Description

    +Used for the Can message structure +

    + +

    +Definition at line 35 of file can.h.


    Field Documentation

    + +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanBusFilterInit.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanBusFilterInit.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,395 @@ + + +CanFestival: canBusFilterInit Struct Reference + + + + + + +

    canBusFilterInit Struct Reference

    #include <candriver.h> +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Fields

    UNS8 idam
    UNS8 canidar0
    UNS8 canidmr0
    UNS8 canidar1
    UNS8 canidmr1
    UNS8 canidar2
    UNS8 canidmr2
    UNS8 canidar3
    UNS8 canidmr3
    UNS8 canidar4
    UNS8 canidmr4
    UNS8 canidar5
    UNS8 canidmr5
    UNS8 canidar6
    UNS8 canidmr6
    UNS8 canidar7
    UNS8 canidmr7
    +


    Detailed Description

    + +

    + +

    +Definition at line 111 of file candriver.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 canBusFilterInit::idam
    +
    +
    + +

    + +

    +Definition at line 112 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar0
    +
    +
    + +

    + +

    +Definition at line 113 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr0
    +
    +
    + +

    + +

    +Definition at line 114 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar1
    +
    +
    + +

    + +

    +Definition at line 115 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr1
    +
    +
    + +

    + +

    +Definition at line 116 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar2
    +
    +
    + +

    + +

    +Definition at line 117 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr2
    +
    +
    + +

    + +

    +Definition at line 118 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar3
    +
    +
    + +

    + +

    +Definition at line 119 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr3
    +
    +
    + +

    + +

    +Definition at line 120 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar4
    +
    +
    + +

    + +

    +Definition at line 121 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr4
    +
    +
    + +

    + +

    +Definition at line 122 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar5
    +
    +
    + +

    + +

    +Definition at line 123 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr5
    +
    +
    + +

    + +

    +Definition at line 124 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar6
    +
    +
    + +

    + +

    +Definition at line 125 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr6
    +
    +
    + +

    + +

    +Definition at line 126 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidar7
    +
    +
    + +

    + +

    +Definition at line 127 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusFilterInit::canidmr7
    +
    +
    + +

    + +

    +Definition at line 128 of file candriver.h. +

    +Referenced by canInitFilter(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanBusInit.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanBusInit.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,230 @@ + + +CanFestival: canBusInit Struct Reference + + + + + + +

    canBusInit Struct Reference

    #include <candriver.h> +

    +Collaboration diagram for canBusInit:

    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + +

    Data Fields

    UNS8 cswai
    UNS8 time
    UNS8 cane
    UNS8 clksrc
    UNS8 loopb
    UNS8 listen
    UNS8 wupm
    canBusTime clk
    canBusFilterInit fi
    +

    Detailed Description

    + +

    + +

    +Definition at line 153 of file candriver.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 canBusInit::cswai
    +
    +
    + +

    + +

    +Definition at line 154 of file candriver.h. +

    +Referenced by canInit(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusInit::time
    +
    +
    + +

    + +

    +Definition at line 155 of file candriver.h. +

    +Referenced by canInit(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusInit::cane
    +
    +
    + +

    + +

    +Definition at line 156 of file candriver.h. +

    +Referenced by canInit(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusInit::clksrc
    +
    +
    + +

    + +

    +Definition at line 157 of file candriver.h. +

    +

    + +

    +
    + + + + +
    UNS8 canBusInit::loopb
    +
    +
    + +

    + +

    +Definition at line 158 of file candriver.h. +

    +Referenced by canInit(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusInit::listen
    +
    +
    + +

    + +

    +Definition at line 159 of file candriver.h. +

    +Referenced by canInit(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusInit::wupm
    +
    +
    + +

    + +

    +Definition at line 160 of file candriver.h. +

    +Referenced by canInit(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 162 of file candriver.h. +

    +Referenced by canInit(), and initSensor(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 164 of file candriver.h. +

    +Referenced by canInit(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanBusInit__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanBusInit__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $structcanBusTime.html 5,7 109,31 +rect $structcanBusFilterInit.html 133,7 259,31 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanBusInit__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanBusInit__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +ebd38f1fce04d2bca5f00a4f161661db \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanBusInit__coll__graph.png Binary file doc/doxygen/html/structcanBusInit__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanBusTime.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanBusTime.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,164 @@ + + +CanFestival: canBusTime Struct Reference + + + + + + +

    canBusTime Struct Reference

    #include <candriver.h> +

    + + + + + + + + + + + + + + + +

    Data Fields

    UNS8 clksrc
    UNS8 brp
    UNS8 sjw
    UNS8 samp
    UNS8 tseg2
    UNS8 tseg1
    +


    Detailed Description

    + +

    + +

    +Definition at line 99 of file candriver.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 canBusTime::clksrc
    +
    +
    + +

    + +

    +Definition at line 100 of file candriver.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusTime::brp
    +
    +
    + +

    + +

    +Definition at line 101 of file candriver.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusTime::sjw
    +
    +
    + +

    + +

    +Definition at line 102 of file candriver.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusTime::samp
    +
    +
    + +

    + +

    +Definition at line 103 of file candriver.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusTime::tseg2
    +
    +
    + +

    + +

    +Definition at line 104 of file candriver.h. +

    +Referenced by canInitClock(). +

    +

    + +

    +
    + + + + +
    UNS8 canBusTime::tseg1
    +
    +
    + +

    + +

    +Definition at line 105 of file candriver.h. +

    +Referenced by canInitClock(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcan__baudparams__t.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcan__baudparams__t.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,115 @@ + + +CanFestival: can_baudparams_t Struct Reference + + + + + + +

    can_baudparams_t Struct Reference

    #include <lincan.h> +

    + + + + + + + + + + + +

    Data Fields

    long flags
    long baudrate
    long sjw
    long sample_pt
    +


    Detailed Description

    +struct can_baudparams_t - datatype for calling CONF_BAUDPARAMS IOCTL : reserved for additional flags for chip configuration, should be written -1 or 0 : baud rate in Hz : synchronization jump width (0-3) prescaled clock cycles : sample point in % (0-100) sets (TSEG1+1)/(TSEG1+TSEG2+2) ratio

    +The structure is used to configure new set of parameters into CAN controller chip. If default value of some field should be preserved, fill field by value -1. +

    + +

    +Definition at line 49 of file lincan.h.


    Field Documentation

    + +
    +
    + + + + +
    long can_baudparams_t::flags
    +
    +
    + +

    + +

    +Definition at line 50 of file lincan.h. +

    +

    + +

    +
    + + + + +
    long can_baudparams_t::baudrate
    +
    +
    + +

    + +

    +Definition at line 51 of file lincan.h. +

    +

    + +

    +
    + + + + +
    long can_baudparams_t::sjw
    +
    +
    + +

    + +

    +Definition at line 52 of file lincan.h. +

    +

    + +

    +
    + + + + +
    long can_baudparams_t::sample_pt
    +
    +
    + +

    + +

    +Definition at line 53 of file lincan.h. +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanfilt__t.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanfilt__t.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,134 @@ + + +CanFestival: canfilt_t Struct Reference + + + + + + +

    canfilt_t Struct Reference

    #include <canmsg.h> +

    + + + + + + + + + + + + + +

    Data Fields

    int flags
    int queid
    int cob
    canmsg_id_t id
    canmsg_id_t mask
    +


    Detailed Description

    +struct canfilt_t - structure for acceptance filter setup : message flags MSG_RTR .. message is Remote Transmission Request, MSG_EXT .. message with extended ID, MSG_OVR .. indication of queue overflow condition, MSG_LOCAL .. message originates from this node. there are corresponding mask bits MSG_RTR_MASK, MSG_EXT_MASK, MSG_LOCAL_MASK. MSG_PROCESSLOCAL enables local messages processing in the combination with global setting : CAN queue identification in the case of the multiple queues per one user (open instance) : communication object number (not used) : selected required value of cared ID id bits : select bits significand for the comparation; 1 .. take care about corresponding ID bit, 0 .. don't care

    +Header: canmsg.h +

    + +

    +Definition at line 105 of file canmsg.h.


    Field Documentation

    + +
    +
    + + + + +
    int canfilt_t::flags
    +
    +
    + +

    + +

    +Definition at line 106 of file canmsg.h. +

    +

    + +

    +
    + + + + +
    int canfilt_t::queid
    +
    +
    + +

    + +

    +Definition at line 107 of file canmsg.h. +

    +

    + +

    +
    + + + + +
    int canfilt_t::cob
    +
    +
    + +

    + +

    +Definition at line 108 of file canmsg.h. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 109 of file canmsg.h. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 110 of file canmsg.h. +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structcanmsg__t.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structcanmsg__t.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,161 @@ + + +CanFestival: canmsg_t Struct Reference + + + + + + +

    canmsg_t Struct Reference

    #include <canmsg.h> +

    + + + + + + + + + + + + + + + +

    Data Fields

    int flags
    int cob
    canmsg_id_t id
    canmsg_tstamp_t timestamp
    unsigned short length
    unsigned char data [CAN_MSG_LENGTH]
    +


    Detailed Description

    +struct canmsg_t - structure representing CAN message : message flags MSG_RTR .. message is Remote Transmission Request, MSG_EXT .. message with extended ID, MSG_OVR .. indication of queue overflow condition, MSG_LOCAL .. message originates from this node. : communication object number (not used) : ID of CAN message : not used : length of used data : data bytes buffer

    +Header: canmsg.h +

    + +

    +Definition at line 59 of file canmsg.h.


    Field Documentation

    + +
    +
    + + + + +
    int canmsg_t::flags
    +
    +
    + +

    + +

    +Definition at line 60 of file canmsg.h. +

    +Referenced by canReceive_driver(), and canSend_driver(). +

    +

    + +

    +
    + + + + +
    int canmsg_t::cob
    +
    +
    + +

    + +

    +Definition at line 61 of file canmsg.h. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 62 of file canmsg.h. +

    +Referenced by canReceive_driver(), and canSend_driver(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 63 of file canmsg.h. +

    +

    + +

    +
    + + + + +
    unsigned short canmsg_t::length
    +
    +
    + +

    + +

    +Definition at line 64 of file canmsg.h. +

    +Referenced by canReceive_driver(), and canSend_driver(). +

    +

    + +

    +
    + + + + +
    unsigned char canmsg_t::data[CAN_MSG_LENGTH]
    +
    +
    + +

    + +

    +Definition at line 65 of file canmsg.h. +

    +Referenced by canReceive_driver(), and canSend_driver(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structdriver__data.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structdriver__data.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,130 @@ + + +CanFestival: driver_data Struct Reference + + + + + + +

    driver_data Struct Reference

    Collaboration diagram for driver_data:

    Collaboration graph
    + + + + + + + + + +
    [legend]
    + + + + + + + + + + +

    Data Fields

    CO_Datad
    HANDLE receive_thread
    void * inst
    volatile bool continue_receive_thread
    +

    Detailed Description

    + +

    + +

    +Definition at line 109 of file drivers_win32.cpp.


    Field Documentation

    + +
    +
    + + + + +
    CO_Data* driver_data::d
    +
    +
    + +

    + +

    +Definition at line 111 of file drivers_win32.cpp. +

    +Referenced by canOpen(), and canReceiveLoop(). +

    +

    + +

    +
    + + + + +
    HANDLE driver_data::receive_thread
    +
    +
    + +

    + +

    +Definition at line 112 of file drivers_win32.cpp. +

    +Referenced by canClose(), and canOpen(). +

    +

    + +

    +
    + + + + +
    void* driver_data::inst
    +
    +
    + +

    + +

    +Definition at line 113 of file drivers_win32.cpp. +

    +Referenced by canClose(), canOpen(), canReceive(), and canSend(). +

    +

    + +

    +
    + + + + +
    volatile bool driver_data::continue_receive_thread
    +
    +
    + +

    + +

    +Definition at line 114 of file drivers_win32.cpp. +

    +Referenced by canClose(), canOpen(), and canReceiveLoop(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structdriver__data__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structdriver__data__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $structstruct__CO__Data.html 300,202 425,226 +rect $structtd__indextable.html 5,98 120,122 +rect $structtd__subindex.html 11,7 115,31 +rect $structs__quick__index.html 144,98 259,122 +rect $structstruct__s__process__var.html 283,98 443,122 +rect $structs__state__communication.html 467,98 648,122 +rect $structstruct__s__transfer.html 693,98 827,122 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structdriver__data__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structdriver__data__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +16a0c5a4042b86d67fea5c41fe3c10c7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structdriver__data__coll__graph.png Binary file doc/doxygen/html/structdriver__data__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structoption.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structoption.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,154 @@ + + +CanFestival: option Struct Reference + + + + + + +

    option Struct Reference

    #include <getopt.h> +

    + + + + + + + + + + + + + + + +

    Data Fields

    char * name
    int has_arg
    int * flag
    int val
    char * name
    int * flag
    +


    Detailed Description

    + +

    + +

    +Definition at line 103 of file getopt.h.


    Field Documentation

    + +
    +
    + + + + +
    char* option::name
    +
    +
    + +

    + +

    +Definition at line 108 of file getopt.h. +

    +Referenced by _getopt_internal(). +

    +

    + +

    +
    + + + + +
    int option::has_arg
    +
    +
    + +

    + +

    +Definition at line 112 of file getopt.h. +

    +

    + +

    +
    + + + + +
    int* option::flag
    +
    +
    + +

    + +

    +Definition at line 113 of file getopt.h. +

    +

    + +

    +
    + + + + +
    int option::val
    +
    +
    + +

    + +

    +Definition at line 114 of file getopt.h. +

    +

    + +

    +
    + + + + +
    char* option::name
    +
    +
    + +

    + +

    +Definition at line 108 of file getopt.h. +

    +

    + +

    +
    + + + + +
    int* option::flag
    +
    +
    + +

    + +

    +Definition at line 113 of file getopt.h. +

    +

    +


    The documentation for this struct was generated from the following files: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structs__quick__index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structs__quick__index.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,164 @@ + + +CanFestival: s_quick_index Struct Reference + + + + + + +

    s_quick_index Struct Reference

    #include <objdictdef.h> +

    + + + + + + + + + + + + + + + +

    Data Fields

    UNS16 SDO_SVR
    UNS16 SDO_CLT
    UNS16 PDO_RCV
    UNS16 PDO_RCV_MAP
    UNS16 PDO_TRS
    UNS16 PDO_TRS_MAP
    +


    Detailed Description

    + +

    + +

    +Definition at line 115 of file objdictdef.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS16 s_quick_index::SDO_SVR
    +
    +
    + +

    + +

    +Definition at line 116 of file objdictdef.h. +

    +Referenced by proceedSDO(), sendSDO(), and setNodeId(). +

    +

    + +

    +
    + + + + +
    UNS16 s_quick_index::SDO_CLT
    +
    +
    + +

    + +

    +Definition at line 117 of file objdictdef.h. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), and sendSDO(). +

    +

    + +

    +
    + + + + +
    UNS16 s_quick_index::PDO_RCV
    +
    +
    + +

    + +

    +Definition at line 118 of file objdictdef.h. +

    +Referenced by proceedPDO(), sendPDOrequest(), and setNodeId(). +

    +

    + +

    +
    + + + + +
    UNS16 s_quick_index::PDO_RCV_MAP
    +
    +
    + +

    + +

    +Definition at line 119 of file objdictdef.h. +

    +Referenced by proceedPDO(). +

    +

    + +

    +
    + + + + +
    UNS16 s_quick_index::PDO_TRS
    +
    +
    + +

    + +

    +Definition at line 120 of file objdictdef.h. +

    +Referenced by proceedPDO(), proceedSYNC(), and setNodeId(). +

    +

    + +

    +
    + + + + +
    UNS16 s_quick_index::PDO_TRS_MAP
    +
    +
    + +

    + +

    +Definition at line 121 of file objdictdef.h. +

    +Referenced by proceedPDO(), and proceedSYNC(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structs__state__communication.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structs__state__communication.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,160 @@ + + +CanFestival: s_state_communication Struct Reference + + + + + + +

    s_state_communication Struct Reference

    #include <states.h> +

    + + + + + + + + + + + + + + + +

    Data Fields

    UNS8 csBoot_Up
    UNS8 csSDO
    UNS8 csEmergency
    UNS8 csSYNC
    UNS8 csHeartbeat
    UNS8 csPDO
    +


    Detailed Description

    + +

    + +

    +Definition at line 48 of file states.h.


    Field Documentation

    + +
    + +
    + +

    + +

    +Definition at line 50 of file states.h. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 51 of file states.h. +

    +Referenced by canDispatch(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 52 of file states.h. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 53 of file states.h. +

    +Referenced by canDispatch(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 54 of file states.h. +

    +Referenced by canDispatch(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 55 of file states.h. +

    +Referenced by canDispatch(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__CO__Data.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__CO__Data.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,759 @@ + + +CanFestival: struct_CO_Data Struct Reference + + + + + + +

    struct_CO_Data Struct Reference

    #include <data.h> +

    +Collaboration diagram for struct_CO_Data:

    Collaboration graph
    + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Fields

    UNS8 * bDeviceNodeId
    const indextableobjdict
    UNS8 * count_sync
    quick_indexfirstIndex
    quick_indexlastIndex
    UNS16 * ObjdictSize
    const UNS8 * iam_a_slave
    valueRangeTest_t valueRangeTest
    s_transfer transfers [SDO_MAX_SIMULTANEOUS_TRANSFERTS]
    e_nodeState nodeState
    s_state_communication CurrentCommunicationState
    initialisation_t initialisation
    preOperational_t preOperational
    operational_t operational
    stopped_t stopped
    UNS8 * ConsumerHeartbeatCount
    UNS32 * ConsumerHeartbeatEntries
    TIMER_HANDLE * ConsumerHeartBeatTimers
    UNS16 * ProducerHeartBeatTime
    TIMER_HANDLE ProducerHeartBeatTimer
    heartbeatError_t heartbeatError
    e_nodeState NMTable [NMT_MAX_NODE_ID]
    TIMER_HANDLE syncTimer
    UNS32 * COB_ID_Sync
    UNS32 * Sync_Cycle_Period
    post_sync_t post_sync
    post_TPDO_t post_TPDO
    s_process_var process_var
    UNS8 toggle
    CAN_HANDLE canHandle
    scanIndexOD_t scanIndexOD
    storeODSubIndex_t storeODSubIndex
    UNS8 * dcf_cursor
    UNS32 dcf_count_targets
    +

    Detailed Description

    + +

    + +

    +Definition at line 45 of file data.h.


    Field Documentation

    + +

    + +

    + + +

    + +

    +
    + + + + +
    UNS8* struct_CO_Data::count_sync
    +
    +
    + +

    + +

    +Definition at line 49 of file data.h. +

    +Referenced by proceedSYNC(). +

    +

    + +

    + +

    + +

    +
    + + + + +
    UNS16* struct_CO_Data::ObjdictSize
    +
    +
    + +

    + +

    +Definition at line 52 of file data.h. +

    +

    + +

    +
    + + + + +
    const UNS8* struct_CO_Data::iam_a_slave
    +
    +
    + +

    + +

    +Definition at line 53 of file data.h. +

    +Referenced by canDispatch(), and setState(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 54 of file data.h. +

    +Referenced by _setODentry(). +

    +

    + +

    + +

    + +

    + +
    + +

    + +

    +Definition at line 62 of file data.h. +

    +Referenced by canDispatch(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 63 of file data.h. +

    +Referenced by main(), and setState(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 64 of file data.h. +

    +Referenced by decompo_dcf(), main(), and setState(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 65 of file data.h. +

    +Referenced by main(), and setState(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 66 of file data.h. +

    +Referenced by main(), and setState(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 69 of file data.h. +

    +Referenced by heartbeatInit(), heartbeatStop(), and proceedNODE_GUARD(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 70 of file data.h. +

    +Referenced by ConsumerHearbeatAlarm(), heartbeatInit(), and proceedNODE_GUARD(). +

    +

    + +

    +
    + + + + +
    TIMER_HANDLE* struct_CO_Data::ConsumerHeartBeatTimers
    +
    +
    + +

    + +

    +Definition at line 71 of file data.h. +

    +Referenced by heartbeatInit(), heartbeatStop(), and proceedNODE_GUARD(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 72 of file data.h. +

    +Referenced by heartbeatInit(), and ProducerHearbeatAlarm(). +

    +

    + +

    +
    + + + + +
    TIMER_HANDLE struct_CO_Data::ProducerHeartBeatTimer
    +
    +
    + +

    + +

    +Definition at line 73 of file data.h. +

    +Referenced by heartbeatInit(), heartbeatStop(), and ProducerHearbeatAlarm(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 74 of file data.h. +

    +Referenced by ConsumerHearbeatAlarm(), and main(). +

    +

    + +

    +
    + + + + +
    e_nodeState struct_CO_Data::NMTable[NMT_MAX_NODE_ID]
    +
    +
    + +

    + +

    +Definition at line 75 of file data.h. +

    +Referenced by GetChangeStateResults(), getNodeState(), masterRequestNodeState(), and proceedNODE_GUARD(). +

    +

    + +

    +
    + + + + +
    TIMER_HANDLE struct_CO_Data::syncTimer
    +
    +
    + +

    + +

    +Definition at line 78 of file data.h. +

    +Referenced by startSYNC(), and stopSYNC(). +

    +

    + +

    +
    + + + + +
    UNS32* struct_CO_Data::COB_ID_Sync
    +
    +
    + +

    + +

    +Definition at line 79 of file data.h. +

    +Referenced by startSYNC(), and SyncAlarm(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 80 of file data.h. +

    +Referenced by startSYNC(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 82 of file data.h. +

    +Referenced by main(), and proceedSYNC(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 83 of file data.h. +

    +Referenced by main(), and proceedSYNC(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 86 of file data.h. +

    +Referenced by PDOmGR(), proceedPDO(), and proceedSYNC(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_CO_Data::toggle
    +
    +
    + +

    + +

    +Definition at line 89 of file data.h. +

    +Referenced by heartbeatInit(), and proceedNODE_GUARD(). +

    +

    + +

    + +

    + +
    + +

    + +

    +Definition at line 91 of file data.h. +

    +Referenced by _getODentry(), _setODentry(), decompo_dcf(), scanIndexOD(), and setState(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 92 of file data.h. +

    +Referenced by _setODentry(), and main(). +

    +

    + +

    +
    + + + + +
    UNS8* struct_CO_Data::dcf_cursor
    +
    +
    + +

    + +

    +Definition at line 95 of file data.h. +

    +Referenced by decompo_dcf(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 96 of file data.h. +

    +Referenced by decompo_dcf(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__CO__Data__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__CO__Data__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,7 @@ +base referer +rect $structtd__indextable.html 5,97 120,121 +rect $structtd__subindex.html 11,7 115,31 +rect $structs__quick__index.html 144,97 259,121 +rect $structstruct__s__process__var.html 283,97 443,121 +rect $structs__state__communication.html 467,97 648,121 +rect $structstruct__s__transfer.html 693,97 827,121 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__CO__Data__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__CO__Data__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f696aef1e30f60cbca1f173bb140f5b9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__CO__Data__coll__graph.png Binary file doc/doxygen/html/structstruct__CO__Data__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__BOARD.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__BOARD.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,80 @@ + + +CanFestival: struct_s_BOARD Struct Reference + + + + + + +

    struct_s_BOARD Struct Reference

    #include <can_driver.h> +

    + + + + + + + +

    Data Fields

    char * busname
    char * baudrate
    +


    Detailed Description

    + +

    + +

    +Definition at line 33 of file can_driver.h.


    Field Documentation

    + +
    +
    + + + + +
    char* struct_s_BOARD::busname
    +
    +
    + +

    + +

    +Definition at line 34 of file can_driver.h. +

    +Referenced by canOpen(), canOpen_driver(), and main(). +

    +

    + +

    +
    + + + + +
    char* struct_s_BOARD::baudrate
    +
    +
    + +

    + +

    +Definition at line 35 of file can_driver.h. +

    +Referenced by can_uvccm_win32::can_uvccm_win32(), canInit(), canOpen(), canOpen_driver(), InitNodes(), and main(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__PDO.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__PDO.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,101 @@ + + +CanFestival: struct_s_PDO Struct Reference + + + + + + +

    struct_s_PDO Struct Reference

    #include <pdo.h> +

    + + + + + + + + + +

    Data Fields

    UNS32 cobId
    UNS8 len
    UNS8 data [8]
    +


    Detailed Description

    +The PDO structure +

    + +

    +Definition at line 43 of file pdo.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS32 struct_s_PDO::cobId
    +
    +
    + +

    + +

    +Definition at line 44 of file pdo.h. +

    +Referenced by PDOmGR(), sendPDO(), and sendPDOrequest(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_s_PDO::len
    +
    +
    + +

    + +

    +Definition at line 45 of file pdo.h. +

    +Referenced by PDOmGR(), sendPDO(), and sendPDOrequest(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_s_PDO::data[8]
    +
    +
    + +

    + +

    +Definition at line 46 of file pdo.h. +

    +Referenced by PDOmGR(), and sendPDO(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__SDO.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__SDO.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,84 @@ + + +CanFestival: struct_s_SDO Struct Reference + + + + + + +

    struct_s_SDO Struct Reference

    #include <sdo.h> +

    +Collaboration diagram for struct_s_SDO:

    Collaboration graph
    + + + +
    [legend]
    + + + + + + +

    Data Fields

    UNS8 nodeId
    BODY body
    +

    Detailed Description

    + +

    + +

    +Definition at line 80 of file sdo.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 struct_s_SDO::nodeId
    +
    +
    + +

    + +

    +Definition at line 81 of file sdo.h. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), sendSDO(), and sendSDOabort(). +

    +

    + +

    +
    + + + + +
    struct BODY struct_s_SDO::body
    +
    +
    + +

    + +

    +Definition at line 82 of file sdo.h. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), sendSDO(), and sendSDOabort(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__SDO__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__SDO__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $structBODY.html 31,7 89,31 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__SDO__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__SDO__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e1c236a9833986194fc03adc686896bd \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__SDO__coll__graph.png Binary file doc/doxygen/html/structstruct__s__SDO__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__process__var.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__process__var.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,80 @@ + + +CanFestival: struct_s_process_var Struct Reference + + + + + + +

    struct_s_process_var Struct Reference

    #include <pdo.h> +

    + + + + + + + +

    Data Fields

    UNS8 count
    UNS8 data [PDO_MAX_LEN]
    +


    Detailed Description

    + +

    + +

    +Definition at line 32 of file pdo.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 struct_s_process_var::count
    +
    +
    + +

    + +

    +Definition at line 33 of file pdo.h. +

    +Referenced by PDOmGR(), proceedPDO(), and proceedSYNC(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_s_process_var::data[PDO_MAX_LEN]
    +
    +
    + +

    + +

    +Definition at line 37 of file pdo.h. +

    +Referenced by PDOmGR(), proceedPDO(), and proceedSYNC(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__timer__entry.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__timer__entry.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,166 @@ + + +CanFestival: struct_s_timer_entry Struct Reference + + + + + + +

    struct_s_timer_entry Struct Reference

    #include <timer.h> +

    +Collaboration diagram for struct_s_timer_entry:

    Collaboration graph
    + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + +

    Data Fields

    UNS8 state
    CO_Datad
    TimerCallback_t callback
    UNS32 id
    TIMEVAL val
    TIMEVAL interval
    +

    Detailed Description

    + +

    + +

    +Definition at line 43 of file timer.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 struct_s_timer_entry::state
    +
    +
    + +

    + +

    +Definition at line 44 of file timer.h. +

    +Referenced by DelAlarm(). +

    +

    + +

    + +

    + +
    + +

    + +

    +Definition at line 46 of file timer.h. +

    +

    + +

    +
    + + + + +
    UNS32 struct_s_timer_entry::id
    +
    +
    + +

    + +

    +Definition at line 47 of file timer.h. +

    +

    + +

    +
    + + + + +
    TIMEVAL struct_s_timer_entry::val
    +
    +
    + +

    + +

    +Definition at line 48 of file timer.h. +

    +

    + +

    +
    + + + + +
    TIMEVAL struct_s_timer_entry::interval
    +
    +
    + +

    + +

    +Definition at line 49 of file timer.h. +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__timer__entry__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__timer__entry__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $structstruct__CO__Data.html 300,202 425,226 +rect $structtd__indextable.html 5,98 120,122 +rect $structtd__subindex.html 11,7 115,31 +rect $structs__quick__index.html 144,98 259,122 +rect $structstruct__s__process__var.html 283,98 443,122 +rect $structs__state__communication.html 467,98 648,122 +rect $structstruct__s__transfer.html 693,98 827,122 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__timer__entry__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__timer__entry__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +80fcda628157a613326366f80eccd1b2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__timer__entry__coll__graph.png Binary file doc/doxygen/html/structstruct__s__timer__entry__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structstruct__s__transfer.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structstruct__s__transfer.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,311 @@ + + +CanFestival: struct_s_transfer Struct Reference + + + + + + +

    struct_s_transfer Struct Reference

    #include <sdo.h> +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Fields

    UNS8 nodeId
    UNS8 whoami
    UNS8 state
    UNS8 toggle
    UNS32 abortCode
    UNS16 index
    UNS8 subIndex
    UNS32 count
    UNS32 offset
    UNS8 data [SDO_MAX_LENGTH_TRANSFERT]
    UNS8 dataType
    TIMER_HANDLE timer
    SDOCallback_t Callback
    +


    Detailed Description

    + +

    + +

    +Definition at line 38 of file sdo.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 struct_s_transfer::nodeId
    +
    +
    + +

    + +

    +Definition at line 39 of file sdo.h. +

    +Referenced by getSDOlineOnUse(), initSDOline(), and SDOTimeoutAlarm(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_s_transfer::whoami
    +
    +
    + +

    + +

    +Definition at line 41 of file sdo.h. +

    +Referenced by getSDOfreeLine(), getSDOlineOnUse(), and SDOTimeoutAlarm(). +

    +

    + +

    + +

    +
    + + + + +
    UNS8 struct_s_transfer::toggle
    +
    +
    + +

    + +

    +Definition at line 43 of file sdo.h. +

    +Referenced by initSDOline(), and proceedSDO(). +

    +

    + +

    +
    + + + + +
    UNS32 struct_s_transfer::abortCode
    +
    +
    + +

    + +

    +Definition at line 44 of file sdo.h. +

    +Referenced by getWriteResultNetworkDict(), proceedSDO(), and SDOTimeoutAlarm(). +

    +

    + +

    +
    + + + + +
    UNS16 struct_s_transfer::index
    +
    +
    + +

    + +

    +Definition at line 47 of file sdo.h. +

    +Referenced by initSDOline(), objdictToSDOline(), proceedSDO(), SDOlineToObjdict(), and SDOTimeoutAlarm(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_s_transfer::subIndex
    +
    +
    + +

    + +

    +Definition at line 48 of file sdo.h. +

    +Referenced by initSDOline(), objdictToSDOline(), proceedSDO(), SDOlineToObjdict(), and SDOTimeoutAlarm(). +

    +

    + +

    + +

    +
    + + + + +
    UNS32 struct_s_transfer::offset
    +
    +
    + +

    + +

    +Definition at line 50 of file sdo.h. +

    +Referenced by _writeNetworkDict(), getSDOlineRestBytes(), initSDOline(), lineToSDO(), objdictToSDOline(), and SDOtoLine(). +

    +

    + +

    +
    + + + + +
    UNS8 struct_s_transfer::data[SDO_MAX_LENGTH_TRANSFERT]
    +
    + +

    + +

    +
    + + + + +
    UNS8 struct_s_transfer::dataType
    +
    +
    + +

    + +

    +Definition at line 57 of file sdo.h. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), getReadResultNetworkDict(), and initSDOline(). +

    +

    + +

    +
    + + + + +
    TIMER_HANDLE struct_s_transfer::timer
    +
    +
    + +

    + +

    +Definition at line 61 of file sdo.h. +

    +Referenced by SDOTimeoutAlarm(). +

    +

    + +

    + +
    + +

    + +

    +Definition at line 67 of file sdo.h. +

    +Referenced by _readNetworkDict(), _writeNetworkDict(), initSDOline(), proceedSDO(), and SDOTimeoutAlarm(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structt__pointerStack.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structt__pointerStack.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,78 @@ + + +CanFestival: t_pointerStack Struct Reference + + + + + + +

    t_pointerStack Struct Reference

    #include <candriver.h> +

    + + + + + + + +

    Data Fields

    UNS8 w
    UNS8 r
    +


    Detailed Description

    + +

    + +

    +Definition at line 67 of file candriver.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 t_pointerStack::w
    +
    +
    + +

    + +

    +Definition at line 68 of file candriver.h. +

    +

    + +

    +
    + + + + +
    UNS8 t_pointerStack::r
    +
    +
    + +

    + +

    +Definition at line 69 of file candriver.h. +

    +Referenced by f_can_receive(). +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structtd__indextable.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structtd__indextable.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,103 @@ + + +CanFestival: td_indextable Struct Reference + + + + + + +

    td_indextable Struct Reference

    #include <objdictdef.h> +

    +Collaboration diagram for td_indextable:

    Collaboration graph
    + + + +
    [legend]
    + + + + + + + + +

    Data Fields

    subindexpSubindex
    UNS8 bSubCount
    UNS16 index
    +

    Detailed Description

    +Struct for creating entries in the communictaion profile +

    + +

    +Definition at line 105 of file objdictdef.h.


    Field Documentation

    + +

    + +

    +
    + + + + +
    UNS8 td_indextable::bSubCount
    +
    +
    + +

    + +

    +Definition at line 108 of file objdictdef.h. +

    +Referenced by _getODentry(), _readNetworkDict(), _setODentry(), _writeNetworkDict(), proceedSDO(), proceedSYNC(), and sendSDO(). +

    +

    + +

    +
    + + + + +
    UNS16 td_indextable::index
    +
    +
    + +

    + +

    +Definition at line 112 of file objdictdef.h. +

    +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structtd__indextable__coll__graph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structtd__indextable__coll__graph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $structtd__subindex.html 11,7 115,31 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structtd__indextable__coll__graph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structtd__indextable__coll__graph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8bfdbe40f9d7f2564f88ea9ee57d567f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structtd__indextable__coll__graph.png Binary file doc/doxygen/html/structtd__indextable__coll__graph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/structtd__subindex.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/structtd__subindex.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,122 @@ + + +CanFestival: td_subindex Struct Reference + + + + + + +

    td_subindex Struct Reference

    #include <objdictdef.h> +

    + + + + + + + + + + + +

    Data Fields

    UNS8 bAccessType
    UNS8 bDataType
    UNS8 size
    void * pObject
    +


    Detailed Description

    +This are some structs which are neccessary for creating the entries of the object dictionary. +

    + +

    +Definition at line 95 of file objdictdef.h.


    Field Documentation

    + +
    +
    + + + + +
    UNS8 td_subindex::bAccessType
    +
    +
    + +

    + +

    +Definition at line 97 of file objdictdef.h. +

    +Referenced by _getODentry(), and _setODentry(). +

    +

    + +

    +
    + + + + +
    UNS8 td_subindex::bDataType
    +
    +
    + +

    + +

    +Definition at line 98 of file objdictdef.h. +

    +Referenced by _getODentry(), and _setODentry(). +

    +

    + +

    +
    + + + + +
    UNS8 td_subindex::size
    +
    +
    + +

    + +

    +Definition at line 99 of file objdictdef.h. +

    +Referenced by _getODentry(), _setODentry(), and decompo_dcf(). +

    +

    + +

    +


    The documentation for this struct was generated from the following file: +
    Generated on Fri Jun 8 08:52:18 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c-source.html --- a/doc/doxygen/html/sync_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/sync.c Source File +CanFestival: src/sync.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/sync.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    sync.c

    Go to the documentation of this file.
    00001 /*
     00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
     00003 
     00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    @@ -37,213 +41,222 @@
     00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     00021 */
     00022 
    -00033 #include "data.h"
    -00034 #include "sync.h"
    -00035 #include "canfestival.h"
    +00033 #include "data.h"
    +00034 #include "sync.h"
    +00035 #include "canfestival.h"
     00036 
     00037 /* Prototypes for internals functions */
     00038 
    -00045 void SyncAlarm(CO_Data* d, UNS32 id);
    -00046 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, 
    -00047         UNS8 unsused_bSubindex);
    +00045 void SyncAlarm(CO_Data* d, UNS32 id);
    +00046 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, 
    +00047         UNS8 unsused_bSubindex);
     00048 
    -00055 void SyncAlarm(CO_Data* d, UNS32 id)
    +00055 void SyncAlarm(CO_Data* d, UNS32 id)
     00056 {
    -00057         sendSYNC(d, *d->COB_ID_Sync & 0x1FFFFFFF) ;
    +00057         sendSYNC(d, *d->COB_ID_Sync & 0x1FFFFFFF) ;
     00058 }
     00059 
    -00069 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
    +00069 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
     00070 {
    -00071         startSYNC(d);
    +00071         startSYNC(d);
     00072         return 0;
     00073 }
     00074 
    -00080 void startSYNC(CO_Data* d)
    +00080 void startSYNC(CO_Data* d)
     00081 {
    -00082         RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate);
    -00083         RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate);
    +00082         RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate);
    +00083         RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate);
     00084 
    -00085         if(d->syncTimer != TIMER_NONE){
    -00086                 stopSYNC(d);
    +00085         if(d->syncTimer != TIMER_NONE){
    +00086                 stopSYNC(d);
     00087         }
     00088         
    -00089         if(*d->COB_ID_Sync & 0x40000000 && *d->Sync_Cycle_Period)
    +00089         if(*d->COB_ID_Sync & 0x40000000 && *d->Sync_Cycle_Period)
     00090         {
    -00091                 d->syncTimer = SetAlarm(
    -00092                                 d,
    +00091                 d->syncTimer = SetAlarm(
    +00092                                 d,
     00093                                 0 /*No id needed*/,
     00094                                 &SyncAlarm,
    -00095                                 US_TO_TIMEVAL(*d->Sync_Cycle_Period), 
    -00096                                 US_TO_TIMEVAL(*d->Sync_Cycle_Period));
    +00095                                 US_TO_TIMEVAL(*d->Sync_Cycle_Period), 
    +00096                                 US_TO_TIMEVAL(*d->Sync_Cycle_Period));
     00097         }
     00098 }
     00099 
    -00105 void stopSYNC(CO_Data* d)
    +00105 void stopSYNC(CO_Data* d)
     00106 {
    -00107         d->syncTimer = DelAlarm(d->syncTimer);
    +00107         d->syncTimer = DelAlarm(d->syncTimer);
     00108 }
     00109 
    -00118 UNS8 sendSYNC(CO_Data* d, UNS32 cob_id)
    +00118 UNS8 sendSYNC(CO_Data* d, UNS32 cob_id)
     00119 {
    -00120   Message m;
    -00121   UNS8 resultat ;
    +00120   Message m;
    +00121   UNS8 resultat ;
     00122   
    -00123   MSG_WAR(0x3001, "sendSYNC ", 0);
    +00123   MSG_WAR(0x3001, "sendSYNC ", 0);
     00124   
    -00125   m.cob_id.w = cob_id ;
    -00126   m.rtr = NOT_A_REQUEST;
    -00127   m.len = 0;
    -00128   resultat = canSend(d->canHandle,&m) ;
    -00129   proceedSYNC(d, &m) ; 
    +00125   m.cob_id.w = cob_id ;
    +00126   m.rtr = NOT_A_REQUEST;
    +00127   m.len = 0;
    +00128   resultat = canSend(d->canHandle,&m) ;
    +00129   proceedSYNC(d, &m) ; 
     00130   return resultat ;
     00131 }
     00132 
    -00141 UNS8 proceedSYNC(CO_Data* d, Message *m)
    +00141 UNS8 proceedSYNC(CO_Data* d, Message *m)
     00142 {
     00143 
    -00144   UNS8  pdoNum,       /* number of the actual processed pdo-nr. */
    +00144   UNS8  pdoNum,       /* number of the actual processed pdo-nr. */
     00145         prp_j;
     00146 
    -00147   const UNS8 *     pMappingCount = NULL;      /* count of mapped objects...*/
    +00147   const UNS8 *     pMappingCount = NULL;      /* count of mapped objects...*/
    +00148   /* pointer to the var which is mapped to a pdo */
     00149   /* void *     pMappedAppObject = NULL; */
    -00151   UNS32 *    pMappingParameter = NULL;  
    -00153   UNS8 *     pTransmissionType = NULL;  
    -00154   UNS32 *    pwCobId = NULL;    
    +00150   /* pointer fo the var which holds the mapping parameter of an mapping entry  */
    +00151   UNS32 *    pMappingParameter = NULL;  
    +00152   /* pointer to the transmissiontype...*/
    +00153   UNS8 *     pTransmissionType = NULL;  
    +00154   UNS32 *    pwCobId = NULL;    
     00155 
    -00156   UNS8 dataType;
    -00157   UNS16 index;
    -00158   UNS8 subIndex;
    -00159   UNS8 offset;
    -00160   UNS8 status;
    -00161   UNS8 Size;
    -00162   UNS32 objDict;        
    -00163   UNS16 offsetObjdict;
    -00164   UNS16 offsetObjdictMap;
    -00165   UNS16 lastIndex;
    +00156   UNS8 dataType;
    +00157   UNS16 index;
    +00158   UNS8 subIndex;
    +00159   UNS8 offset;
    +00160   UNS8 status;
    +00161   UNS8 Size;
    +00162   UNS32 objDict;        
    +00163   UNS16 offsetObjdict;
    +00164   UNS16 offsetObjdictMap;
    +00165   UNS16 lastIndex;
     00166   
    -00167   status = state3;
    +00167   status = state3;
     00168   pdoNum = 0x00;
     00169   prp_j = 0x00;
     00170   offset = 0x00;
     00171   
    -00172   MSG_WAR(0x3002, "SYNC received. Proceed. ", 0);
    +00172   MSG_WAR(0x3002, "SYNC received. Proceed. ", 0);
     00173   
    -00174   (*d->post_sync)();
    +00174   (*d->post_sync)();
     00175 
    -00177   if( d->nodeState != Operational ) 
    +00176   /* only operational state allows PDO transmission */
    +00177   if( d->nodeState != Operational ) 
     00178     return 0;
     00179   
    -00183   offsetObjdict = d->firstIndex->PDO_TRS;
    -00184   lastIndex = d->lastIndex->PDO_TRS;
    -00185   offsetObjdictMap = d->firstIndex->PDO_TRS_MAP;
    +00180   /* So, the node is in operational state */
    +00181   /* study all PDO stored in the objects dictionary */  
    +00182  
    +00183   offsetObjdict = d->firstIndex->PDO_TRS;
    +00184   lastIndex = d->lastIndex->PDO_TRS;
    +00185   offsetObjdictMap = d->firstIndex->PDO_TRS_MAP;
     00186   
     00187   if(offsetObjdict) while( offsetObjdict <= lastIndex) {  
     00188     switch( status ) {
     00189                     
    -00190     case state3:    
    -00191       if (d->objdict[offsetObjdict].bSubCount <= 2) {
    -00192           MSG_ERR(0x1004, "Subindex 2  not found at index ", 0x1800 + pdoNum);
    +00190     case state3:    /* get the PDO transmission type */
    +00191       if (d->objdict[offsetObjdict].bSubCount <= 2) {
    +00192           MSG_ERR(0x1004, "Subindex 2  not found at index ", 0x1800 + pdoNum);
     00193           return 0xFF;
     00194         }
    -00195       pTransmissionType = d->objdict[offsetObjdict].pSubindex[2].pObject;    
    -00196       MSG_WAR(0x3005, "Reading PDO at index : ", 0x1800 + pdoNum);
    -00197       status = state4; 
    +00195       pTransmissionType = d->objdict[offsetObjdict].pSubindex[2].pObject;    
    +00196       MSG_WAR(0x3005, "Reading PDO at index : ", 0x1800 + pdoNum);
    +00197       status = state4; 
     00198       break;     
    -00199     case state4:        
    -00201       if( (*pTransmissionType >= TRANS_SYNC_MIN) && (*pTransmissionType <= TRANS_SYNC_MAX) &&
    -00202           (++d->count_sync[pdoNum] == *pTransmissionType) ) {   
    -00203         d->count_sync[pdoNum] = 0;
    -00204         MSG_WAR(0x3007, "  PDO is on SYNCHRO. Trans type : ", *pTransmissionType);
    -00205         status = state5;
    +00199     case state4:        /* check if transmission type is after (this) SYNC */
    +00200                         /* The message may not be transmited every SYNC but every n SYNC */      
    +00201       if( (*pTransmissionType >= TRANS_SYNC_MIN) && (*pTransmissionType <= TRANS_SYNC_MAX) &&
    +00202           (++d->count_sync[pdoNum] == *pTransmissionType) ) {   
    +00203         d->count_sync[pdoNum] = 0;
    +00204         MSG_WAR(0x3007, "  PDO is on SYNCHRO. Trans type : ", *pTransmissionType);
    +00205         status = state5;
     00206         break;
     00207       }
     00208       else {
    -00209         MSG_WAR(0x3008, "  Not on synchro or not at this SYNC. Trans type : ", 
    +00209         MSG_WAR(0x3008, "  Not on synchro or not at this SYNC. Trans type : ", 
     00210                 *pTransmissionType);
     00211         pdoNum++;
     00212         offsetObjdict++;
     00213         offsetObjdictMap++;
    -00214         status = state11;
    +00214         status = state11;
     00215         break;
     00216       }      
    -00217     case state5:        
    -00218         pwCobId = d->objdict[offsetObjdict].pSubindex[1].pObject;     
    -00219         MSG_WAR(0x3009, "  PDO CobId is : ", *pwCobId);
    -00220         status = state7;
    +00217     case state5:        /* get PDO CobId */
    +00218         pwCobId = d->objdict[offsetObjdict].pSubindex[1].pObject;     
    +00219         MSG_WAR(0x3009, "  PDO CobId is : ", *pwCobId);
    +00220         status = state7;
     00221         break;     
    -00222     case state7:  
    -00223       pMappingCount = d->objdict[offsetObjdictMap].pSubindex[0].pObject;
    -00224         MSG_WAR(0x300D, "  Number of objects mapped : ",*pMappingCount );
    -00225         status = state8;
    -00226     case state8:        
    -00227       pMappingParameter = d->objdict[offsetObjdictMap].pSubindex[prp_j + 1].pObject;
    -00228         MSG_WAR(0x300F, "  got mapping parameter : ", *pMappingParameter);
    -00229         MSG_WAR(0x3050, "    at index : ", 0x1A00 + pdoNum);
    -00230         MSG_WAR(0x3051, "    sub-index : ", prp_j + 1);
    -00231         status = state9;
    +00222     case state7:  /* get mapped objects number to transmit with this PDO */
    +00223       pMappingCount = d->objdict[offsetObjdictMap].pSubindex[0].pObject;
    +00224         MSG_WAR(0x300D, "  Number of objects mapped : ",*pMappingCount );
    +00225         status = state8;
    +00226     case state8:        /* get mapping parameters */
    +00227       pMappingParameter = d->objdict[offsetObjdictMap].pSubindex[prp_j + 1].pObject;
    +00228         MSG_WAR(0x300F, "  got mapping parameter : ", *pMappingParameter);
    +00229         MSG_WAR(0x3050, "    at index : ", 0x1A00 + pdoNum);
    +00230         MSG_WAR(0x3051, "    sub-index : ", prp_j + 1);
    +00231         status = state9;
     00232     
    -00233     case state9:        
    +00233     case state9:        /* get data to transmit */ 
     00234         {
    -00235           UNS8 ByteSize;
    -00236           UNS8 tmp[]= {0,0,0,0,0,0,0,0};
    -00237           index = (UNS16)((*pMappingParameter) >> 16);
    -00238           subIndex = (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF);
    -00239           Size = (UNS8)(*pMappingParameter); /* Size in bits */
    +00235           UNS8 ByteSize;
    +00236           UNS8 tmp[]= {0,0,0,0,0,0,0,0};
    +00237           index = (UNS16)((*pMappingParameter) >> 16);
    +00238           subIndex = (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF);
    +00239           Size = (UNS8)(*pMappingParameter); /* Size in bits */
     00240           ByteSize = 1 + ((Size - 1) >> 3); /*1->8 => 1 ; 9->16 => 2, ... */
    -00241           objDict = getODentry(d, index, subIndex, tmp, &ByteSize, &dataType, 0 );
    -00243           CopyBits(Size, ((UNS8*)tmp), 0 , 0, (UNS8*)&d->process_var.data[offset>>3], offset%8, 0);
    +00241           objDict = getODentry(d, index, subIndex, tmp, &ByteSize, &dataType, 0 );
    +00242           /* copy bit per bit in little endian*/
    +00243           CopyBits(Size, ((UNS8*)tmp), 0 , 0, (UNS8*)&d->process_var.data[offset>>3], offset%8, 0);
     00244         }   
    -00245         if( objDict != OD_SUCCESSFUL ){
    -00246           MSG_ERR(0x1013, " Couldn't find mapped variable at index-subindex-size : ", (UNS16)(*pMappingParameter));
    +00245         if( objDict != OD_SUCCESSFUL ){
    +00246           MSG_ERR(0x1013, " Couldn't find mapped variable at index-subindex-size : ", (UNS16)(*pMappingParameter));
     00247           return 0xFF;
     00248         }
     00249         
     00250         offset += Size ;
    -00251         d->process_var.count = 1 + ((offset - 1) >> 3);
    +00251         d->process_var.count = 1 + ((offset - 1) >> 3);
     00252         prp_j++;
    -00253         status = state10;        
    +00253         status = state10;        
     00254         break;                                  
     00255       
    -00256     case state10:       
    +00256     case state10:       /* loop to get all the data to transmit */
     00257       if( prp_j < *pMappingCount ){
    -00258         MSG_WAR(0x3014, "  next variable mapped : ", prp_j);
    -00259         status = state8;
    +00258         MSG_WAR(0x3014, "  next variable mapped : ", prp_j);
    +00259         status = state8;
     00260         break;
     00261       }
     00262       else {
    -00263         MSG_WAR(0x3015, "  End scan mapped variable", 0);
    -00264         PDOmGR( d, *pwCobId );  
    -00265         MSG_WAR(0x3016, "  End of this pdo. Should have been sent", 0);
    +00263         MSG_WAR(0x3015, "  End scan mapped variable", 0);
    +00264         PDOmGR( d, *pwCobId );  
    +00265         MSG_WAR(0x3016, "  End of this pdo. Should have been sent", 0);
     00266         pdoNum++;
     00267         offsetObjdict++;
     00268         offsetObjdictMap++;
     00269         offset = 0x00;
     00270         prp_j = 0x00;
    -00271         status = state11;
    +00271         status = state11;
     00272         break;
     00273       }
     00274       
    -00275     case state11:     
    -00276       MSG_WAR(0x3017, "next pdo index : ", pdoNum);
    -00277       status = state3;
    +00275     case state11:     
    +00276       MSG_WAR(0x3017, "next pdo index : ", pdoNum);
    +00277       status = state3;
     00278       break;
     00279       
     00280     default:
    -00281       MSG_ERR(0x1019,"Unknown state has been reached : %d",status);
    +00281       MSG_ERR(0x1019,"Unknown state has been reached : %d",status);
     00282       return 0xFF;
     00283     }/* end switch case */
     00284     
     00285   }/* end while( prp_i<dict_cstes.max_count_of_PDO_transmit ) */
     00286    
    -00287   (*d->post_TPDO)();
    +00287   (*d->post_TPDO)();
     00288 
     00289   return 0;
     00290 }
     00291 
     00292 
    -00293 void _post_sync(){}
    -00294 void _post_TPDO(){}
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +00293 void _post_sync(){} +00294 void _post_TPDO(){} +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c.html --- a/doc/doxygen/html/sync_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/sync.c File Reference +CanFestival: src/sync.c File Reference @@ -8,35 +8,58 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/sync.c File Reference

    #include "data.h"
    -#include "sync.h"
    -#include "canfestival.h"
    - -

    -Include dependency graph for sync.c:

    + +

    sync.c File Reference

    #include "data.h"
    +#include "sync.h"
    +#include "canfestival.h"
    + +

    +Include dependency graph for sync.c:

    + + + + + + + + + + + + + + + + + + +

    Go to the source code of this file. - - - - - - - - - - - + + + + + + + + + + + @@ -56,6 +79,7 @@ + @@ -77,6 +101,7 @@ + @@ -98,13 +123,13 @@ - + - + @@ -136,7 +161,7 @@

    Definition at line 69 of file sync.c.

    -References startSYNC(). +References struct_s_timer_entry::d, and startSYNC().

    Referenced by startSYNC().

    @@ -150,7 +175,8 @@ - + + @@ -162,13 +188,13 @@

    - + - + @@ -190,36 +216,22 @@
    Returns:

    -pointer to the var which is mapped to a pdo

    -pointer fo the var which holds the mapping parameter of an mapping entry

    -pointer to the transmissiontype...

    -only operational state allows PDO transmission

    -So, the node is in operational state

    -study all PDO stored in the objects dictionary

    -get the PDO transmission type

    -check if transmission type is after (this) SYNC

    -The message may not be transmited every SYNC but every n SYNC

    -get PDO CobId

    -get mapped objects number to transmit with this PDO

    -get mapping parameters

    -get data to transmit

    -copy bit per bit in little endian

    -loop to get all the data to transmit -

    Definition at line 141 of file sync.c.

    -References CopyBits(), getODentry(), and PDOmGR(). +References td_indextable::bSubCount, CopyBits(), struct_s_process_var::count, struct_CO_Data::count_sync, struct_s_timer_entry::d, struct_s_process_var::data, struct_CO_Data::firstIndex, getODentry(), struct_CO_Data::lastIndex, MSG_ERR, MSG_WAR, struct_CO_Data::nodeState, struct_CO_Data::objdict, OD_SUCCESSFUL, Operational, s_quick_index::PDO_TRS, s_quick_index::PDO_TRS_MAP, PDOmGR(), td_subindex::pObject, struct_CO_Data::post_sync, struct_CO_Data::post_TPDO, struct_CO_Data::process_var, td_indextable::pSubindex, state10, state11, state3, state4, state5, state7, state8, state9, TRANS_SYNC_MAX, TRANS_SYNC_MIN, UNS16, UNS32, and UNS8.

    Referenced by canDispatch(), and sendSYNC().

    Here is the call graph for this function:

    - - - + + + - + + + @@ -231,7 +243,7 @@ - + @@ -261,19 +273,21 @@

    Definition at line 118 of file sync.c.

    -References proceedSYNC(). +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::len, MSG_WAR, NOT_A_REQUEST, proceedSYNC(), Message::rtr, UNS8, and SHORT_CAN::w.

    Referenced by SyncAlarm().

    Here is the call graph for this function:

    - - - - - - - + + + + + + + + + @@ -285,7 +299,7 @@ - + @@ -304,26 +318,26 @@

    Definition at line 80 of file sync.c.

    -References OnCOB_ID_SyncUpdate(), RegisterSetODentryCallBack(), SetAlarm(), stopSYNC(), and SyncAlarm(). +References struct_CO_Data::COB_ID_Sync, struct_s_timer_entry::d, OnCOB_ID_SyncUpdate(), RegisterSetODentryCallBack(), SetAlarm(), stopSYNC(), struct_CO_Data::Sync_Cycle_Period, SyncAlarm(), struct_CO_Data::syncTimer, and US_TO_TIMEVAL.

    Referenced by OnCOB_ID_SyncUpdate(), and switchCommunicationState().

    Here is the call graph for this function:

    - - - + + + - - + + - - - - - - + + + + + + @@ -335,7 +349,7 @@ - + @@ -354,7 +368,7 @@

    Definition at line 105 of file sync.c.

    -References DelAlarm(). +References struct_s_timer_entry::d, DelAlarm(), and struct_CO_Data::syncTimer.

    Referenced by startSYNC(), and switchCommunicationState().

    @@ -372,7 +386,7 @@

    - + @@ -401,25 +415,26 @@

    Definition at line 55 of file sync.c.

    -References sendSYNC(). +References struct_CO_Data::COB_ID_Sync, struct_s_timer_entry::d, and sendSYNC().

    Referenced by startSYNC().

    Here is the call graph for this function:

    - - - - - - - - - - - -

    -


    Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  + + + + + + + + + + + + +

    +


    Generated on Fri Jun 8 08:52:16 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.map --- a/doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,8 +1,10 @@ base referer -rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 145,54 257,78 -rect $pdo_8c.html#e468510c9f77f502207d961d26389918 317,6 397,30 -rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 308,54 407,78 -rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 316,102 399,126 -rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 457,54 564,78 -rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 615,54 783,78 -rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 469,102 552,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 659,32 739,56 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 146,80 258,104 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 834,32 964,56 +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 318,104 398,128 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 308,152 407,176 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 316,56 399,80 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 458,152 564,176 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 615,152 783,176 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 470,56 552,80 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.md5 --- a/doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -c8ff671579dc1b92a701a7b520877c58 \ No newline at end of file +9930dd99e9fe2f343d5664b5d77dbc2d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.png Binary file doc/doxygen/html/sync_8c_0bcc501eb14c12365ffbaa3453905b50_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.map --- a/doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,15 +1,15 @@ base referer -rect $sync_8c.html#82595787f641ab85980d83522f1158b0 161,6 340,30 -rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 144,54 357,78 -rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 209,102 292,126 +rect $sync_8c.html#82595787f641ab85980d83522f1158b0 162,6 340,30 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 144,54 358,78 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 210,102 292,126 rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 207,150 295,174 -rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 204,198 297,222 -rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 405,54 517,78 +rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 204,198 298,222 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 406,54 518,78 rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 420,150 503,174 rect $sync_8c.html#0bcc501eb14c12365ffbaa3453905b50 416,198 507,222 -rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 567,198 679,222 -rect $pdo_8c.html#e468510c9f77f502207d961d26389918 739,150 819,174 -rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 729,198 828,222 -rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 737,246 820,270 -rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 879,198 985,222 -rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 891,246 973,270 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 583,162 663,186 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 567,234 679,258 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 730,150 860,174 +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 755,198 835,222 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 746,246 844,270 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 754,294 836,318 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.md5 --- a/doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -cecff1b8e5fbf43211c61142ea3fcaa8 \ No newline at end of file +85768b050d823c7a08e50a1293bc0d6f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.png Binary file doc/doxygen/html/sync_8c_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.map --- a/doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,7 +1,9 @@ base referer rect $pdo_8c.html#e468510c9f77f502207d961d26389918 179,6 259,30 -rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 170,54 268,78 -rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 178,102 260,126 -rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 319,54 426,78 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 169,54 268,78 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 177,102 260,126 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 319,54 425,78 rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 476,54 644,78 -rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 331,102 414,126 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 331,102 413,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 520,102 600,126 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 695,102 825,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.md5 --- a/doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -7ba0d04bb1d14a1577c964b5b95d851d \ No newline at end of file +bbde2e0b5df9843116205ceb77f07157 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.png Binary file doc/doxygen/html/sync_8c_80cadcba23dc859db8a8d3f52789d6d1_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.map --- a/doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -7,4 +7,5 @@ rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 635,6 747,30 rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 650,102 732,126 rect $sync_8c.html#0bcc501eb14c12365ffbaa3453905b50 646,150 736,174 -rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 796,150 908,174 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 812,126 892,150 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 796,174 908,198 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.md5 --- a/doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -136de0a106bf9029ca6d12894b37087a \ No newline at end of file +45e3b8916c4d860d5e908592300e3d30 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.png Binary file doc/doxygen/html/sync_8c_82595787f641ab85980d83522f1158b0_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c__incl.map --- a/doc/doxygen/html/sync_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,18 @@ base referer +rect $data_8h.html 322,296 386,320 +rect $sync_8h.html 474,6 540,30 +rect $win32_2canfestival_8h.html 146,566 252,590 +rect $win32_2applicfg_8h.html 731,396 819,420 +rect $def_8h.html 615,84 671,108 +rect $can_8h.html 478,542 536,566 +rect $objdictdef_8h.html 456,248 558,272 +rect $objacces_8h.html 460,395 554,419 +rect $sdo_8h.html 478,443 536,467 +rect $pdo_8h.html 478,152 536,176 +rect $states_8h.html 470,200 544,224 +rect $lifegrd_8h.html 468,296 546,320 +rect $nmtMaster_8h.html 454,104 560,128 +rect $config_8h.html 738,84 812,108 +rect $timer_8h.html 608,468 678,492 +rect $win32_2timerscfg_8h.html 726,543 824,567 +rect $can__driver_8h.html 302,566 406,590 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c__incl.md5 --- a/doc/doxygen/html/sync_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -166b93be3221641b3a3c953cd34e1ce9 \ No newline at end of file +7fcda8351472b3e430e3aefa2d4daa3c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c__incl.png Binary file doc/doxygen/html/sync_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.map --- a/doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,9 +1,10 @@ base referer -rect $sync_8c.html#0bcc501eb14c12365ffbaa3453905b50 149,54 240,78 -rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 289,54 401,78 -rect $pdo_8c.html#e468510c9f77f502207d961d26389918 461,6 541,30 -rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 452,54 551,78 -rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 460,102 543,126 -rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 601,54 708,78 -rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 759,54 927,78 -rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 613,102 696,126 +rect $sync_8c.html#0bcc501eb14c12365ffbaa3453905b50 150,32 240,56 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 759,80 839,104 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 290,80 402,104 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 890,80 1020,104 +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 462,56 542,80 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 452,104 551,128 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 460,152 543,176 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 602,104 708,128 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 614,152 696,176 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.md5 --- a/doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -c02ba510a6a862dfb92545eeea8531a7 \ No newline at end of file +49298164fcfa3eabb7d85ea840398b38 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.png Binary file doc/doxygen/html/sync_8c_bbcce7b549414c7bc1aa72fa66258b45_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,66 @@ + + +CanFestival: include/sync.h Source File + + + + + + + +

    sync.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __SYNC_h__
    +00024 #define __SYNC_h__
    +00025 
    +00026 void startSYNC(CO_Data* d);
    +00027 
    +00028 void stopSYNC(CO_Data* d);
    +00029 
    +00030 typedef void (*post_sync_t)(void);
    +00031 void _post_sync(void);
    +00032 
    +00033 typedef void (*post_TPDO_t)(void);
    +00034 void _post_TPDO(void);
    +00035 
    +00040 UNS8 sendSYNC (CO_Data* d, UNS32 cob_id);
    +00041 
    +00057 UNS8 proceedSYNC (CO_Data* d, Message * m);
    +00058 
    +00059 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,346 @@ + + +CanFestival: include/sync.h File Reference + + + + + + + +

    sync.h File Reference

    +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file.


    Functions

    void SyncAlarm (CO_Data *d, UNS32 id)
    UNS32 OnCOB_ID_SyncUpdate (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
    void startSYNC (CO_Data *d)
    void stopSYNC (CO_Data *d)
    UNS8 sendSYNC (CO_Data *d, UNS32 cob_id)
    UNS8 proceedSYNC (CO_Data *d, Message *m)
    void SyncAlarm (CO_Data *d, UNS32 id)
    UNS32 OnCOB_ID_SyncUpdate (CO_Data *d, const indextable *unsused_indextable, UNS8 unsused_bSubindex)
    void startSYNC (CO_Data *d)
    void stopSYNC (CO_Data *d)
    UNS8 sendSYNC (CO_Data *d, UNS32 cob_id)
    UNS8 proceedSYNC (CO_Data *d, Message *m)
    void _post_sync ()
    void _post_sync (void   ) 
    void _post_TPDO (void   ) 
    UNS32 OnCOB_ID_SyncUpdate (CO_Data * CO_Data d,
    const indextable * const indextable unsused_indextable,
    UNS8 proceedSYNC (CO_Data * CO_Data d,
    Message * Message m 
    UNS8 sendSYNC (CO_Data * CO_Data d,
    void startSYNC (CO_Data * CO_Data d  ) 
    void stopSYNC (CO_Data * CO_Data d  ) 
    void SyncAlarm (CO_Data * CO_Data d,
    + + + + + + + + + + + + + + + + + + + +

    Typedefs

    typedef void(*) post_sync_t (void)
    typedef void(*) post_TPDO_t (void)

    Functions

    void startSYNC (CO_Data *d)
    void stopSYNC (CO_Data *d)
    void _post_sync (void)
    void _post_TPDO (void)
    UNS8 sendSYNC (CO_Data *d, UNS32 cob_id)
    UNS8 proceedSYNC (CO_Data *d, Message *m)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef void(*) post_sync_t(void)
    +
    +
    + +

    + +

    +Definition at line 30 of file sync.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) post_TPDO_t(void)
    +
    +
    + +

    + +

    +Definition at line 33 of file sync.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void _post_sync (void   ) 
    +
    +
    + +

    + +

    +Definition at line 293 of file sync.c. +

    +

    + +

    +
    + + + + + + + + + +
    void _post_TPDO (void   ) 
    +
    +
    + +

    + +

    +Definition at line 294 of file sync.c. +

    +

    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 sendSYNC (CO_Data d,
    UNS32  cob_id 
    )
    +
    +
    + +

    +

    Parameters:
    + + + +
    d 
    cob_id 
    +
    +
    Returns:
    + +

    +Definition at line 118 of file sync.c. +

    +References struct_CO_Data::canHandle, canSend(), Message::cob_id, struct_s_timer_entry::d, Message::len, MSG_WAR, NOT_A_REQUEST, proceedSYNC(), Message::rtr, UNS8, and SHORT_CAN::w. +

    +Referenced by SyncAlarm(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void startSYNC (CO_Data d  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    d 
    +
    + +

    +Definition at line 80 of file sync.c. +

    +References struct_CO_Data::COB_ID_Sync, struct_s_timer_entry::d, OnCOB_ID_SyncUpdate(), RegisterSetODentryCallBack(), SetAlarm(), stopSYNC(), struct_CO_Data::Sync_Cycle_Period, SyncAlarm(), struct_CO_Data::syncTimer, and US_TO_TIMEVAL. +

    +Referenced by OnCOB_ID_SyncUpdate(), and switchCommunicationState(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void stopSYNC (CO_Data d  ) 
    +
    +
    + +

    +

    Parameters:
    + + +
    d 
    +
    + +

    +Definition at line 105 of file sync.c. +

    +References struct_s_timer_entry::d, DelAlarm(), and struct_CO_Data::syncTimer. +

    +Referenced by startSYNC(), and switchCommunicationState(). +

    +Here is the call graph for this function:

    + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:06 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_0bcc501eb14c12365ffbaa3453905b50_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_0bcc501eb14c12365ffbaa3453905b50_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 659,32 739,56 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 146,80 258,104 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 834,32 964,56 +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 318,104 398,128 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 308,152 407,176 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 316,56 399,80 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 458,152 564,176 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 615,152 783,176 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 470,56 552,80 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_0bcc501eb14c12365ffbaa3453905b50_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_0bcc501eb14c12365ffbaa3453905b50_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9930dd99e9fe2f343d5664b5d77dbc2d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_0bcc501eb14c12365ffbaa3453905b50_cgraph.png Binary file doc/doxygen/html/sync_8h_0bcc501eb14c12365ffbaa3453905b50_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $sync_8c.html#82595787f641ab85980d83522f1158b0 146,107 324,131 +rect $objacces_8c.html#514e7b9c13835a86446b1cd38fa34049 512,20 726,44 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 578,93 660,117 +rect $sync_8c.html#41c47dbd59d22bf9bab6cd288cf27164 575,141 663,165 +rect $sync_8c.html#bbcce7b549414c7bc1aa72fa66258b45 572,197 666,221 +rect $sync_8c.html#2e0bf669f5b40dfbdda0f12a5ae3631a 375,107 463,131 +rect $objacces_8c.html#11e9f24840d05a6a622955b51f91af53 774,20 886,44 +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 788,141 871,165 +rect $sync_8c.html#0bcc501eb14c12365ffbaa3453905b50 784,197 875,221 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +ac36be83529c1420ac50fcf3b9c3e2a9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.png Binary file doc/doxygen/html/sync_8h_2e0bf669f5b40dfbdda0f12a5ae3631a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_41c47dbd59d22bf9bab6cd288cf27164_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_41c47dbd59d22bf9bab6cd288cf27164_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $timer_8c.html#991b3cfaac2f201b14d5530f75985c21 143,6 225,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_41c47dbd59d22bf9bab6cd288cf27164_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_41c47dbd59d22bf9bab6cd288cf27164_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +94bbf875608590ab9f324116e53c3d59 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_41c47dbd59d22bf9bab6cd288cf27164_cgraph.png Binary file doc/doxygen/html/sync_8h_41c47dbd59d22bf9bab6cd288cf27164_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_80cadcba23dc859db8a8d3f52789d6d1_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_80cadcba23dc859db8a8d3f52789d6d1_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $pdo_8c.html#e468510c9f77f502207d961d26389918 179,6 259,30 +rect $objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac 169,54 268,78 +rect $pdo_8c.html#298b8291fa35cca22264cf8a70bf138a 177,102 260,126 +rect $objacces_8c.html#49e9444c8c8d39906a40a153366ed09c 319,54 425,78 +rect $objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26 476,54 644,78 +rect $pdo_8c.html#d9a4a4f0a4ef48866c6184ccbd30f210 331,102 413,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 520,102 600,126 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 695,102 825,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_80cadcba23dc859db8a8d3f52789d6d1_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h_80cadcba23dc859db8a8d3f52789d6d1_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +bbde2e0b5df9843116205ceb77f07157 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h_80cadcba23dc859db8a8d3f52789d6d1_cgraph.png Binary file doc/doxygen/html/sync_8h_80cadcba23dc859db8a8d3f52789d6d1_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,20 @@ +base referer +rect $sync_8c.html 737,57 825,81 +rect $data_8h.html 175,493 292,517 +rect $lifegrd_8c.html 731,301 832,325 +rect $unix_8c.html 708,229 855,253 +rect $objdict_8h.html 359,349 641,373 +rect $TestMasterSlave_2TestMaster_8h.html 356,397 644,421 +rect $TestSlave_8h.html 359,445 641,469 +rect $TestMasterMicroMod_2TestMaster_8h.html 341,493 659,517 +rect $win32test_8h.html 380,541 620,565 +rect $objacces_8h.html 427,589 573,613 +rect $lifegrd_8h.html 435,301 565,325 +rect $nmtMaster_8h.html 420,688 580,712 +rect $nmtSlave_8h.html 424,736 576,760 +rect $timer_8h.html 439,859 561,883 +rect $sdo_8h.html 725,797 837,821 +rect $pdo_8h.html 443,907 557,931 +rect $states_8h.html 436,107 564,131 +rect $unix_2canfestival_8h.html 403,155 597,179 +rect $win32_2canfestival_8h.html 396,253 604,277 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sync_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +7dfaf52b4c1fdc051ff72825c249b02e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sync_8h__dep__incl.png Binary file doc/doxygen/html/sync_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sysdep_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,53 @@ + + +CanFestival: include/sysdep.h Source File + + + + + + + +

    sysdep.h

    Go to the documentation of this file.
    00001 #ifndef __sysdep_h__
    +00002 #define __sysdep_h__
    +00003 
    +00004 #include "config.h"
    +00005 
    +00006 #ifdef CANOPEN_BIG_ENDIAN
    +00007 
    +00008 /* Warning: the argument must not update pointers, e.g. *p++ */
    +00009 
    +00010 #define UNS16_LE(v)  ((((UNS16)(v) & 0xff00) >> 8) | \
    +00011                       (((UNS16)(v) & 0x00ff) << 8))
    +00012 
    +00013 #define UNS32_LE(v)  ((((UNS32)(v) & 0xff000000) >> 24) |       \
    +00014                       (((UNS32)(v) & 0x00ff0000) >> 8)  |       \
    +00015                       (((UNS32)(v) & 0x0000ff00) << 8)  |       \
    +00016                       (((UNS32)(v) & 0x000000ff) << 24))
    +00017 
    +00018 #else
    +00019 
    +00020 #define UNS16_LE(v)  (v)
    +00021 
    +00022 #define UNS32_LE(v)  (v)
    +00023 
    +00024 #endif
    +00025 
    +00026 #endif /* __sysdep_h__ */
    +00027 
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sysdep_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,98 @@ + + +CanFestival: include/sysdep.h File Reference + + + + + + + +

    sysdep.h File Reference

    #include "config.h"
    + +

    +Include dependency graph for sysdep.h:

    + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file. + + + + + + +

    Defines

    #define UNS16_LE(v)   (v)
    #define UNS32_LE(v)   (v)
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define UNS16_LE (  )    (v)
    +
    +
    + +

    + +

    +Definition at line 20 of file sysdep.h. +

    +Referenced by decompo_dcf(). +

    +

    + +

    +
    + + + + + + + + + +
    #define UNS32_LE (  )    (v)
    +
    +
    + +

    + +

    +Definition at line 22 of file sysdep.h. +

    +Referenced by decompo_dcf(). +

    +

    +


    Generated on Fri Jun 8 08:52:06 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sysdep_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $dcf_8c.html 189,6 267,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sysdep_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +03d48e8a5ae394150ec5079055d3a7a2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h__dep__incl.png Binary file doc/doxygen/html/sysdep_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sysdep_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $config_8h.html 191,6 265,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sysdep_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +815d01dd48bdaa2cf4b944a6d36f4abd \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/sysdep_8h__incl.png Binary file doc/doxygen/html/sysdep_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c-source.html --- a/doc/doxygen/html/timer_8c-source.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/timer_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/timer.c Source File +CanFestival: src/timer.c Source File @@ -8,14 +8,18 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/timer.c

    Go to the documentation of this file.
    00001 /*
    +
    +

    timer.c

    Go to the documentation of this file.
    00001 /*
     00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
     00003 
     00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    @@ -39,32 +43,33 @@
     00032 /* #define DEBUG_WAR_CONSOLE_ON */
     00033 /* #define DEBUG_ERR_CONSOLE_ON */
     00034 
    -00035 #include <applicfg.h>
    -00036 #include "timer.h"
    +00035 #include <applicfg.h>
    +00036 #include "timer.h"
     00037 
     00038 /*  ---------  The timer table --------- */
    -00039 s_timer_entry timers[MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},};
    +00039 s_timer_entry timers[MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},};
     00040 
    -00041 TIMEVAL total_sleep_time = TIMEVAL_MAX;
    -00042 TIMER_HANDLE last_timer_raw = -1;
    +00041 TIMEVAL total_sleep_time = TIMEVAL_MAX;
    +00042 TIMER_HANDLE last_timer_raw = -1;
     00043 
     00044 #define min_val(a,b) ((a<b)?a:b)
     00045 
    -00057 TIMER_HANDLE SetAlarm(CO_Data* d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)
    +00057 TIMER_HANDLE SetAlarm(CO_Data* d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)
     00058 {
     00059         /*printf("SetAlarm(UNS32 id=%d, TimerCallback_t callback=%x, TIMEVAL value=%d, TIMEVAL period=%d)\n", id, callback, value, period); */
    -00060         TIMER_HANDLE i;
    -00061         TIMER_HANDLE row_number = TIMER_NONE;
    +00060         TIMER_HANDLE i;
    +00061         TIMER_HANDLE row_number = TIMER_NONE;
     00062 
    -00064         for(i=0; i <= last_timer_raw + 1 && i < MAX_NB_TIMER; i++)
    +00063         /* in order to decide new timer setting we have to run over all timer rows */
    +00064         for(i=0; i <= last_timer_raw + 1 && i < MAX_NB_TIMER; i++)
     00065         {
    -00066                 s_timer_entry *row = (timers+i);
    +00066                 s_timer_entry *row = (timers+i);
     00067 
    -00068                 if (callback &&         
    -00069                    row->state == TIMER_FREE) 
    -00070                 {       
    +00068                 if (callback &&         /* if something to store */
    +00069                    row->state == TIMER_FREE) /* and empty row */
    +00070                 {       /* just store */
     00071                         row->callback = callback;
    -00072                         row->d = d;
    +00072                         row->d = d;
     00073                         row->id = id;
     00074                         row->val = value;
     00075                         row->interval = period;
    @@ -74,96 +79,109 @@
     00079                 }
     00080         }
     00081         
    -00082         if (row_number != TIMER_NONE) 
    +00082         if (row_number != TIMER_NONE) /* if successfull **/
     00083         {
    -00084                 TIMEVAL real_timer_value;
    -00085                 TIMEVAL elapsed_time;
    +00084                 TIMEVAL real_timer_value;
    +00085                 TIMEVAL elapsed_time;
     00086                 
     00087                 if (row_number == last_timer_raw + 1) last_timer_raw++;
     00088                 
    -00090                 real_timer_value = min_val(value, TIMEVAL_MAX);
    -00091                 elapsed_time = getElapsedTime();
    +00089                 /* set next wakeup alarm if new entry is sooner than others, or if it is alone */
    +00090                 real_timer_value = min_val(value, TIMEVAL_MAX);
    +00091                 elapsed_time = getElapsedTime();
     00092 
    +00093                 /*printf("elapsed_time=%d real_timer_value=%d total_sleep_time=%d\n", elapsed_time, real_timer_value, total_sleep_time); */
     00094                 if (total_sleep_time > elapsed_time && total_sleep_time - elapsed_time > real_timer_value)
     00095                 {
     00096                         total_sleep_time = elapsed_time + real_timer_value;
    -00097                         setTimer(real_timer_value);
    +00097                         setTimer(real_timer_value);
     00098                 }
    +00099                 /*printf("SetAlarm() return %d\n", row_number); */
     00100                 return row_number;
     00101         }
     00102         return TIMER_NONE;
     00103 }
     00104 
    -00112 TIMER_HANDLE DelAlarm(TIMER_HANDLE handle)
    +00112 TIMER_HANDLE DelAlarm(TIMER_HANDLE handle)
     00113 {
    -00115         MSG_WAR(0x3320, "DelAlarm. handle = ", handle);
    +00114         /* Quick and dirty. system timer will continue to be trigged, but no action will be preformed. */
    +00115         MSG_WAR(0x3320, "DelAlarm. handle = ", handle);
     00116         if(handle != TIMER_NONE)
     00117         {
     00118                 if(handle == last_timer_raw) 
     00119                         last_timer_raw--;
    -00120                 timers[handle].state = TIMER_FREE;              
    +00120                 timers[handle].state = TIMER_FREE;              
     00121         }
     00122         else {
     00123         }
     00124         return TIMER_NONE;
     00125 }
     00126 
    -00131 void TimeDispatch()
    +00131 void TimeDispatch()
     00132 {
    -00133         TIMER_HANDLE i;
    -00134         TIMEVAL next_wakeup = TIMEVAL_MAX; 
    -00137         TIMEVAL overrun = getElapsedTime();
    +00133         TIMER_HANDLE i;
    +00134         TIMEVAL next_wakeup = TIMEVAL_MAX; /* used to compute when should normaly occur next wakeup */
    +00135         /* First run : change timer state depending on time */
    +00136         /* Get time since timer signal */
    +00137         TIMEVAL overrun = getElapsedTime();
     00138         
    -00139         TIMEVAL real_total_sleep_time = total_sleep_time + overrun;
    +00139         TIMEVAL real_total_sleep_time = total_sleep_time + overrun;
     00140         /*printf("total_sleep_time %d + overrun %d\n", total_sleep_time , overrun); */
     00141 
     00142         for(i=0; i <= last_timer_raw; i++)
     00143         {
    -00144                 s_timer_entry *row = (timers+i);
    +00144                 s_timer_entry *row = (timers+i);
     00145 
    -00146                 if (row->state & TIMER_ARMED) 
    +00146                 if (row->state & TIMER_ARMED) /* if row is active */
     00147                 {
    -00148                         if (row->val <= real_total_sleep_time) 
    +00148                         if (row->val <= real_total_sleep_time) /* to be trigged */
     00149                         {
     00150                                 /*printf("row->val(%d) <= (%d)real_total_sleep_time\n", row->val, real_total_sleep_time); */
    -00151                                 if (!row->interval) 
    +00151                                 if (!row->interval) /* if simply outdated */
     00152                                 {
    -00153                                         row->state = TIMER_TRIG; 
    +00153                                         row->state = TIMER_TRIG; /* ask for trig */
     00154                                 }
    -00155                                 else 
    +00155                                 else /* or period have expired */
     00156                                 {
    +00157                                         /* set val as interval, with overrun correction */
     00158                                         row->val = row->interval - (overrun % row->interval);
     00159                                         row->state = TIMER_TRIG_PERIOD; /* ask for trig, periodic */
    +00160                                         /* Check if this new timer value is the soonest */
     00161                                         next_wakeup = min_val(row->val,next_wakeup);
     00162                                 }
     00163                         }
     00164                         else
     00165                         {
    +00166                                 /* Each armed timer value in decremented. */
     00167                                 row->val -= real_total_sleep_time;
     00168 
    +00169                                 /* Check if this new timer value is the soonest */
     00170                                 next_wakeup = min_val(row->val,next_wakeup);
     00171                         }
     00172                 }
     00173         }
     00174         
    +00175         /* Remember how much time we should sleep. */
     00176         total_sleep_time = next_wakeup;
     00177 
    -00179         setTimer(next_wakeup);
    +00178         /* Set timer to soonest occurence */
    +00179         setTimer(next_wakeup);
     00180 
    +00181         /* Then trig them or not. */
     00182         for(i=0; i<=last_timer_raw; i++)
     00183         {
    -00184                 s_timer_entry *row = (timers+i);
    +00184                 s_timer_entry *row = (timers+i);
     00185 
     00186                 if (row->state & TIMER_TRIG)
     00187                 {
    -00188                         row->state &= ~TIMER_TRIG; 
    +00188                         row->state &= ~TIMER_TRIG; /* reset trig state (will be free if not periodic) */
     00189                         if(row->callback)
    -00190                                 (*row->callback)(row->d, row->id); 
    +00190                                 (*row->callback)(row->d, row->id); /* trig ! */
     00191                 }
     00192         }
     00193 }
     00194 
    -

    Generated on Tue Jun 5 18:32:05 2007 for CanFestival by  +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c.html --- a/doc/doxygen/html/timer_8c.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/timer_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -1,6 +1,6 @@ -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/timer.c File Reference +CanFestival: src/timer.c File Reference @@ -8,18 +8,39 @@ -

    /home/epimerde/documents/tc11/CanFestival-3/src/timer.c File Reference

    #include <applicfg.h>
    -#include "timer.h"
    - -

    -Include dependency graph for timer.c:

    + +

    timer.c File Reference

    #include <applicfg.h>
    +#include "timer.h"
    + +

    +Include dependency graph for timer.c:

    + + + + + + + + + + + + + + + + +

    Go to the source code of this file. @@ -28,14 +49,14 @@ - + - + @@ -102,11 +123,9 @@
    Returns:

    -Quick and dirty. system timer will continue to be trigged, but no action will be preformed. -

    Definition at line 112 of file timer.c.

    -References last_timer_raw, and timers. +References last_timer_raw, MSG_WAR, struct_s_timer_entry::state, and timers.

    Referenced by heartbeatStop(), proceedNODE_GUARD(), ProducerHearbeatAlarm(), and stopSYNC(). @@ -118,7 +137,7 @@

    - + @@ -130,7 +149,7 @@ - + @@ -168,20 +187,11 @@
    Returns:

    -in order to decide new timer setting we have to run over all timer rows

    -if something to store

    -and empty row

    -just store

    -if successfull

    -set next wakeup alarm if new entry is sooner than others, or if it is alone

    -printf("elapsed_time=%d real_timer_value=%d total_sleep_time=%d\n", elapsed_time, real_timer_value, total_sleep_time);

    -printf("SetAlarm() return %d\n", row_number); -

    Definition at line 57 of file timer.c.

    -References last_timer_raw, and timers. -

    -Referenced by heartbeatInit(), proceedNODE_GUARD(), and startSYNC(). +References struct_s_timer_entry::d, last_timer_raw, MAX_NB_TIMER, TIMER_HANDLE, and timers. +

    +Referenced by heartbeatInit(), proceedNODE_GUARD(), startSYNC(), and StartTimerLoop().

    @@ -191,6 +201,7 @@

    + @@ -202,27 +213,17 @@

    ------ TimeDispatch is called on each timer expiration ----

    -used to compute when should normaly occur next wakeup

    -First run : change timer state depending on time

    -Get time since timer signal

    -if row is active

    -to be trigged

    -if simply outdated

    -ask for trig

    -or period have expired

    -set val as interval, with overrun correction

    -Check if this new timer value is the soonest

    -Each armed timer value in decremented.

    -Check if this new timer value is the soonest

    -Remember how much time we should sleep.

    -Set timer to soonest occurence

    -Then trig them or not.

    -reset trig state (will be free if not periodic)

    -trig ! -

    Definition at line 131 of file timer.c.

    -References last_timer_raw, min_val, timers, and total_sleep_time. +References getElapsedTime(), last_timer_raw, min_val, TIMER_HANDLE, timers, TIMEVAL, TIMEVAL_MAX, and total_sleep_time. +

    +Referenced by class_timers::timer_loop_thread_proc(), timer_notify(), and timerloop_task_proc(). +

    +Here is the call graph for this function:

    + + + +


    Variable Documentation

    @@ -250,7 +251,7 @@
    #define min_val(a, b)   ((a<b)?a:b)

    Functions

    TIMER_HANDLE SetAlarm (CO_Data *d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)
    TIMER_HANDLE SetAlarm (CO_Data *d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)
    TIMER_HANDLE DelAlarm (TIMER_HANDLE handle)
    void TimeDispatch ()

    Variables

    s_timer_entry timers [MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},}
    s_timer_entry timers [MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},}
    TIMEVAL total_sleep_time = TIMEVAL_MAX
    TIMER_HANDLE SetAlarm (CO_Data * CO_Data d,
    TimerCallback_t TimerCallback_t  callback,
    void TimeDispatch (void   ) 
    - +
    s_timer_entry timers[MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},} s_timer_entry timers[MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},}
    @@ -283,7 +284,7 @@ Referenced by TimeDispatch().

    -


    Generated on Tue Jun 5 18:32:11 2007 for CanFestival by  +
    Generated on Fri Jun 8 08:52:17 2007 for CanFestival by  doxygen 1.5.1
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c__incl.map --- a/doc/doxygen/html/timer_8c__incl.map Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/timer_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,16 @@ base referer +rect $win32_2applicfg_8h.html 567,349 655,373 +rect $timer_8h.html 147,301 216,325 +rect $win32_2timerscfg_8h.html 264,56 363,80 +rect $data_8h.html 282,301 346,325 +rect $def_8h.html 583,155 639,179 +rect $can_8h.html 435,301 494,325 +rect $objdictdef_8h.html 414,445 515,469 +rect $objacces_8h.html 418,349 511,373 +rect $sdo_8h.html 435,56 494,80 +rect $pdo_8h.html 435,203 494,227 +rect $states_8h.html 427,397 502,421 +rect $lifegrd_8h.html 426,541 503,565 +rect $sync_8h.html 431,493 498,517 +rect $nmtMaster_8h.html 411,155 518,179 +rect $config_8h.html 714,155 788,179 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c__incl.md5 --- a/doc/doxygen/html/timer_8c__incl.md5 Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/timer_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -1,1 +1,1 @@ -111f9708c378080125be15074680b8fa \ No newline at end of file +f3f54bd2705c1325b0416ec5f2f25537 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c__incl.png Binary file doc/doxygen/html/timer_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 171,6 302,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e45648d6fb21e6505480b74196520c85 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.png Binary file doc/doxygen/html/timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,90 @@ + + +CanFestival: include/timer.h Source File + + + + + + + +

    timer.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __timer_h__
    +00024 #define __timer_h__
    +00025 
    +00026 #include <timerscfg.h>
    +00027 #include <applicfg.h>
    +00028 
    +00029 #define TIMER_HANDLE INTEGER16
    +00030 
    +00031 #include "data.h"
    +00032 
    +00033 /* --------- types and constants definitions --------- */
    +00034 #define TIMER_FREE 0
    +00035 #define TIMER_ARMED 1
    +00036 #define TIMER_TRIG 2
    +00037 #define TIMER_TRIG_PERIOD 3
    +00038 
    +00039 #define TIMER_NONE -1
    +00040 
    +00041 typedef void (*TimerCallback_t)(CO_Data* d, UNS32 id);
    +00042 
    +00043 struct struct_s_timer_entry {
    +00044         UNS8 state;
    +00045         CO_Data* d;
    +00046         TimerCallback_t callback; /* The callback func. */
    +00047         UNS32 id; /* The callback func. */
    +00048         TIMEVAL val;
    +00049         TIMEVAL interval; /* Periodicity */
    +00050 };
    +00051 
    +00052 typedef struct struct_s_timer_entry s_timer_entry;
    +00053 
    +00054 /* ---------  prototypes --------- */
    +00055 /*#define SetAlarm(d, id, callback, value, period) printf("%s, %d, SetAlarm(%s, %s, %s, %s, %s)\n",__FILE__, __LINE__, #d, #id, #callback, #value, #period); _SetAlarm(d, id, callback, value, period)*/
    +00056 TIMER_HANDLE SetAlarm(CO_Data* d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period);
    +00057 TIMER_HANDLE DelAlarm(TIMER_HANDLE handle);
    +00058 void TimeDispatch(void);
    +00059 
    +00060 /* ---------  to be defined in user app ---------*/
    +00061 void setTimer(TIMEVAL value);
    +00062 TIMEVAL getElapsedTime(void);
    +00063 
    +00064 #endif /* #define __timer_h__ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,339 @@ + + +CanFestival: include/timer.h File Reference + + + + + + + +

    timer.h File Reference

    #include <timerscfg.h>
    +#include <applicfg.h>
    +#include "data.h"
    + +

    +Include dependency graph for timer.h:

    + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  struct_s_timer_entry

    Defines

    #define TIMER_HANDLE   INTEGER16

    Typedefs

    typedef void(*) TimerCallback_t (CO_Data *d, UNS32 id)
    typedef struct_s_timer_entry s_timer_entry

    Functions

    TIMER_HANDLE SetAlarm (CO_Data *d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)
    TIMER_HANDLE DelAlarm (TIMER_HANDLE handle)
    void TimeDispatch (void)
    void setTimer (TIMEVAL value)
    TIMEVAL getElapsedTime (void)
    +


    Define Documentation

    + +
    +
    + + + + +
    #define TIMER_HANDLE   INTEGER16
    +
    +
    + +

    + +

    +Definition at line 29 of file timer.h. +

    +Referenced by SetAlarm(), and TimeDispatch(). +

    +

    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef struct struct_s_timer_entry s_timer_entry
    +
    +
    + +

    + +

    +Definition at line 52 of file timer.h. +

    +

    + +

    +
    + + + + +
    typedef void(*) TimerCallback_t(CO_Data *d, UNS32 id)
    +
    +
    + +

    + +

    +Definition at line 41 of file timer.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    TIMER_HANDLE DelAlarm (TIMER_HANDLE  handle  ) 
    +
    +
    + +

    +----- Use this to remove an alarm ----

    +

    Parameters:
    + + +
    handle 
    +
    +
    Returns:
    + +

    +Definition at line 112 of file timer.c. +

    +References last_timer_raw, MSG_WAR, struct_s_timer_entry::state, and timers. +

    +Referenced by heartbeatStop(), proceedNODE_GUARD(), ProducerHearbeatAlarm(), and stopSYNC(). +

    +

    + +

    +
    + + + + + + + + + +
    TIMEVAL getElapsedTime (void   ) 
    +
    +
    + +

    + +

    +Definition at line 66 of file canOpenDriver.c. +

    +References class_timers::get_elapsed_time(), IO_PORTS_16, and TC4H. +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TIMER_HANDLE SetAlarm (CO_Data d,
    UNS32  id,
    TimerCallback_t  callback,
    TIMEVAL  value,
    TIMEVAL  period 
    )
    +
    +
    + +

    +------- Use this to declare a new alarm ------

    +

    Parameters:
    + + + + + + +
    d 
    id 
    callback 
    value 
    period 
    +
    +
    Returns:
    + +

    +Definition at line 57 of file timer.c. +

    +References struct_s_timer_entry::d, last_timer_raw, MAX_NB_TIMER, TIMER_HANDLE, and timers. +

    +Referenced by heartbeatInit(), proceedNODE_GUARD(), startSYNC(), and StartTimerLoop(). +

    +

    + +

    +
    + + + + + + + + + +
    void setTimer (TIMEVAL  value  ) 
    +
    +
    + +

    + +

    +Definition at line 83 of file timers_unix.c. +

    +References maxval, class_timers::set_timer(), and timer. +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void TimeDispatch (void   ) 
    +
    +
    + +

    +------ TimeDispatch is called on each timer expiration ---- +

    +Definition at line 131 of file timer.c. +

    +References getElapsedTime(), last_timer_raw, min_val, TIMER_HANDLE, timers, TIMEVAL, TIMEVAL_MAX, and total_sleep_time. +

    +Referenced by class_timers::timer_loop_thread_proc(), timer_notify(), and timerloop_task_proc(). +

    +Here is the call graph for this function:

    + + + + +
    +

    +


    Generated on Fri Jun 8 08:52:07 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_4dccc204d52176bd547ab34d6858f5ba_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h_4dccc204d52176bd547ab34d6858f5ba_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $classclass__timers.html#0fa5bd5d1d4012bf9eef3ffabe990dfb 186,6 418,30 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 467,6 646,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_4dccc204d52176bd547ab34d6858f5ba_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h_4dccc204d52176bd547ab34d6858f5ba_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1abdc1efd4d92422650bcb545185e449 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_4dccc204d52176bd547ab34d6858f5ba_cgraph.png Binary file doc/doxygen/html/timer_8h_4dccc204d52176bd547ab34d6858f5ba_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_9e5fb60f13faab8705899c5806754864_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h_9e5fb60f13faab8705899c5806754864_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 171,6 302,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_9e5fb60f13faab8705899c5806754864_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h_9e5fb60f13faab8705899c5806754864_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e45648d6fb21e6505480b74196520c85 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_9e5fb60f13faab8705899c5806754864_cgraph.png Binary file doc/doxygen/html/timer_8h_9e5fb60f13faab8705899c5806754864_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,13 @@ +base referer +rect $timer_8c.html 259,6 349,30 +rect $timers__unix_8c.html 181,54 427,78 +rect $timers__xeno_8c.html 177,102 431,126 +rect $drivers__win32_8cpp.html 481,152 721,176 +rect $timers__win32_8cpp.html 483,200 720,224 +rect $sdo_8h.html 248,350 360,374 +rect $timers__driver_8h.html 216,251 392,275 +rect $dcf_8c.html 563,446 640,470 +rect $sdo_8c.html 561,398 641,422 +rect $data_8h.html 543,350 660,374 +rect $unix_8c.html 796,336 943,360 +rect $unix_2canfestival_8h.html 772,263 967,287 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +5634c4bd253ae5521c5dee6310b5f0a0 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h__dep__incl.png Binary file doc/doxygen/html/timer_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $win32_2timerscfg_8h.html 176,8 275,32 +rect $win32_2applicfg_8h.html 479,181 567,205 +rect $data_8h.html 194,325 258,349 +rect $def_8h.html 495,373 551,397 +rect $can_8h.html 347,157 406,181 +rect $objdictdef_8h.html 326,448 427,472 +rect $objacces_8h.html 330,205 423,229 +rect $sdo_8h.html 347,592 406,616 +rect $pdo_8h.html 347,349 406,373 +rect $states_8h.html 339,253 414,277 +rect $lifegrd_8h.html 338,301 415,325 +rect $sync_8h.html 343,496 410,520 +rect $nmtMaster_8h.html 323,544 430,568 +rect $config_8h.html 626,373 700,397 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8d1c8c789d657dbbcad21e2ad8ce8a5e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h__incl.png Binary file doc/doxygen/html/timer_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_b8d05dee70f04b5c5190ab00e84da106_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h_b8d05dee70f04b5c5190ab00e84da106_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $classclass__timers.html#a27df6346a38fb25acc394cb7998a3f8 138,6 314,30 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 363,6 542,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_b8d05dee70f04b5c5190ab00e84da106_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timer_8h_b8d05dee70f04b5c5190ab00e84da106_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +47ae08947ba6b4cc98960aa7db914e3f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timer_8h_b8d05dee70f04b5c5190ab00e84da106_cgraph.png Binary file doc/doxygen/html/timer_8h_b8d05dee70f04b5c5190ab00e84da106_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,66 @@ + + +CanFestival: include/timers_driver.h Source File + + + + + + + +

    timers_driver.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __timer_driver_h__
    +00024 #define __timer_driver_h__
    +00025 
    +00026 #include "timerscfg.h"
    +00027 #include "timer.h"
    +00028 /*void initTimer();*/
    +00029 
    +00030 // For use from CAN driver
    +00031 void EnterMutex(void);
    +00032 void LeaveMutex(void);
    +00033 void WaitReceiveTaskEnd(TASK_HANDLE);
    +00034 
    +00035 // For use from application
    +00036 void StartTimerLoop(TimerCallback_t init_callback);
    +00037 void StopTimerLoop(void);
    +00038 void CreateReceiveTask(CAN_PORT , TASK_HANDLE* , void* );
    +00039 
    +00040 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,265 @@ + + +CanFestival: include/timers_driver.h File Reference + + + + + + + +

    timers_driver.h File Reference

    #include "timerscfg.h"
    +#include "timer.h"
    + +

    +Include dependency graph for timers_driver.h:

    + + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + +

    Functions

    void EnterMutex (void)
    void LeaveMutex (void)
    void WaitReceiveTaskEnd (TASK_HANDLE)
    void StartTimerLoop (TimerCallback_t init_callback)
    void StopTimerLoop (void)
    void CreateReceiveTask (CAN_PORT, TASK_HANDLE *, void *)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void CreateReceiveTask (CAN_PORT ,
    TASK_HANDLE * ,
    void *  
    )
    +
    +
    + +

    + +

    +Definition at line 71 of file timers_unix.c. +

    +

    + +

    +
    + + + + + + + + + +
    void EnterMutex (void   ) 
    +
    +
    + +

    + +

    +Definition at line 20 of file timers_unix.c. +

    +References CanFestival_mutex, and ccritical_section::enter(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void LeaveMutex (void   ) 
    +
    +
    + +

    + +

    +Definition at line 25 of file timers_unix.c. +

    +References CanFestival_mutex, and ccritical_section::leave(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void StartTimerLoop (TimerCallback_t  init_callback  ) 
    +
    +
    + +

    + +

    +Definition at line 62 of file timers_unix.c. +

    +References EnterMutex(), initTimer(), LeaveMutex(), class_timers::resume_timer_thread(), SetAlarm(), class_timers::start_timer_thread(), and TIMEVAL. +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void StopTimerLoop (void   ) 
    +
    +
    + +

    + +

    +Definition at line 55 of file timers_unix.c. +

    +References EnterMutex(), LeaveMutex(), class_timers::stop_timer_thread(), and timer. +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void WaitReceiveTaskEnd (TASK_HANDLE   ) 
    +
    +
    + +

    + +

    +Definition at line 76 of file timers_unix.c. +

    +

    +


    Generated on Fri Jun 8 08:52:07 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_73d9a4eb941fb20cf6b597840510394b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_73d9a4eb941fb20cf6b597840510394b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classccritical__section.html#e1f542404005a2f0696ced6c52a8ce3b 158,6 334,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_73d9a4eb941fb20cf6b597840510394b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_73d9a4eb941fb20cf6b597840510394b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f6ec5aae9be5905329f58aa9729b0613 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_73d9a4eb941fb20cf6b597840510394b_cgraph.png Binary file doc/doxygen/html/timers__driver_8h_73d9a4eb941fb20cf6b597840510394b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 248,6 347,30 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 245,54 349,78 +rect $classclass__timers.html#a78d9f5ab159ec6b11b4dc4c8f351697 179,102 416,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9b89bceb9b2d3bf1059a3c50c6c7f800 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.png Binary file doc/doxygen/html/timers__driver_8h_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $unix_8c.html 280,6 427,30 +rect $drivers__win32_8cpp.html 233,54 473,78 +rect $timers__win32_8cpp.html 235,102 472,126 +rect $unix_2canfestival_8h.html 256,150 451,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +6883f8d78e6605dd8633858f9c09c38a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h__dep__incl.png Binary file doc/doxygen/html/timers__driver_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $win32_2timerscfg_8h.html 349,8 448,32 +rect $timer_8h.html 232,57 301,81 +rect $win32_2applicfg_8h.html 652,181 740,205 +rect $data_8h.html 367,325 431,349 +rect $def_8h.html 668,373 724,397 +rect $can_8h.html 520,157 579,181 +rect $objdictdef_8h.html 499,448 600,472 +rect $objacces_8h.html 503,205 596,229 +rect $sdo_8h.html 520,592 579,616 +rect $pdo_8h.html 520,349 579,373 +rect $states_8h.html 512,253 587,277 +rect $lifegrd_8h.html 511,301 588,325 +rect $sync_8h.html 516,496 583,520 +rect $nmtMaster_8h.html 496,544 603,568 +rect $config_8h.html 799,373 873,397 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +321152a84e1be8b07e89bac59d846170 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h__incl.png Binary file doc/doxygen/html/timers__driver_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_c9e1731843825eb55e7a94894e6a8ec5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_c9e1731843825eb55e7a94894e6a8ec5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 848,27 947,51 +rect $canOpenDriver_8c.html#02922529b60419a94afe8f369dda070b 267,224 349,248 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 845,173 949,197 +rect $classclass__timers.html#e0066fac671c6adb997d6c075487af89 179,272 437,296 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 267,320 349,344 +rect $classclass__timers.html#d857a63670354f41759f68d4ea29a0f5 189,124 427,148 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 808,124 987,148 +rect $classclass__timers.html#a68dd5b6225b3519b4bc2a0280683c87 487,75 759,99 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 840,75 955,99 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_c9e1731843825eb55e7a94894e6a8ec5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_c9e1731843825eb55e7a94894e6a8ec5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8ffe458cdbf314c18f5f53f86149a273 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_c9e1731843825eb55e7a94894e6a8ec5_cgraph.png Binary file doc/doxygen/html/timers__driver_8h_c9e1731843825eb55e7a94894e6a8ec5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_d7fee43b8a44cf8b7036853593044037_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_d7fee43b8a44cf8b7036853593044037_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classccritical__section.html#94af8f7f73229ecc82a303be7e2b0ad0 156,6 329,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_d7fee43b8a44cf8b7036853593044037_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__driver_8h_d7fee43b8a44cf8b7036853593044037_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +88521f20dff7d0233c244eb2be3ad1d1 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__driver_8h_d7fee43b8a44cf8b7036853593044037_cgraph.png Binary file doc/doxygen/html/timers__driver_8h_d7fee43b8a44cf8b7036853593044037_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_2timerscfg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_2timerscfg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,63 @@ + + +CanFestival: include/timers_unix/timerscfg.h Source File + + + + + + + +

    timerscfg.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __TIMERSCFG_H__
    +00024 #define __TIMERSCFG_H__
    +00025 
    +00026 #include <pthread.h>
    +00027 
    +00028 /* Time unit : us */
    +00029 /* Time resolution : 64bit (~584942 years) */
    +00030 #define TIMEVAL unsigned long long
    +00031 #define TIMEVAL_MAX ~(TIMEVAL)0
    +00032 #define MS_TO_TIMEVAL(ms) ms*1000
    +00033 #define US_TO_TIMEVAL(us) us
    +00034 
    +00035 #define TASK_HANDLE pthread_t
    +00036 
    +00037 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_2timerscfg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_2timerscfg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,142 @@ + + +CanFestival: include/timers_unix/timerscfg.h File Reference + + + + + + + +

    timerscfg.h File Reference

    #include <pthread.h>
    + +

    +Include dependency graph for timerscfg.h:

    + +

    +Go to the source code of this file. + + + + + + + + + + + + +

    Defines

    #define TIMEVAL   unsigned long long
    #define TIMEVAL_MAX   ~(TIMEVAL)0
    #define MS_TO_TIMEVAL(ms)   ms*1000
    #define US_TO_TIMEVAL(us)   us
    #define TASK_HANDLE   pthread_t
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define MS_TO_TIMEVAL (ms   )    ms*1000
    +
    +
    + +

    + +

    +Definition at line 32 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TASK_HANDLE   pthread_t
    +
    +
    + +

    + +

    +Definition at line 35 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TIMEVAL   unsigned long long
    +
    +
    + +

    + +

    +Definition at line 30 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TIMEVAL_MAX   ~(TIMEVAL)0
    +
    +
    + +

    + +

    +Definition at line 31 of file timerscfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define US_TO_TIMEVAL (us   )    us
    +
    +
    + +

    + +

    +Definition at line 33 of file timerscfg.h. +

    +

    +


    Generated on Fri Jun 8 08:52:08 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_2timerscfg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_2timerscfg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_2timerscfg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_2timerscfg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +dd70e1fce447b36596a1655aafc1adad \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_2timerscfg_8h__incl.png Binary file doc/doxygen/html/timers__unix_2timerscfg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,130 @@ + + +CanFestival: drivers/timers_unix/timers_unix.c Source File + + + + + + + +

    timers_unix.c

    Go to the documentation of this file.
    00001 #include <stdlib.h>
    +00002 
    +00003 #include <sys/time.h>
    +00004 #include <pthread.h> 
    +00005 #include <signal.h>
    +00006 
    +00007 #include "applicfg.h"
    +00008 #include "timer.h"
    +00009 
    +00010 pthread_mutex_t CanFestival_mutex = PTHREAD_MUTEX_INITIALIZER;
    +00011 
    +00012 TASK_HANDLE TimerLoopThread;
    +00013 
    +00014 TIMEVAL last_time_set = TIMEVAL_MAX;
    +00015 
    +00016 struct timeval last_sig;
    +00017 
    +00018 timer_t timer;
    +00019 
    +00020 void EnterMutex(void)
    +00021 {
    +00022         pthread_mutex_lock(&CanFestival_mutex); 
    +00023 }
    +00024 
    +00025 void LeaveMutex(void)
    +00026 {
    +00027         pthread_mutex_unlock(&CanFestival_mutex);
    +00028 }
    +00029 
    +00030 void timer_notify(sigval_t val)
    +00031 {
    +00032         gettimeofday(&last_sig,NULL);
    +00033         EnterMutex();
    +00034         TimeDispatch();
    +00035         LeaveMutex();
    +00036 //      printf("getCurrentTime() return=%u\n", p.tv_usec);
    +00037 }
    +00038 
    +00039 void initTimer(void)
    +00040 {
    +00041         struct sigevent sigev;
    +00042 
    +00043         // Take first absolute time ref.
    +00044         gettimeofday(&last_sig,NULL);
    +00045 
    +00046         memset (&sigev, 0, sizeof (struct sigevent));
    +00047         sigev.sigev_value.sival_int = 0;
    +00048         sigev.sigev_notify = SIGEV_THREAD;
    +00049         sigev.sigev_notify_attributes = NULL;
    +00050         sigev.sigev_notify_function = timer_notify;
    +00051 
    +00052         timer_create (CLOCK_REALTIME, &sigev, &timer);
    +00053 }
    +00054 
    +00055 void StopTimerLoop(void)
    +00056 {
    +00057         EnterMutex();
    +00058         timer_delete (timer);
    +00059         LeaveMutex();
    +00060 }
    +00061 
    +00062 void StartTimerLoop(TimerCallback_t init_callback)
    +00063 {
    +00064         initTimer();
    +00065         EnterMutex();
    +00066         // At first, TimeDispatch will call init_callback.
    +00067         SetAlarm(NULL, 0, init_callback, 0, 0);
    +00068         LeaveMutex();
    +00069 }
    +00070 
    +00071 void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr)
    +00072 {
    +00073         pthread_create(Thread, NULL, ReceiveLoopPtr, (void*)port);
    +00074 }
    +00075 
    +00076 void WaitReceiveTaskEnd(TASK_HANDLE Thread)
    +00077 {
    +00078         pthread_kill(Thread, SIGTERM);
    +00079         pthread_join(Thread, NULL);
    +00080 }
    +00081 
    +00082 #define maxval(a,b) ((a>b)?a:b)
    +00083 void setTimer(TIMEVAL value)
    +00084 {
    +00085 //      printf("setTimer(TIMEVAL value=%d)\n", value);
    +00086         // TIMEVAL is us whereas setitimer wants ns...
    +00087         long tv_nsec = 1000 * (maxval(value,1)%1000000);
    +00088         time_t tv_sec = value/1000000;
    +00089         struct itimerspec timerValues;
    +00090         timerValues.it_value.tv_sec = tv_sec;
    +00091         timerValues.it_value.tv_nsec = tv_nsec;
    +00092         timerValues.it_interval.tv_sec = 0;
    +00093         timerValues.it_interval.tv_nsec = 0;
    +00094 
    +00095         timer_settime (timer, 0, &timerValues, NULL);
    +00096 }
    +00097 
    +00098 TIMEVAL getElapsedTime(void)
    +00099 {
    +00100         struct timeval p;
    +00101         gettimeofday(&p,NULL);
    +00102 //      printf("getCurrentTime() return=%u\n", p.tv_usec);
    +00103         return (p.tv_sec - last_sig.tv_sec)* 1000000 + p.tv_usec - last_sig.tv_usec;
    +00104 }
    +

    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,490 @@ + + +CanFestival: drivers/timers_unix/timers_unix.c File Reference + + + + + + + +

    timers_unix.c File Reference

    #include <stdlib.h>
    +#include <sys/time.h>
    +#include <pthread.h>
    +#include <signal.h>
    +#include "applicfg.h"
    +#include "timer.h"
    + +

    +Include dependency graph for timers_unix.c:

    + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define maxval(a, b)   ((a>b)?a:b)

    Functions

    void EnterMutex (void)
    void LeaveMutex (void)
    void timer_notify (sigval_t val)
    void initTimer (void)
    void StopTimerLoop (void)
    void StartTimerLoop (TimerCallback_t init_callback)
    void CreateReceiveTask (CAN_PORT port, TASK_HANDLE *Thread, void *ReceiveLoopPtr)
    void WaitReceiveTaskEnd (TASK_HANDLE Thread)
    void setTimer (TIMEVAL value)
    TIMEVAL getElapsedTime (void)

    Variables

    pthread_mutex_t CanFestival_mutex = PTHREAD_MUTEX_INITIALIZER
    TASK_HANDLE TimerLoopThread
    TIMEVAL last_time_set = TIMEVAL_MAX
    timeval last_sig
    timer_t timer
    +


    Define Documentation

    + +
    +
    + + + + + + + + + + + + +
    #define maxval (a,
     )    ((a>b)?a:b)
    +
    +
    + +

    + +

    +Definition at line 82 of file timers_unix.c. +

    +Referenced by setTimer(). +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void CreateReceiveTask (CAN_PORT  port,
    TASK_HANDLE *  Thread,
    void *  ReceiveLoopPtr 
    )
    +
    +
    + +

    + +

    +Definition at line 71 of file timers_unix.c. +

    +Referenced by canOpen(). +

    +

    + +

    +
    + + + + + + + + + +
    void EnterMutex (void   ) 
    +
    + +

    + +

    +
    + + + + + + + + + +
    TIMEVAL getElapsedTime (void   ) 
    +
    +
    + +

    + +

    +Definition at line 98 of file timers_unix.c. +

    +References last_sig. +

    +

    + +

    +
    + + + + + + + + + +
    void initTimer (void   ) 
    +
    +
    + +

    + +

    +Definition at line 39 of file timers_unix.c. +

    +References IO_PORTS_8, last_sig, lock(), TCTL1, TIE, timer, timer_notify(), TIOS, TSCR1, TSCR2, and unlock(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void LeaveMutex (void   ) 
    +
    + +

    + +

    +
    + + + + + + + + + +
    void setTimer (TIMEVAL  value  ) 
    +
    +
    + +

    + +

    +Definition at line 83 of file timers_unix.c. +

    +

    + +

    +
    + + + + + + + + + +
    void StartTimerLoop (TimerCallback_t  init_callback  ) 
    +
    +
    + +

    + +

    +Definition at line 62 of file timers_unix.c. +

    +Referenced by main(). +

    +

    + +

    +
    + + + + + + + + + +
    void StopTimerLoop (void   ) 
    +
    +
    + +

    + +

    +Definition at line 55 of file timers_unix.c. +

    +Referenced by main(). +

    +

    + +

    +
    + + + + + + + + + +
    void timer_notify (sigval_t  val  ) 
    +
    +
    + +

    + +

    +Definition at line 30 of file timers_unix.c. +

    +References EnterMutex(), last_sig, LeaveMutex(), and TimeDispatch(). +

    +Referenced by initTimer(). +

    +Here is the call graph for this function:

    + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void WaitReceiveTaskEnd (TASK_HANDLE  Thread  ) 
    +
    +
    + +

    + +

    +Definition at line 76 of file timers_unix.c. +

    +Referenced by canClose(). +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    pthread_mutex_t CanFestival_mutex = PTHREAD_MUTEX_INITIALIZER
    +
    +
    + +

    + +

    +Definition at line 10 of file timers_unix.c. +

    +Referenced by EnterMutex(), and LeaveMutex(). +

    +

    + +

    +
    + + + + +
    struct timeval last_sig
    +
    +
    + +

    + +

    +Definition at line 16 of file timers_unix.c. +

    +Referenced by getElapsedTime(), initTimer(), and timer_notify(). +

    +

    + +

    +
    + + + + +
    TIMEVAL last_time_set = TIMEVAL_MAX
    +
    +
    + +

    + +

    +Definition at line 14 of file timers_unix.c. +

    +

    + +

    +
    + + + + +
    timer_t timer
    +
    +
    + +

    + +

    +Definition at line 18 of file timers_unix.c. +

    +Referenced by initTimer(), setTimer(), and StopTimerLoop(). +

    +

    + +

    +
    + + + + +
    TASK_HANDLE TimerLoopThread
    +
    +
    + +

    + +

    +Definition at line 12 of file timers_unix.c. +

    +

    +


    Generated on Fri Jun 8 08:51:42 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c_02922529b60419a94afe8f369dda070b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c_02922529b60419a94afe8f369dda070b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,9 @@ +base referer +rect $interrupt_8c.html#eb99ff49b4a6d5157416f9b5bd0d9c2c 164,6 212,30 +rect $timers__unix_8c.html#4cd19302f57b08fc0403a05017332735 137,102 239,126 +rect $interrupt_8c.html#987ce601d6d4c8eedd68b58db3b7811a 155,54 221,78 +rect $regs_8h.html#b1b104e72affb247e036289d0fc18ac7 308,6 385,30 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 297,54 396,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 295,102 399,126 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 289,150 404,174 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 453,150 584,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c_02922529b60419a94afe8f369dda070b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c_02922529b60419a94afe8f369dda070b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +d3f5b0b3a454ba461e5304d4352f268a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c_02922529b60419a94afe8f369dda070b_cgraph.png Binary file doc/doxygen/html/timers__unix_8c_02922529b60419a94afe8f369dda070b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c_4cd19302f57b08fc0403a05017332735_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c_4cd19302f57b08fc0403a05017332735_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 167,6 266,30 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 164,54 268,78 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 159,102 274,126 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 323,102 454,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c_4cd19302f57b08fc0403a05017332735_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c_4cd19302f57b08fc0403a05017332735_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9ed194797e994512c3480f972650d376 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c_4cd19302f57b08fc0403a05017332735_cgraph.png Binary file doc/doxygen/html/timers__unix_8c_4cd19302f57b08fc0403a05017332735_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $win32_2applicfg_8h.html 745,349 833,373 +rect $timer_8h.html 313,301 383,325 +rect $win32_2timerscfg_8h.html 443,56 541,80 +rect $data_8h.html 460,301 524,325 +rect $def_8h.html 761,155 817,179 +rect $can_8h.html 613,301 672,325 +rect $objdictdef_8h.html 592,445 693,469 +rect $objacces_8h.html 596,349 689,373 +rect $sdo_8h.html 613,56 672,80 +rect $pdo_8h.html 613,203 672,227 +rect $states_8h.html 605,397 680,421 +rect $lifegrd_8h.html 604,541 681,565 +rect $sync_8h.html 609,493 676,517 +rect $nmtMaster_8h.html 589,155 696,179 +rect $config_8h.html 892,155 967,179 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__unix_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +607d8755996d39313a61edbf03bca01a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__unix_8c__incl.png Binary file doc/doxygen/html/timers__unix_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,267 @@ + + +CanFestival: drivers/win32/timers_win32.cpp Source File + + + + + + + +

    timers_win32.cpp

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack.
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 Copyright (C) Win32 Port Leonid Tochinski
    +00006 
    +00007 See COPYING file for copyrights details.
    +00008 
    +00009 This library is free software; you can redistribute it and/or
    +00010 modify it under the terms of the GNU Lesser General Public
    +00011 License as published by the Free Software Foundation; either
    +00012 version 2.1 of the License, or (at your option) any later version.
    +00013 
    +00014 This library is distributed in the hope that it will be useful,
    +00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00017 Lesser General Public License for more details.
    +00018 
    +00019 You should have received a copy of the GNU Lesser General Public
    +00020 License along with this library; if not, write to the Free Software
    +00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00022 */
    +00023 
    +00024 
    +00025 
    +00026 #include <windows.h>
    +00027 #include <stdlib.h>
    +00028 
    +00029 extern "C"
    +00030 {
    +00031 #include "applicfg.h"
    +00032 #include "can_driver.h"
    +00033 #include "timer.h"
    +00034 #include "timers_driver.h"
    +00035 };
    +00036 
    +00037 // --------------- Synchronization Object Implementation ---------------
    +00038 class ccritical_section
    +00039    {
    +00040    public:
    +00041       ccritical_section()
    +00042          {
    +00043          ::InitializeCriticalSection(&m_cs);
    +00044          }
    +00045       ~ccritical_section()
    +00046          {
    +00047          ::DeleteCriticalSection(&m_cs);
    +00048          }
    +00049       void enter()
    +00050          {
    +00051          ::EnterCriticalSection(&m_cs);
    +00052          }
    +00053       void leave()
    +00054          {
    +00055          ::LeaveCriticalSection(&m_cs);
    +00056          }
    +00057    private:
    +00058       CRITICAL_SECTION m_cs;
    +00059    };
    +00060 
    +00061 static ccritical_section g_cs;
    +00062 
    +00063 
    +00064 void EnterMutex(void)
    +00065    {
    +00066    g_cs.enter();
    +00067    }
    +00068 
    +00069 void LeaveMutex(void)
    +00070    {
    +00071    g_cs.leave();
    +00072    }
    +00073 // --------------- Synchronization Object Implementation ---------------
    +00074 
    +00075 
    +00076 // --------------- CAN Receive Thread Implementation ---------------
    +00077 
    +00078 void CreateReceiveTask(CAN_HANDLE fd0, TASK_HANDLE* Thread, void* ReceiveLoopPtr)
    +00079    {
    +00080    unsigned long thread_id = 0;
    +00081    *Thread = ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ReceiveLoopPtr, fd0, 0, &thread_id);
    +00082    }
    +00083 
    +00084 void WaitReceiveTaskEnd(TASK_HANDLE Thread)
    +00085    {
    +00086    ::WaitForSingleObject(Thread, INFINITE);
    +00087    ::CloseHandle(Thread);
    +00088    //*Thread = NULL;
    +00089    }
    +00090 // --------------- CAN Receive Thread Implementation ---------------
    +00091 
    +00092 
    +00093 // --------------- Timer Thread Implementation ---------------
    +00094 class class_timers
    +00095    {
    +00096    public:
    +00097       class_timers();
    +00098       ~class_timers();
    +00099       void start_timer_thread();
    +00100       void resume_timer_thread();
    +00101       void stop_timer_thread();
    +00102       void set_timer(TIMEVAL value);
    +00103       TIMEVAL get_elapsed_time();
    +00104    private:
    +00105       TIMEVAL get_timer() const;   
    +00106       static DWORD WINAPI timer_loop_thread_proc(void* arg);
    +00107    private:
    +00108       TIMEVAL m_last_occured_alarm_time;
    +00109       volatile TIMEVAL m_last_alarm_set_time;
    +00110       HANDLE m_timer_thread;
    +00111       volatile bool m_continue_timer_loop;
    +00112       bool m_use_hi_res_timer;
    +00113       double m_counts_per_usec;
    +00114    };
    +00115 
    +00116 class_timers::class_timers() : m_last_occured_alarm_time(TIMEVAL_MAX),
    +00117       m_last_alarm_set_time(TIMEVAL_MAX),
    +00118       m_timer_thread(0),
    +00119       m_continue_timer_loop(false),
    +00120       m_use_hi_res_timer(false),
    +00121       m_counts_per_usec(0.)
    +00122    {
    +00123    // initialize hi resolution timer
    +00124    LARGE_INTEGER counts_per_sec = {0, 0};
    +00125    if (::QueryPerformanceFrequency(&counts_per_sec) && counts_per_sec.QuadPart > 0)
    +00126       {
    +00127       m_use_hi_res_timer = true;
    +00128       m_counts_per_usec = counts_per_sec.QuadPart / 1000000.;
    +00129       }
    +00130    m_use_hi_res_timer = true;
    +00131    }
    +00132 
    +00133 class_timers::~class_timers()
    +00134    {
    +00135    stop_timer_thread();
    +00136    }
    +00137 
    +00138 // time is in micro seconds
    +00139 TIMEVAL class_timers::get_timer() const
    +00140    {
    +00141    if (m_use_hi_res_timer)
    +00142       {
    +00143       LARGE_INTEGER performance_count = {0, 0};
    +00144       ::QueryPerformanceCounter(&performance_count);
    +00145       return (TIMEVAL)(performance_count.QuadPart / m_counts_per_usec);
    +00146       }
    +00147    // hi-res timer is unavailable
    +00148    return 1000 * ::GetTickCount();
    +00149    }
    +00150 
    +00151 DWORD WINAPI class_timers::timer_loop_thread_proc(void* arg)
    +00152    {
    +00153    class_timers* This = reinterpret_cast<class_timers*>(arg);
    +00154    while (This->m_continue_timer_loop)
    +00155       {
    +00156       TIMEVAL cur_time = This->get_timer();
    +00157       if (cur_time >= This->m_last_alarm_set_time)
    +00158          {
    +00159          This->m_last_occured_alarm_time = cur_time;
    +00160          This->m_last_alarm_set_time = TIMEVAL_MAX;         
    +00161          EnterMutex();
    +00162          TimeDispatch();
    +00163          LeaveMutex();
    +00164          }
    +00165       else
    +00166          {
    +00167          ::Sleep(1);
    +00168          }
    +00169       }
    +00170    return 0;
    +00171    }
    +00172 
    +00173 void class_timers::start_timer_thread()
    +00174    {
    +00175    if (m_timer_thread == 0)
    +00176       {
    +00177       unsigned long thread_id = 0;
    +00178       m_timer_thread = ::CreateThread(NULL, 0, &timer_loop_thread_proc, this, CREATE_SUSPENDED, &thread_id);
    +00179       m_last_alarm_set_time = TIMEVAL_MAX;
    +00180       m_last_occured_alarm_time = get_timer();
    +00181       }
    +00182    }
    +00183 
    +00184 void class_timers::resume_timer_thread()
    +00185    {
    +00186    if (m_timer_thread)
    +00187       {
    +00188       m_continue_timer_loop = true;
    +00189       ::ResumeThread(m_timer_thread);
    +00190       }
    +00191    }
    +00192 
    +00193 void class_timers::stop_timer_thread()
    +00194    {
    +00195    if (m_timer_thread)
    +00196       {
    +00197       m_continue_timer_loop = false;
    +00198       ::WaitForSingleObject(m_timer_thread, INFINITE);
    +00199       ::CloseHandle(m_timer_thread);
    +00200       m_timer_thread = 0;
    +00201       }
    +00202    }
    +00203 
    +00204 void class_timers::set_timer(TIMEVAL value)
    +00205    {
    +00206    m_last_alarm_set_time = (value == TIMEVAL_MAX) ? TIMEVAL_MAX : get_timer() + value;
    +00207    }
    +00208 
    +00209 // elapsed time since last occured alarm
    +00210 TIMEVAL class_timers::get_elapsed_time()
    +00211    {
    +00212    return get_timer() - m_last_occured_alarm_time;
    +00213    }
    +00214 
    +00215 // ----------------------------------------------------------
    +00216 
    +00217 static class_timers s_timers;
    +00218 
    +00219 void StartTimerLoop(TimerCallback_t init_callback)
    +00220    {
    +00221    s_timers.start_timer_thread();
    +00222    // At first, TimeDispatch will call init_callback.
    +00223    if (init_callback != NULL)
    +00224       SetAlarm(NULL, 0, init_callback, (TIMEVAL)0, (TIMEVAL)0);
    +00225    s_timers.resume_timer_thread();
    +00226    }
    +00227 
    +00228 void StopTimerLoop(void)
    +00229    {
    +00230    s_timers.stop_timer_thread();
    +00231    }
    +00232 
    +00233 void setTimer(TIMEVAL value)
    +00234    {
    +00235    s_timers.set_timer(value);
    +00236    }
    +00237 
    +00238 TIMEVAL getElapsedTime(void)
    +00239    {
    +00240    return s_timers.get_elapsed_time();
    +00241    }
    +

    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,320 @@ + + +CanFestival: drivers/win32/timers_win32.cpp File Reference + + + + + + + +

    timers_win32.cpp File Reference

    #include <windows.h>
    +#include <stdlib.h>
    +#include "applicfg.h"
    +#include "can_driver.h"
    +#include "timer.h"
    +#include "timers_driver.h"
    + +

    +Include dependency graph for timers_win32.cpp:

    + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    class  ccritical_section
    class  class_timers

    Functions

    void EnterMutex (void)
    void LeaveMutex (void)
    void CreateReceiveTask (CAN_HANDLE fd0, TASK_HANDLE *Thread, void *ReceiveLoopPtr)
    void WaitReceiveTaskEnd (TASK_HANDLE Thread)
    void StartTimerLoop (TimerCallback_t init_callback)
    void StopTimerLoop (void)
    void setTimer (TIMEVAL value)
    TIMEVAL getElapsedTime (void)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void CreateReceiveTask (CAN_HANDLE  fd0,
    TASK_HANDLE *  Thread,
    void *  ReceiveLoopPtr 
    )
    +
    +
    + +

    + +

    +Definition at line 78 of file timers_win32.cpp. +

    +

    + +

    +
    + + + + + + + + + +
    void EnterMutex (void   ) 
    +
    +
    + +

    + +

    +Definition at line 64 of file timers_win32.cpp. +

    +References CanFestival_mutex, and ccritical_section::enter(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    TIMEVAL getElapsedTime (void   ) 
    +
    +
    + +

    + +

    +Definition at line 238 of file timers_win32.cpp. +

    +References class_timers::get_elapsed_time(), IO_PORTS_16, and TC4H. +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void LeaveMutex (void   ) 
    +
    +
    + +

    + +

    +Definition at line 69 of file timers_win32.cpp. +

    +References CanFestival_mutex, and ccritical_section::leave(). +

    +Here is the call graph for this function:

    + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void setTimer (TIMEVAL  value  ) 
    +
    +
    + +

    + +

    +Definition at line 233 of file timers_win32.cpp. +

    +References maxval, class_timers::set_timer(), and timer. +

    +Here is the call graph for this function:

    + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void StartTimerLoop (TimerCallback_t  init_callback  ) 
    +
    +
    + +

    + +

    +Definition at line 219 of file timers_win32.cpp. +

    +References EnterMutex(), initTimer(), LeaveMutex(), class_timers::resume_timer_thread(), SetAlarm(), class_timers::start_timer_thread(), and TIMEVAL. +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void StopTimerLoop (void   ) 
    +
    +
    + +

    + +

    +Definition at line 228 of file timers_win32.cpp. +

    +References EnterMutex(), LeaveMutex(), class_timers::stop_timer_thread(), and timer. +

    +Here is the call graph for this function:

    + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void WaitReceiveTaskEnd (TASK_HANDLE  Thread  ) 
    +
    +
    + +

    + +

    +Definition at line 84 of file timers_win32.cpp. +

    +

    +


    Generated on Fri Jun 8 08:51:45 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_4dccc204d52176bd547ab34d6858f5ba_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_4dccc204d52176bd547ab34d6858f5ba_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $classclass__timers.html#0fa5bd5d1d4012bf9eef3ffabe990dfb 186,6 418,30 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 467,6 646,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_4dccc204d52176bd547ab34d6858f5ba_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_4dccc204d52176bd547ab34d6858f5ba_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +1abdc1efd4d92422650bcb545185e449 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_4dccc204d52176bd547ab34d6858f5ba_cgraph.png Binary file doc/doxygen/html/timers__win32_8cpp_4dccc204d52176bd547ab34d6858f5ba_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_73d9a4eb941fb20cf6b597840510394b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_73d9a4eb941fb20cf6b597840510394b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classccritical__section.html#e1f542404005a2f0696ced6c52a8ce3b 158,6 334,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_73d9a4eb941fb20cf6b597840510394b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_73d9a4eb941fb20cf6b597840510394b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +f6ec5aae9be5905329f58aa9729b0613 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_73d9a4eb941fb20cf6b597840510394b_cgraph.png Binary file doc/doxygen/html/timers__win32_8cpp_73d9a4eb941fb20cf6b597840510394b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,4 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 248,6 347,30 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 245,54 349,78 +rect $classclass__timers.html#a78d9f5ab159ec6b11b4dc4c8f351697 179,102 416,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +9b89bceb9b2d3bf1059a3c50c6c7f800 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.png Binary file doc/doxygen/html/timers__win32_8cpp_8758484f3cebb0cd44bb247c3f23d5e3_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $win32_2applicfg_8h.html 615,133 703,157 +rect $can__driver_8h.html 462,157 566,181 +rect $timer_8h.html 479,209 548,233 +rect $timers__driver_8h.html 291,259 414,283 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +11aba41ba03d2eb23ba6be6b45b6e1c5 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp__incl.png Binary file doc/doxygen/html/timers__win32_8cpp__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_b8d05dee70f04b5c5190ab00e84da106_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_b8d05dee70f04b5c5190ab00e84da106_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $classclass__timers.html#a27df6346a38fb25acc394cb7998a3f8 138,6 314,30 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 363,6 542,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_b8d05dee70f04b5c5190ab00e84da106_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_b8d05dee70f04b5c5190ab00e84da106_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +47ae08947ba6b4cc98960aa7db914e3f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_b8d05dee70f04b5c5190ab00e84da106_cgraph.png Binary file doc/doxygen/html/timers__win32_8cpp_b8d05dee70f04b5c5190ab00e84da106_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_c9e1731843825eb55e7a94894e6a8ec5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_c9e1731843825eb55e7a94894e6a8ec5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 848,27 947,51 +rect $canOpenDriver_8c.html#02922529b60419a94afe8f369dda070b 267,224 349,248 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 845,173 949,197 +rect $classclass__timers.html#e0066fac671c6adb997d6c075487af89 179,272 437,296 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 267,320 349,344 +rect $classclass__timers.html#d857a63670354f41759f68d4ea29a0f5 189,124 427,148 +rect $classclass__timers.html#e4fe19b5b56b72ce2601d74f6519bd0b 808,124 987,148 +rect $classclass__timers.html#a68dd5b6225b3519b4bc2a0280683c87 487,75 759,99 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 840,75 955,99 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_c9e1731843825eb55e7a94894e6a8ec5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_c9e1731843825eb55e7a94894e6a8ec5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8ffe458cdbf314c18f5f53f86149a273 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_c9e1731843825eb55e7a94894e6a8ec5_cgraph.png Binary file doc/doxygen/html/timers__win32_8cpp_c9e1731843825eb55e7a94894e6a8ec5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_d7fee43b8a44cf8b7036853593044037_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_d7fee43b8a44cf8b7036853593044037_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $classccritical__section.html#94af8f7f73229ecc82a303be7e2b0ad0 156,6 329,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_d7fee43b8a44cf8b7036853593044037_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__win32_8cpp_d7fee43b8a44cf8b7036853593044037_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +88521f20dff7d0233c244eb2be3ad1d1 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__win32_8cpp_d7fee43b8a44cf8b7036853593044037_cgraph.png Binary file doc/doxygen/html/timers__win32_8cpp_d7fee43b8a44cf8b7036853593044037_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_2timerscfg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_2timerscfg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,66 @@ + + +CanFestival: include/timers_xeno/timerscfg.h Source File + + + + + + + +

    timerscfg.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __TIMERSCFG_H__
    +00024 #define __TIMERSCFG_H__
    +00025 
    +00026 #include <native/task.h>
    +00027 #include <native/timer.h>
    +00028 #include <native/mutex.h>
    +00029 #include <native/alarm.h>
    +00030 
    +00031 // Time unit : ns
    +00032 // Time resolution : 64bit (~584 years)
    +00033 #define TIMEVAL RTIME
    +00034 #define TIMEVAL_MAX ~(RTIME)0
    +00035 #define MS_TO_TIMEVAL(ms) (RTIME)ms*1000000
    +00036 #define US_TO_TIMEVAL(us) (RTIME)us*1000
    +00037 
    +00038 #define TASK_HANDLE RT_TASK
    +00039 
    +00040 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_2timerscfg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_2timerscfg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,145 @@ + + +CanFestival: include/timers_xeno/timerscfg.h File Reference + + + + + + + +

    timerscfg.h File Reference

    #include <native/task.h>
    +#include <native/timer.h>
    +#include <native/mutex.h>
    +#include <native/alarm.h>
    + +

    +Include dependency graph for timerscfg.h:

    + +

    +Go to the source code of this file. + + + + + + + + + + + + +

    Defines

    #define TIMEVAL   RTIME
    #define TIMEVAL_MAX   ~(RTIME)0
    #define MS_TO_TIMEVAL(ms)   (RTIME)ms*1000000
    #define US_TO_TIMEVAL(us)   (RTIME)us*1000
    #define TASK_HANDLE   RT_TASK
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define MS_TO_TIMEVAL (ms   )    (RTIME)ms*1000000
    +
    +
    + +

    + +

    +Definition at line 35 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TASK_HANDLE   RT_TASK
    +
    +
    + +

    + +

    +Definition at line 38 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TIMEVAL   RTIME
    +
    +
    + +

    + +

    +Definition at line 33 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TIMEVAL_MAX   ~(RTIME)0
    +
    +
    + +

    + +

    +Definition at line 34 of file timerscfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define US_TO_TIMEVAL (us   )    (RTIME)us*1000
    +
    +
    + +

    + +

    +Definition at line 36 of file timerscfg.h. +

    +

    +


    Generated on Fri Jun 8 08:52:08 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_2timerscfg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_2timerscfg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_2timerscfg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_2timerscfg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +18acdd150db3d8c6e090ec5fdfdb8dc8 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_2timerscfg_8h__incl.png Binary file doc/doxygen/html/timers__xeno_2timerscfg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,158 @@ + + +CanFestival: drivers/timers_xeno/timers_xeno.c Source File + + + + + + + +

    timers_xeno.c

    Go to the documentation of this file.
    00001 #include <stdlib.h>
    +00002 #include <unistd.h>
    +00003 #include <sys/mman.h>
    +00004 
    +00005 #include <native/task.h>
    +00006 #include <native/timer.h>
    +00007 #include <native/mutex.h>
    +00008 #include <native/alarm.h>
    +00009 
    +00010 #include "applicfg.h"
    +00011 #include "can_driver.h"
    +00012 #include "timer.h"
    +00013 
    +00014 #define TIMERLOOP_TASK_CREATED        1
    +00015 
    +00016 RT_MUTEX CanFestival_mutex;
    +00017 RT_TASK timerloop_task;
    +00018 RTIME last_time_read;
    +00019 RTIME last_occured_alarm;
    +00020 RTIME last_alarm_set;
    +00021 
    +00022 char stop_timer=0;
    +00023 
    +00024 void cleanup_all(void)
    +00025 {
    +00026         rt_task_delete(&timerloop_task);
    +00027 }
    +00028 void StopTimerLoop(void)
    +00029 {
    +00030         stop_timer = 1;
    +00031         rt_task_unblock(&timerloop_task);
    +00032 }
    +00033 
    +00034 
    +00035 void EnterMutex(void)
    +00036 {
    +00037         rt_mutex_lock(&CanFestival_mutex, TM_INFINITE); 
    +00038 }
    +00039 
    +00040 void LeaveMutex(void)
    +00041 {
    +00042         rt_mutex_unlock(&CanFestival_mutex);
    +00043 }
    +00044 
    +00045 void timerloop_task_proc(void *arg)
    +00046 {
    +00047         int ret;
    +00048         do{
    +00049                 do{
    +00050                         last_occured_alarm = last_alarm_set;
    +00051                         EnterMutex();
    +00052                         TimeDispatch();
    +00053                         LeaveMutex();
    +00054                         while ((ret = rt_task_sleep_until(last_alarm_set)) == -EINTR);
    +00055                 }while (ret == 0);
    +00056         }while (!stop_timer);
    +00057         printf("End of TimerLoop, code %d\n",ret);
    +00058 }
    +00059 
    +00060 void StartTimerLoop(TimerCallback_t init_callback)
    +00061 {
    +00062         int ret;
    +00063         stop_timer = 0;
    +00064         char taskname[32];
    +00065         snprintf(taskname, sizeof(taskname), "timerloop-%d", getpid());
    +00066 
    +00067         mlockall(MCL_CURRENT | MCL_FUTURE);
    +00068 
    +00069         //create timerloop_task
    +00070         ret = rt_task_create(&timerloop_task, taskname, 0, 50, 0);
    +00071         if (ret) {
    +00072                 printf("Failed to create timerloop_task, code %d\n",errno);
    +00073                 return;
    +00074         }
    +00075         
    +00076         getElapsedTime();
    +00077         last_alarm_set = last_time_read;
    +00078         last_occured_alarm = last_alarm_set;
    +00079         SetAlarm(NULL, 0, init_callback, 0, 0);
    +00080         // start timerloop_task
    +00081         ret = rt_task_start(&timerloop_task,&timerloop_task_proc,NULL);
    +00082         if (ret) {
    +00083                 printf("Failed to start timerloop_task, code %d\n",errno);
    +00084                 goto error;
    +00085         }
    +00086         
    +00087         return;
    +00088         
    +00089 error:
    +00090         cleanup_all();
    +00091 }
    +00092 
    +00093 void CreateReceiveTask(CAN_PORT fd0, TASK_HANDLE *ReceiveLoop_task, void* ReceiveLoop_task_proc)
    +00094 {
    +00095         int ret;
    +00096         static int id = 0;
    +00097         char taskname[32];
    +00098         snprintf(taskname, sizeof(taskname), "canloop%d-%d", id, getpid());
    +00099         id++;
    +00100 
    +00101         mlockall(MCL_CURRENT | MCL_FUTURE);
    +00102 
    +00103         //create timerloop_task
    +00104         ret = rt_task_create(ReceiveLoop_task,taskname,0,50,0);
    +00105         if (ret) {
    +00106                 printf("Failed to create ReceiveLoop_task number %d, code %d\n", id, errno);
    +00107                 return;
    +00108         }
    +00109         // start timerloop_task
    +00110         ret = rt_task_start(ReceiveLoop_task,ReceiveLoop_task_proc,(void*)fd0);
    +00111         if (ret) {
    +00112                 printf("Failed to start ReceiveLoop_task number %d, code %d\n", id, errno);
    +00113                 return;
    +00114         }
    +00115 }
    +00116 
    +00117 void WaitReceiveTaskEnd(TASK_HANDLE *Thread)
    +00118 {
    +00119         rt_task_delete(Thread);
    +00120 }
    +00121 
    +00122 void setTimer(TIMEVAL value)
    +00123 {
    +00124         last_alarm_set = (value == TIMEVAL_MAX) ? TIMEVAL_MAX : last_time_read + value;
    +00125         rt_task_unblock(&timerloop_task);
    +00126 }
    +00127 
    +00128 TIMEVAL getElapsedTime(void)
    +00129 {
    +00130         last_time_read = rt_timer_ticks2ns(rt_timer_read());
    +00131         return last_time_read - last_occured_alarm;
    +00132 }
    +

    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,497 @@ + + +CanFestival: drivers/timers_xeno/timers_xeno.c File Reference + + + + + + + +

    timers_xeno.c File Reference

    #include <stdlib.h>
    +#include <unistd.h>
    +#include <sys/mman.h>
    +#include <native/task.h>
    +#include <native/timer.h>
    +#include <native/mutex.h>
    +#include <native/alarm.h>
    +#include "applicfg.h"
    +#include "can_driver.h"
    +#include "timer.h"
    + +

    +Include dependency graph for timers_xeno.c:

    + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define TIMERLOOP_TASK_CREATED   1

    Functions

    void cleanup_all (void)
    void StopTimerLoop (void)
    void EnterMutex (void)
    void LeaveMutex (void)
    void timerloop_task_proc (void *arg)
    void StartTimerLoop (TimerCallback_t init_callback)
    void CreateReceiveTask (CAN_PORT fd0, TASK_HANDLE *ReceiveLoop_task, void *ReceiveLoop_task_proc)
    void WaitReceiveTaskEnd (TASK_HANDLE *Thread)
    void setTimer (TIMEVAL value)
    TIMEVAL getElapsedTime (void)

    Variables

    RT_MUTEX CanFestival_mutex
    RT_TASK timerloop_task
    RTIME last_time_read
    RTIME last_occured_alarm
    RTIME last_alarm_set
    char stop_timer = 0
    +


    Define Documentation

    + +
    +
    + + + + +
    #define TIMERLOOP_TASK_CREATED   1
    +
    +
    + +

    + +

    +Definition at line 14 of file timers_xeno.c. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    void cleanup_all (void   ) 
    +
    +
    + +

    + +

    +Definition at line 24 of file timers_xeno.c. +

    +References timerloop_task. +

    +Referenced by StartTimerLoop(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void CreateReceiveTask (CAN_PORT  fd0,
    TASK_HANDLE *  ReceiveLoop_task,
    void *  ReceiveLoop_task_proc 
    )
    +
    +
    + +

    + +

    +Definition at line 93 of file timers_xeno.c. +

    +

    + +

    +
    + + + + + + + + + +
    void EnterMutex (void   ) 
    +
    +
    + +

    + +

    +Definition at line 35 of file timers_xeno.c. +

    +References CanFestival_mutex. +

    +

    + +

    +
    + + + + + + + + + +
    TIMEVAL getElapsedTime (void   ) 
    +
    +
    + +

    + +

    +Definition at line 128 of file timers_xeno.c. +

    +References last_occured_alarm, and last_time_read. +

    +

    + +

    +
    + + + + + + + + + +
    void LeaveMutex (void   ) 
    +
    +
    + +

    + +

    +Definition at line 40 of file timers_xeno.c. +

    +References CanFestival_mutex. +

    +

    + +

    +
    + + + + + + + + + +
    void setTimer (TIMEVAL  value  ) 
    +
    +
    + +

    + +

    +Definition at line 122 of file timers_xeno.c. +

    +References last_alarm_set, last_time_read, timerloop_task, and TIMEVAL_MAX. +

    +

    + +

    +
    + + + + + + + + + +
    void StartTimerLoop (TimerCallback_t  init_callback  ) 
    +
    +
    + +

    + +

    +Definition at line 60 of file timers_xeno.c. +

    +References cleanup_all(), getElapsedTime(), last_alarm_set, last_occured_alarm, last_time_read, SetAlarm(), stop_timer, timerloop_task, and timerloop_task_proc(). +

    +Here is the call graph for this function:

    + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void StopTimerLoop (void   ) 
    +
    +
    + +

    + +

    +Definition at line 28 of file timers_xeno.c. +

    +References stop_timer, and timerloop_task. +

    +

    + +

    +
    + + + + + + + + + +
    void timerloop_task_proc (void *  arg  ) 
    +
    +
    + +

    + +

    +Definition at line 45 of file timers_xeno.c. +

    +References EnterMutex(), last_alarm_set, last_occured_alarm, LeaveMutex(), stop_timer, and TimeDispatch(). +

    +Referenced by StartTimerLoop(). +

    +Here is the call graph for this function:

    + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    void WaitReceiveTaskEnd (TASK_HANDLE *  Thread  ) 
    +
    +
    + +

    + +

    +Definition at line 117 of file timers_xeno.c. +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    RT_MUTEX CanFestival_mutex
    +
    +
    + +

    + +

    +Definition at line 16 of file timers_xeno.c. +

    +

    + +

    +
    + + + + +
    RTIME last_alarm_set
    +
    +
    + +

    + +

    +Definition at line 20 of file timers_xeno.c. +

    +Referenced by setTimer(), StartTimerLoop(), and timerloop_task_proc(). +

    +

    + +

    +
    + + + + +
    RTIME last_occured_alarm
    +
    +
    + +

    + +

    +Definition at line 19 of file timers_xeno.c. +

    +Referenced by getElapsedTime(), StartTimerLoop(), and timerloop_task_proc(). +

    +

    + +

    +
    + + + + +
    RTIME last_time_read
    +
    +
    + +

    + +

    +Definition at line 18 of file timers_xeno.c. +

    +Referenced by getElapsedTime(), setTimer(), and StartTimerLoop(). +

    +

    + +

    +
    + + + + +
    char stop_timer = 0
    +
    +
    + +

    + +

    +Definition at line 22 of file timers_xeno.c. +

    +Referenced by StartTimerLoop(), StopTimerLoop(), and timerloop_task_proc(). +

    +

    + +

    +
    + + + + +
    RT_TASK timerloop_task
    +
    +
    + +

    + +

    +Definition at line 17 of file timers_xeno.c. +

    +Referenced by cleanup_all(), setTimer(), StartTimerLoop(), and StopTimerLoop(). +

    +

    +


    Generated on Fri Jun 8 08:51:43 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c_15986eb72a64e72df6600dc23c1e19c8_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c_15986eb72a64e72df6600dc23c1e19c8_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 223,6 322,30 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 220,54 324,78 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 215,102 330,126 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 379,102 510,126 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c_15986eb72a64e72df6600dc23c1e19c8_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c_15986eb72a64e72df6600dc23c1e19c8_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +073704ca180938814f120cf31a404de7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c_15986eb72a64e72df6600dc23c1e19c8_cgraph.png Binary file doc/doxygen/html/timers__xeno_8c_15986eb72a64e72df6600dc23c1e19c8_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,7 @@ +base referer +rect $win32_2applicfg_8h.html 783,468 871,492 +rect $can__driver_8h.html 483,393 587,417 +rect $timer_8h.html 338,517 407,541 +rect $can_8h.html 655,443 714,467 +rect $win32_2timerscfg_8h.html 635,593 734,617 +rect $data_8h.html 503,492 567,516 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +dd85893c6a77decee3d662e8816c605a \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c__incl.png Binary file doc/doxygen/html/timers__xeno_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c_c9e1731843825eb55e7a94894e6a8ec5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c_c9e1731843825eb55e7a94894e6a8ec5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $timers__xeno_8c.html#f37d89241d0a9ac0430a0db6c1ead3d2 209,5 308,29 +rect $canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d 552,128 683,152 +rect $timer_8c.html#11c2616d78f06ed9144ef662f757b128 217,104 300,128 +rect $timers__xeno_8c.html#15986eb72a64e72df6600dc23c1e19c8 180,152 337,176 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 396,104 495,128 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 393,152 497,176 +rect $timer_8c.html#fa75192a3238525618f8cb83004930cc 388,200 503,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c_c9e1731843825eb55e7a94894e6a8ec5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/timers__xeno_8c_c9e1731843825eb55e7a94894e6a8ec5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8e6160c6dd626639eb4776c99eca79ed \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/timers__xeno_8c_c9e1731843825eb55e7a94894e6a8ec5_cgraph.png Binary file doc/doxygen/html/timers__xeno_8c_c9e1731843825eb55e7a94894e6a8ec5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/tree.html --- a/doc/doxygen/html/tree.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/doxygen/html/tree.html Fri Jun 08 09:23:56 2007 +0200 @@ -63,19 +63,174 @@

    CanFestival

    -

    o+File List

    +

    o+Data Structures

    +

    o*Data Fields

    +

    o+File List

    +
    +

    |o*drivers/can_lincan/can_lincan.c

    +

    |o*drivers/can_lincan/canmsg.h

    +

    |o*drivers/can_lincan/lincan.h

    +

    |o*drivers/can_peak_linux/can_peak_linux.c

    +

    |o*drivers/can_peak_win32/can_peak_win32.c

    +

    |o*drivers/can_socket/can_socket.c

    +

    |o*drivers/can_uvccm_win32/can_uvccm_win32.cpp

    +

    |o*drivers/can_virtual/can_virtual.c

    +

    |o*drivers/hcs12/canOpenDriver.c

    +

    |o*drivers/hcs12/interrupt.c

    +

    |o*drivers/timers_unix/timers_unix.c

    +

    |o*drivers/timers_xeno/timers_xeno.c

    +

    |o*drivers/unix/unix.c

    +

    |o*drivers/win32/drivers_win32.cpp

    +

    |o*drivers/win32/timers_win32.cpp

    +

    |o*examples/gene_SYNC_HCS12/appli.c

    +

    |o*examples/gene_SYNC_HCS12/objdict.c

    +

    |o*examples/gene_SYNC_HCS12/objdict.h

    +

    |o*examples/TestMasterMicroMod/getopt.c

    +

    |o*examples/TestMasterMicroMod/getopt.h

    +

    |o*examples/TestMasterMicroMod/TestMaster.c

    +

    |o*examples/TestMasterMicroMod/TestMaster.h

    +

    |o*examples/TestMasterMicroMod/TestMasterMicroMod.c

    +

    |o*examples/TestMasterMicroMod/TestMasterMicroMod.h

    +

    |o*examples/TestMasterSlave/getopt.c

    +

    |o*examples/TestMasterSlave/getopt.h

    +

    |o*examples/TestMasterSlave/Master.c

    +

    |o*examples/TestMasterSlave/Master.h

    +

    |o*examples/TestMasterSlave/Slave.c

    +

    |o*examples/TestMasterSlave/Slave.h

    +

    |o*examples/TestMasterSlave/TestMaster.c

    +

    |o*examples/TestMasterSlave/TestMaster.h

    +

    |o*examples/TestMasterSlave/TestMasterSlave.c

    +

    |o*examples/TestMasterSlave/TestMasterSlave.h

    +

    |o*examples/TestMasterSlave/TestSlave.c

    +

    |o*examples/TestMasterSlave/TestSlave.h

    +

    |o*examples/win32test/main.c

    +

    |o*examples/win32test/win32test.c

    +

    |o*examples/win32test/win32test.h

    +

    |o*include/can.h

    +

    |o*include/can_driver.h

    +

    |o*include/config.h

    +

    |o*include/data.h

    +

    |o*include/dcf.h

    +

    |o*include/def.h

    +

    |o*include/lifegrd.h

    +

    |o*include/nmtMaster.h

    +

    |o*include/nmtSlave.h

    +

    |o*include/objacces.h

    +

    |o*include/objdictdef.h

    +

    |o*include/pdo.h

    +

    |o*include/sdo.h

    +

    |o*include/states.h

    +

    |o*include/sync.h

    +

    |o*include/sysdep.h

    +

    |o*include/timer.h

    +

    |o*include/timers_driver.h

    +

    |o*include/hcs12/applicfg.h

    +

    |o*include/hcs12/candriver.h

    +

    |o*include/hcs12/canOpenDriver.h

    +

    |o*include/hcs12/error.h

    +

    |o*include/hcs12/interrupt.h

    +

    |o*include/hcs12/regbase.h

    +

    |o*include/hcs12/asm-m68hc12/ports.h

    +

    |o*include/hcs12/asm-m68hc12/ports_def.h

    +

    |o*include/hcs12/asm-m68hc12/portsaccess.h

    +

    |o*include/hcs12/asm-m68hc12/regs.h

    +

    |o*include/hcs12/board/arch/exit.h

    +

    |o*include/hcs12/board/arch/interrupts.h

    +

    |o*include/hcs12/board/arch/param.h

    +

    |o*include/timers_unix/timerscfg.h

    +

    |o*include/timers_xeno/timerscfg.h

    +

    |o*include/unix/applicfg.h

    +

    |o*include/unix/canfestival.h

    +

    |o*include/win32/applicfg.h

    +

    |o*include/win32/canfestival.h

    +

    |o*include/win32/config.h

    +

    |o*include/win32/timerscfg.h

    +

    |o*src/dcf.c

    +

    |o*src/lifegrd.c

    +

    |o*src/nmtMaster.c

    +

    |o*src/nmtSlave.c

    +

    |o*src/objacces.c

    +

    |o*src/pdo.c

    +

    |o*src/sdo.c

    +

    |o*src/states.c

    +

    |o*src/sync.c

    +

    |o*src/timer.c

    +

    |\*src/win32/resource.h

    +
    +

    o+Directories

    +

    \*Globals

    diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2applicfg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2applicfg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,126 @@ + + +CanFestival: include/unix/applicfg.h Source File + + + + + + + +

    applicfg.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __APPLICFG_LINUX__
    +00024 #define __APPLICFG_LINUX__
    +00025 
    +00026 #include <string.h>
    +00027 #include <stdio.h>
    +00028 
    +00029 /*  Define the architecture : little_endian or big_endian
    +00030  -----------------------------------------------------
    +00031  Test :
    +00032  UNS32 v = 0x1234ABCD;
    +00033  char *data = &v;
    +00034 
    +00035  Result for a little_endian architecture :
    +00036  data[0] = 0xCD;
    +00037  data[1] = 0xAB;
    +00038  data[2] = 0x34;
    +00039  data[3] = 0x12;
    +00040 
    +00041  Result for a big_endian architecture :
    +00042  data[0] = 0x12;
    +00043  data[1] = 0x34;
    +00044  data[2] = 0xAB;
    +00045  data[3] = 0xCD;
    +00046  */
    +00047 
    +00048 /* Integers */
    +00049 #define INTEGER8 char
    +00050 #define INTEGER16 short
    +00051 #define INTEGER24
    +00052 #define INTEGER32 long
    +00053 #define INTEGER40
    +00054 #define INTEGER48
    +00055 #define INTEGER56
    +00056 #define INTEGER64
    +00057 
    +00058 /* Unsigned integers */
    +00059 #define UNS8   unsigned char
    +00060 #define UNS16  unsigned short
    +00061 #define UNS32  unsigned long
    +00062 #define UNS24
    +00063 #define UNS40
    +00064 #define UNS48
    +00065 #define UNS56
    +00066 #define UNS64 
    +00067 
    +00068 /* Reals */
    +00069 #define REAL32  float
    +00070 #define REAL64 double
    +00071 
    +00072 /* Definition of error and warning macros */
    +00073 /* -------------------------------------- */
    +00074 #if defined DEBUG_ERR_CONSOLE_ON || defined DEBUG_WAR_CONSOLE_ON
    +00075 #include <stdio.h>
    +00076 #endif
    +00077 
    +00078 /* Definition of MSG_ERR */
    +00079 /* --------------------- */
    +00080 #ifdef DEBUG_ERR_CONSOLE_ON
    +00081 #    define MSG_ERR(num, str, val)            \
    +00082           printf("%s,%d : 0X%x %s 0X%x \n",__FILE__, __LINE__,num, str, val);
    +00083 #else
    +00084 #    define MSG_ERR(num, str, val)
    +00085 #endif
    +00086 
    +00087 /* Definition of MSG_WAR */
    +00088 /* --------------------- */
    +00089 #ifdef DEBUG_WAR_CONSOLE_ON
    +00090 #    define MSG_WAR(num, str, val)          \
    +00091           printf("%s,%d : 0X%x %s 0X%x \n",__FILE__, __LINE__,num, str, val);
    +00092 #else
    +00093 #    define MSG_WAR(num, str, val)
    +00094 #endif
    +00095 
    +00096 typedef void* CAN_HANDLE;
    +00097 
    +00098 typedef void* CAN_PORT;
    +00099 
    +00100 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2applicfg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2applicfg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,480 @@ + + +CanFestival: include/unix/applicfg.h File Reference + + + + + + + +

    applicfg.h File Reference

    #include <string.h>
    +#include <stdio.h>
    + +

    +Include dependency graph for applicfg.h:

    + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define INTEGER8   char
    #define INTEGER16   short
    #define INTEGER24
    #define INTEGER32   long
    #define INTEGER40
    #define INTEGER48
    #define INTEGER56
    #define INTEGER64
    #define UNS8   unsigned char
    #define UNS16   unsigned short
    #define UNS32   unsigned long
    #define UNS24
    #define UNS40
    #define UNS48
    #define UNS56
    #define UNS64
    #define REAL32   float
    #define REAL64   double
    #define MSG_ERR(num, str, val)
    #define MSG_WAR(num, str, val)

    Typedefs

    typedef void * CAN_HANDLE
    typedef void * CAN_PORT
    +


    Define Documentation

    + +
    +
    + + + + +
    #define INTEGER16   short
    +
    +
    + +

    + +

    +Definition at line 50 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER24
    +
    +
    + +

    + +

    +Definition at line 51 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER32   long
    +
    +
    + +

    + +

    +Definition at line 52 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER40
    +
    +
    + +

    + +

    +Definition at line 53 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER48
    +
    +
    + +

    + +

    +Definition at line 54 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER56
    +
    +
    + +

    + +

    +Definition at line 55 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER64
    +
    +
    + +

    + +

    +Definition at line 56 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER8   char
    +
    +
    + +

    + +

    +Definition at line 49 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + + + + + + + +
    #define MSG_ERR (num,
    str,
    val   ) 
    +
    +
    + +

    + +

    +Definition at line 84 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + + + + + + + +
    #define MSG_WAR (num,
    str,
    val   ) 
    +
    +
    + +

    + +

    +Definition at line 93 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define REAL32   float
    +
    +
    + +

    + +

    +Definition at line 69 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define REAL64   double
    +
    +
    + +

    + +

    +Definition at line 70 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS16   unsigned short
    +
    +
    + +

    + +

    +Definition at line 60 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS24
    +
    +
    + +

    + +

    +Definition at line 62 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS32   unsigned long
    +
    +
    + +

    + +

    +Definition at line 61 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS40
    +
    +
    + +

    + +

    +Definition at line 63 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS48
    +
    +
    + +

    + +

    +Definition at line 64 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS56
    +
    +
    + +

    + +

    +Definition at line 65 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS64
    +
    +
    + +

    + +

    +Definition at line 66 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS8   unsigned char
    +
    +
    + +

    + +

    +Definition at line 59 of file applicfg.h. +

    +

    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef void* CAN_HANDLE
    +
    +
    + +

    + +

    +Definition at line 96 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    typedef void* CAN_PORT
    +
    +
    + +

    + +

    +Definition at line 98 of file applicfg.h. +

    +

    +


    Generated on Fri Jun 8 08:51:56 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2applicfg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2applicfg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2applicfg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2applicfg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +3d24927edd42aa832b47617376d2d880 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2applicfg_8h__incl.png Binary file doc/doxygen/html/unix_2applicfg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2canfestival_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2canfestival_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,48 @@ + + +CanFestival: include/unix/canfestival.h Source File + + + + + + + +

    canfestival.h

    Go to the documentation of this file.
    00001 #ifndef UNIX_H_
    +00002 #define UNIX_H_
    +00003 
    +00004 #include "timerscfg.h"
    +00005 #include "can_driver.h"
    +00006 #include "data.h"
    +00007 #include "timers_driver.h"
    +00008 #ifdef WIN32
    +00009 #include <windows.h>
    +00010 typedef HINSTANCE LIB_HANDLE;
    +00011 #else
    +00012 #include <dlfcn.h>
    +00013 typedef void* LIB_HANDLE;
    +00014 #endif
    +00015 
    +00016 UNS8 UnLoadCanDriver(LIB_HANDLE handle);
    +00017 LIB_HANDLE LoadCanDriver(char* driver_name);
    +00018 UNS8 canSend(CAN_PORT port, Message *m);
    +00019 CAN_PORT canOpen(s_BOARD *board, CO_Data * d);
    +00020 int canClose(CO_Data * d);
    +00021 
    +00022 #endif /*UNIX_H_*/
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2canfestival_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2canfestival_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,219 @@ + + +CanFestival: include/unix/canfestival.h File Reference + + + + + + + +

    canfestival.h File Reference

    #include "timerscfg.h"
    +#include "can_driver.h"
    +#include "data.h"
    +#include "timers_driver.h"
    +#include <dlfcn.h>
    + +

    +Include dependency graph for canfestival.h:

    + + + + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + +

    Typedefs

    typedef void * LIB_HANDLE

    Functions

    UNS8 UnLoadCanDriver (LIB_HANDLE handle)
    LIB_HANDLE LoadCanDriver (char *driver_name)
    UNS8 canSend (CAN_PORT port, Message *m)
    CAN_PORT canOpen (s_BOARD *board, CO_Data *d)
    int canClose (CO_Data *d)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef void* LIB_HANDLE
    +
    +
    + +

    + +

    +Definition at line 13 of file canfestival.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    int canClose (CO_Data d  ) 
    +
    +
    + +

    + +

    +Definition at line 178 of file unix.c. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    CAN_PORT canOpen (s_BOARD board,
    CO_Data d 
    )
    +
    +
    + +

    + +

    +Definition at line 145 of file unix.c. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 canSend (CAN_PORT  port,
    Message m 
    )
    +
    +
    + +

    + +

    +Definition at line 120 of file unix.c. +

    +

    + +

    +
    + + + + + + + + + +
    LIB_HANDLE LoadCanDriver (char *  driver_name  ) 
    +
    +
    + +

    + +

    +Definition at line 84 of file unix.c. +

    +

    + +

    +
    + + + + + + + + + +
    UNS8 UnLoadCanDriver (LIB_HANDLE  handle  ) 
    +
    +
    + +

    + +

    +Definition at line 71 of file unix.c. +

    +

    +


    Generated on Fri Jun 8 08:52:08 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2canfestival_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2canfestival_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,18 @@ +base referer +rect $win32_2timerscfg_8h.html 691,129 789,153 +rect $can__driver_8h.html 251,543 355,567 +rect $data_8h.html 271,397 335,421 +rect $timers__driver_8h.html 403,56 525,80 +rect $win32_2applicfg_8h.html 696,495 784,519 +rect $can_8h.html 435,640 493,664 +rect $def_8h.html 580,344 636,368 +rect $objdictdef_8h.html 413,104 515,128 +rect $objacces_8h.html 417,544 511,568 +rect $sdo_8h.html 435,200 493,224 +rect $pdo_8h.html 435,397 493,421 +rect $states_8h.html 427,592 501,616 +rect $lifegrd_8h.html 425,445 503,469 +rect $sync_8h.html 431,152 497,176 +rect $nmtMaster_8h.html 411,299 517,323 +rect $config_8h.html 703,344 777,368 +rect $timer_8h.html 573,200 643,224 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2canfestival_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_2canfestival_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +00a23f0c8c74ed2a7ab3ee7b6f04f7fa \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_2canfestival_8h__incl.png Binary file doc/doxygen/html/unix_2canfestival_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,216 @@ + + +CanFestival: drivers/unix/unix.c Source File + + + + + + + +

    unix.c

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack. 
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 #include <unistd.h>
    +00023 #include <stdio.h>
    +00024 #include <stdlib.h>
    +00025 
    +00026 #ifndef NOT_USE_DYNAMIC_LOADING
    +00027 #define DLL_CALL(funcname) (* funcname##_driver)
    +00028 #define FCT_PTR_INIT =NULL
    +00029 
    +00030 #define DLSYM(name)\
    +00031         *(void **) (&name##_driver) = dlsym(handle, #name"_driver");\
    +00032         if ((error = dlerror()) != NULL)  {\
    +00033                 fprintf (stderr, "%s\n", error);\
    +00034                 UnLoadCanDriver(handle);\
    +00035                 return NULL;\
    +00036         }
    +00037 
    +00038 #else /*NOT_USE_DYNAMIC_LOADING*/
    +00039 
    +00040 /*Function call is direct*/
    +00041 #define DLL_CALL(funcname) funcname##_driver
    +00042 
    +00043 #endif /*NOT_USE_DYNAMIC_LOADING*/
    +00044 
    +00045 #include "data.h"
    +00046 #include "canfestival.h"
    +00047 #include "timers_driver.h"
    +00048 
    +00049 #define MAX_NB_CAN_PORTS 16
    +00050 
    +00051 typedef struct {
    +00052   char used;
    +00053   CAN_HANDLE fd;
    +00054   TASK_HANDLE receiveTask;
    +00055   CO_Data* d;
    +00056 } CANPort;
    +00057 
    +00058 #include "can_driver.h"
    +00059 
    +00060 /*Declares the funtion pointers for dll binding or simple protos*/
    +00061 /*UNS8 DLL_CALL(canReceive)(CAN_HANDLE, Message *);
    +00062 UNS8 DLL_CALL(canSend)(CAN_HANDLE, Message *);
    +00063 CAN_HANDLE DLL_CALL(canOpen)(s_BOARD *);
    +00064 int DLL_CALL(canClose)(CAN_HANDLE);
    +00065 */
    +00066 CANPort canports[MAX_NB_CAN_PORTS] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,}};
    +00067 
    +00068 #ifndef NOT_USE_DYNAMIC_LOADING
    +00069 
    +00070 /*UnLoads the dll*/
    +00071 UNS8 UnLoadCanDriver(LIB_HANDLE handle)
    +00072 {
    +00073         if(handle!=NULL)
    +00074         {
    +00075                 dlclose(handle);
    +00076 
    +00077                 handle=NULL;
    +00078                 return 0;
    +00079         }
    +00080         return -1;
    +00081 }
    +00082 
    +00083 /*Loads the dll and get funcs ptr*/
    +00084 LIB_HANDLE LoadCanDriver(char* driver_name)
    +00085 {
    +00086         LIB_HANDLE handle = NULL;
    +00087         char *error;
    +00088         
    +00089 
    +00090         if(handle==NULL)
    +00091         {
    +00092                 handle = dlopen(driver_name, RTLD_LAZY);
    +00093         }
    +00094 
    +00095         if (!handle) {
    +00096                 fprintf (stderr, "%s\n", dlerror());
    +00097                 return NULL;
    +00098         }
    +00099  
    +00100         /*Get function ptr*/
    +00101         DLSYM(canReceive)
    +00102         DLSYM(canSend)
    +00103         DLSYM(canOpen)
    +00104         DLSYM(canClose)
    +00105 
    +00106         return handle;
    +00107 }
    +00108 
    +00109 #endif
    +00110 
    +00111 
    +00112 
    +00113 /*Not needed -- canReceiveLoop calls _canReceive directly *//*
    +00114 UNS8 canReceive(CAN_PORT port, Message *m)
    +00115 {
    +00116         return DLL_CALL(canReceive)(port->fd, Message *m);
    +00117 }
    +00118 */
    +00119 
    +00120 UNS8 canSend(CAN_PORT port, Message *m)
    +00121 {
    +00122         if(port){
    +00123                 UNS8 res;
    +00124                 //LeaveMutex();
    +00125                 res = DLL_CALL(canSend)(((CANPort*)port)->fd, m);
    +00126                 //EnterMutex();
    +00127                 return res;
    +00128         }               
    +00129         return -1;
    +00130 }
    +00131 
    +00132 void canReceiveLoop(CAN_PORT port)
    +00133 {
    +00134        Message m;
    +00135 
    +00136        while (1) {
    +00137                if (DLL_CALL(canReceive)(((CANPort*)port)->fd, &m) != 0)
    +00138                        break;
    +00139 
    +00140                EnterMutex();
    +00141                canDispatch(((CANPort*)port)->d, &m);
    +00142                LeaveMutex();
    +00143        }
    +00144 }
    +00145 CAN_PORT canOpen(s_BOARD *board, CO_Data * d)
    +00146 {
    +00147         int i;
    +00148         for(i=0; i < MAX_NB_CAN_PORTS; i++)
    +00149         {
    +00150                 if(!canports[i].used)
    +00151                 break;
    +00152         }
    +00153         
    +00154 #ifndef NOT_USE_DYNAMIC_LOADING
    +00155         if (&DLL_CALL(canOpen)==NULL) {
    +00156                 fprintf(stderr,"CanOpen : Can Driver dll not loaded\n");
    +00157                 return NULL;
    +00158         }
    +00159 #endif  
    +00160         CAN_HANDLE fd0 = DLL_CALL(canOpen)(board);
    +00161         if(fd0){
    +00162                 canports[i].used = 1;
    +00163                 canports[i].fd = fd0;
    +00164                 canports[i].d = d;
    +00165         
    +00166                 CreateReceiveTask(&(canports[i]), &canports[i].receiveTask, &canReceiveLoop);
    +00167                 
    +00168                 EnterMutex();
    +00169                 d->canHandle = (CAN_PORT)&canports[i];
    +00170                 LeaveMutex();
    +00171                 return (CAN_PORT)&canports[i];
    +00172         }else{
    +00173                 fprintf(stderr,"CanOpen : Cannot open board {busname='%s',baudrate='%s'}\n",board->busname, board->baudrate);
    +00174                 return NULL;
    +00175         }
    +00176 }
    +00177 
    +00178 int canClose(CO_Data * d)
    +00179 {
    +00180         EnterMutex();
    +00181         ((CANPort*)d->canHandle)->used = 0;
    +00182         CANPort* tmp = (CANPort*)d->canHandle;
    +00183         d->canHandle = NULL;
    +00184         LeaveMutex();
    +00185         
    +00186         int res = DLL_CALL(canClose)(tmp->fd);
    +00187         
    +00188         WaitReceiveTaskEnd(tmp->receiveTask);
    +00189         return res;
    +00190 }
    +

    Generated on Fri Jun 8 08:51:38 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,361 @@ + + +CanFestival: drivers/unix/unix.c File Reference + + + + + + + +

    unix.c File Reference

    #include <unistd.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +#include "data.h"
    +#include "canfestival.h"
    +#include "timers_driver.h"
    +#include "can_driver.h"
    + +

    +Include dependency graph for unix.c:

    + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data Structures

    struct  CANPort

    Defines

    #define DLL_CALL(funcname)   (* funcname##_driver)
    #define FCT_PTR_INIT   =NULL
    #define DLSYM(name)
    #define MAX_NB_CAN_PORTS   16

    Functions

    UNS8 UnLoadCanDriver (LIB_HANDLE handle)
    LIB_HANDLE LoadCanDriver (char *driver_name)
    UNS8 canSend (CAN_PORT port, Message *m)
    void canReceiveLoop (CAN_PORT port)
    CAN_PORT canOpen (s_BOARD *board, CO_Data *d)
    int canClose (CO_Data *d)

    Variables

    CANPort canports [MAX_NB_CAN_PORTS] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,}}
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define DLL_CALL (funcname   )    (* funcname##_driver)
    +
    +
    + +

    + +

    +Definition at line 27 of file unix.c. +

    +Referenced by canClose(), canOpen(), canReceiveLoop(), and canSend(). +

    +

    + +

    +
    + + + + + + + + + +
    #define DLSYM (name   ) 
    +
    +
    + +

    +Value:

    *(void **) (&name##_driver) = dlsym(handle, #name"_driver");\
    +        if ((error = dlerror()) != NULL)  {\
    +                fprintf (stderr, "%s\n", error);\
    +                UnLoadCanDriver(handle);\
    +                return NULL;\
    +        }
    +
    +

    +Definition at line 30 of file unix.c. +

    +Referenced by LoadCanDriver(). +

    +

    + +

    +
    + + + + +
    #define FCT_PTR_INIT   =NULL
    +
    +
    + +

    + +

    +Definition at line 28 of file unix.c. +

    +

    + +

    +
    + + + + +
    #define MAX_NB_CAN_PORTS   16
    +
    +
    + +

    + +

    +Definition at line 49 of file unix.c. +

    +Referenced by canOpen(). +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    int canClose (CO_Data d  ) 
    +
    +
    + +

    + +

    +Definition at line 178 of file unix.c. +

    +Referenced by canClose(), LoadCanDriver(), and main(). +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    CAN_PORT canOpen (s_BOARD board,
    CO_Data d 
    )
    +
    +
    + +

    + +

    +Definition at line 145 of file unix.c. +

    +Referenced by canOpen(), LoadCanDriver(), and main(). +

    +

    + +

    +
    + + + + + + + + + +
    void canReceiveLoop (CAN_PORT  port  ) 
    +
    +
    + +

    + +

    +Definition at line 132 of file unix.c. +

    +References canDispatch(), canReceive(), DLL_CALL, EnterMutex(), and LeaveMutex(). +

    +Referenced by canOpen(). +

    +Here is the call graph for this function:

    + + + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 canSend (CAN_PORT  port,
    Message m 
    )
    +
    +
    + +

    + +

    +Definition at line 120 of file unix.c. +

    +

    + +

    +
    + + + + + + + + + +
    LIB_HANDLE LoadCanDriver (char *  driver_name  ) 
    +
    +
    + +

    + +

    +Definition at line 84 of file unix.c. +

    +Referenced by main(). +

    +

    + +

    +
    + + + + + + + + + +
    UNS8 UnLoadCanDriver (LIB_HANDLE  handle  ) 
    +
    +
    + +

    + +

    +Definition at line 71 of file unix.c. +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    CANPort canports[MAX_NB_CAN_PORTS] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,}}
    +
    +
    + +

    + +

    +Definition at line 66 of file unix.c. +

    +Referenced by canOpen(). +

    +

    +


    Generated on Fri Jun 8 08:51:43 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,10 @@ +base referer +rect $states_8c.html#3f8975650604cc23582f19a43fd4e518 188,102 292,126 +rect $drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd 191,150 290,174 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 191,198 290,222 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 188,246 292,270 +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 343,6 532,30 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 352,54 523,78 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 386,102 490,126 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 384,150 491,174 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 382,198 494,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +30ff141186366b06d6cfc58689db8044 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.png Binary file doc/doxygen/html/unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $data_8h.html 394,176 458,200 +rect $win32_2canfestival_8h.html 211,200 318,224 +rect $can__driver_8h.html 374,224 478,248 +rect $timers__driver_8h.html 203,299 326,323 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/unix_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +092408813730af7c2d7858db5f6a9ef7 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/unix_8c__incl.png Binary file doc/doxygen/html/unix_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2applicfg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,156 @@ + + +CanFestival: include/win32/applicfg.h Source File + + + + + + + +

    applicfg.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack.
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 
    +00006 See COPYING file for copyrights details.
    +00007 
    +00008 This library is free software; you can redistribute it and/or
    +00009 modify it under the terms of the GNU Lesser General Public
    +00010 License as published by the Free Software Foundation; either
    +00011 version 2.1 of the License, or (at your option) any later version.
    +00012 
    +00013 This library is distributed in the hope that it will be useful,
    +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016 Lesser General Public License for more details.
    +00017 
    +00018 You should have received a copy of the GNU Lesser General Public
    +00019 License along with this library; if not, write to the Free Software
    +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00021 */
    +00022 
    +00023 #ifndef __APPLICFG_WIN32__
    +00024 #define __APPLICFG_WIN32__
    +00025 
    +00026 #include <windows.h>
    +00027 #include <string.h>
    +00028 #include <stdio.h>
    +00029 
    +00030 // Define the architecture : little_endian or big_endian
    +00031 // -----------------------------------------------------
    +00032 // Test :
    +00033 // UNS32 v = 0x1234ABCD;
    +00034 // char *data = &v;
    +00035 //
    +00036 // Result for a little_endian architecture :
    +00037 // data[0] = 0xCD;
    +00038 // data[1] = 0xAB;
    +00039 // data[2] = 0x34;
    +00040 // data[3] = 0x12;
    +00041 //
    +00042 // Result for a big_endian architecture :
    +00043 // data[0] = 0x12;
    +00044 // data[1] = 0x34;
    +00045 // data[2] = 0xAB;
    +00046 // data[3] = 0xCD;
    +00047 
    +00048 // Integers
    +00049 #define INTEGER8 char
    +00050 #define INTEGER16 short
    +00051 #define INTEGER24 long
    +00052 #define INTEGER32 long
    +00053 #define INTEGER40 long long
    +00054 #define INTEGER48 long long
    +00055 #define INTEGER56 long long
    +00056 #define INTEGER64 long long
    +00057 
    +00058 // Unsigned integers
    +00059 #define UNS8   unsigned char
    +00060 #define UNS16  unsigned short
    +00061 #define UNS32  unsigned long
    +00062 #define UNS24  unsigned long 
    +00063 #define UNS40  unsigned long long
    +00064 #define UNS48  unsigned long long
    +00065 #define UNS56  unsigned long long
    +00066 #define UNS64  unsigned long long
    +00067 
    +00068 // Reals
    +00069 #define REAL32 float
    +00070 #define REAL64 double
    +00071 
    +00072 // Custom integer types sizes
    +00073 #define sizeof_INTEGER24 3
    +00074 #define sizeof_INTEGER40 5
    +00075 #define sizeof_INTEGER48 6
    +00076 #define sizeof_INTEGER56 7
    +00077 
    +00078 #define sizeof_UNS24  3
    +00079 #define sizeof_UNS40  5
    +00080 #define sizeof_UNS48  6
    +00081 #define sizeof_UNS56  7
    +00082 
    +00083 // Non integral integers conversion macros
    +00084 #define INT24_2_32(a) (a <= 0x7FFFFF ? a : a|0xFF000000)
    +00085 #define INT40_2_64(a) (a <= 0x0000007FFFFFFFFF ? a : a|0xFFFFFF0000000000)
    +00086 #define INT48_2_64(a) (a <= 0x00007FFFFFFFFFFF ? a : a|0xFFFF000000000000)
    +00087 #define INT56_2_64(a) (a <= 0x007FFFFFFFFFFFFF ? a : a|0xFF00000000000000)
    +00088 
    +00089 #define INT32_2_24(a) (a&0x00FFFFFF)
    +00090 #define INT64_2_40(a) (a&0x000000FFFFFFFFFF)
    +00091 #define INT64_2_48(a) (a&0x0000FFFFFFFFFFFF)
    +00092 #define INT64_2_56(a) (a&0x00FFFFFFFFFFFFFF)
    +00093 
    +00095 // --------------------------------------
    +00096 
    +00097 #ifdef UNICODE
    +00098   #define CANFESTIVAL_DEBUG_MSG(num, str, val)\
    +00099     {wchar_t msg[300];\
    +00100      unsigned long value = val;\
    +00101      swprintf(msg,L"%s(%d) : 0x%X %s 0x%X\n",__FILE__, __LINE__,num, str, value);\
    +00102      OutputDebugString(msg);}
    +00103 #else
    +00104   #define CANFESTIVAL_DEBUG_MSG(num, str, val)\
    +00105     {char msg[300];\
    +00106      unsigned long value = val;\
    +00107      sprintf(msg,"%s(%d) : 0x%X %s 0x%X\n",__FILE__, __LINE__,num, str, value);\
    +00108      OutputDebugString(msg);}
    +00109 #endif  
    +00110 
    +00112 // ---------------------
    +00113 #ifdef DEBUG_WAR_CONSOLE_ON
    +00114     #define MSG_WAR(num, str, val) CANFESTIVAL_DEBUG_MSG(num, str, val)
    +00115 #else
    +00116 #    define MSG_WAR(num, str, val)
    +00117 #endif
    +00118 
    +00120 // ---------------------
    +00121 #ifdef DEBUG_ERR_CONSOLE_ON
    +00122 #    define MSG_ERR(num, str, val) CANFESTIVAL_DEBUG_MSG(num, str, val)
    +00123 #else
    +00124 #    define MSG_ERR(num, str, val)
    +00125 #endif
    +00126 
    +00127 
    +00128 
    +00129 typedef void* CAN_HANDLE;
    +00130 
    +00131 typedef void* CAN_PORT;
    +00132 
    +00133 #endif // __APPLICFG_WIN32__
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2applicfg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,887 @@ + + +CanFestival: include/win32/applicfg.h File Reference + + + + + + + +

    applicfg.h File Reference

    #include <windows.h>
    +#include <string.h>
    +#include <stdio.h>
    + +

    +Include dependency graph for applicfg.h:

    + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define INTEGER8   char
    #define INTEGER16   short
    #define INTEGER24   long
    #define INTEGER32   long
    #define INTEGER40   long long
    #define INTEGER48   long long
    #define INTEGER56   long long
    #define INTEGER64   long long
    #define UNS8   unsigned char
    #define UNS16   unsigned short
    #define UNS32   unsigned long
    #define UNS24   unsigned long
    #define UNS40   unsigned long long
    #define UNS48   unsigned long long
    #define UNS56   unsigned long long
    #define UNS64   unsigned long long
    #define REAL32   float
    #define REAL64   double
    #define sizeof_INTEGER24   3
    #define sizeof_INTEGER40   5
    #define sizeof_INTEGER48   6
    #define sizeof_INTEGER56   7
    #define sizeof_UNS24   3
    #define sizeof_UNS40   5
    #define sizeof_UNS48   6
    #define sizeof_UNS56   7
    #define INT24_2_32(a)   (a <= 0x7FFFFF ? a : a|0xFF000000)
    #define INT40_2_64(a)   (a <= 0x0000007FFFFFFFFF ? a : a|0xFFFFFF0000000000)
    #define INT48_2_64(a)   (a <= 0x00007FFFFFFFFFFF ? a : a|0xFFFF000000000000)
    #define INT56_2_64(a)   (a <= 0x007FFFFFFFFFFFFF ? a : a|0xFF00000000000000)
    #define INT32_2_24(a)   (a&0x00FFFFFF)
    #define INT64_2_40(a)   (a&0x000000FFFFFFFFFF)
    #define INT64_2_48(a)   (a&0x0000FFFFFFFFFFFF)
    #define INT64_2_56(a)   (a&0x00FFFFFFFFFFFFFF)
    #define CANFESTIVAL_DEBUG_MSG(num, str, val)
     Definition of error and warning macros.
    #define MSG_WAR(num, str, val)
     Definition of MSG_WAR.
    #define MSG_ERR(num, str, val)
     Definition of MSG_ERR.

    Typedefs

    typedef void * CAN_HANDLE
    typedef void * CAN_PORT
    +


    Define Documentation

    + +
    +
    + + + + + + + + + + + + + + + +
    #define CANFESTIVAL_DEBUG_MSG (num,
    str,
    val   ) 
    +
    +
    + +

    +Value:

    {char msg[300];\
    +     unsigned long value = val;\
    +     sprintf(msg,"%s(%d) : 0x%X %s 0x%X\n",__FILE__, __LINE__,num, str, value);\
    +     OutputDebugString(msg);}
    +
    Definition of error and warning macros. +

    + +

    +Definition at line 104 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT24_2_32 (  )    (a <= 0x7FFFFF ? a : a|0xFF000000)
    +
    +
    + +

    + +

    +Definition at line 84 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT32_2_24 (  )    (a&0x00FFFFFF)
    +
    +
    + +

    + +

    +Definition at line 89 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT40_2_64 (  )    (a <= 0x0000007FFFFFFFFF ? a : a|0xFFFFFF0000000000)
    +
    +
    + +

    + +

    +Definition at line 85 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT48_2_64 (  )    (a <= 0x00007FFFFFFFFFFF ? a : a|0xFFFF000000000000)
    +
    +
    + +

    + +

    +Definition at line 86 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT56_2_64 (  )    (a <= 0x007FFFFFFFFFFFFF ? a : a|0xFF00000000000000)
    +
    +
    + +

    + +

    +Definition at line 87 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT64_2_40 (  )    (a&0x000000FFFFFFFFFF)
    +
    +
    + +

    + +

    +Definition at line 90 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT64_2_48 (  )    (a&0x0000FFFFFFFFFFFF)
    +
    +
    + +

    + +

    +Definition at line 91 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define INT64_2_56 (  )    (a&0x00FFFFFFFFFFFFFF)
    +
    +
    + +

    + +

    +Definition at line 92 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER16   short
    +
    +
    + +

    + +

    +Definition at line 50 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER24   long
    +
    +
    + +

    + +

    +Definition at line 51 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER32   long
    +
    +
    + +

    + +

    +Definition at line 52 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER40   long long
    +
    +
    + +

    + +

    +Definition at line 53 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER48   long long
    +
    +
    + +

    + +

    +Definition at line 54 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER56   long long
    +
    +
    + +

    + +

    +Definition at line 55 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER64   long long
    +
    +
    + +

    + +

    +Definition at line 56 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define INTEGER8   char
    +
    +
    + +

    + +

    +Definition at line 49 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + + + + + + + +
    #define MSG_ERR (num,
    str,
    val   ) 
    +
    +
    + +

    +Definition of MSG_ERR. +

    + +

    +Definition at line 124 of file applicfg.h. +

    +

    + +

    +
    + + + + + + + + + + + + + + + +
    #define MSG_WAR (num,
    str,
    val   ) 
    +
    +
    + +

    +Definition of MSG_WAR. +

    + +

    +Definition at line 116 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define REAL32   float
    +
    +
    + +

    + +

    +Definition at line 69 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define REAL64   double
    +
    +
    + +

    + +

    +Definition at line 70 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_INTEGER24   3
    +
    +
    + +

    + +

    +Definition at line 73 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_INTEGER40   5
    +
    +
    + +

    + +

    +Definition at line 74 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_INTEGER48   6
    +
    +
    + +

    + +

    +Definition at line 75 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_INTEGER56   7
    +
    +
    + +

    + +

    +Definition at line 76 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_UNS24   3
    +
    +
    + +

    + +

    +Definition at line 78 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_UNS40   5
    +
    +
    + +

    + +

    +Definition at line 79 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_UNS48   6
    +
    +
    + +

    + +

    +Definition at line 80 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define sizeof_UNS56   7
    +
    +
    + +

    + +

    +Definition at line 81 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS16   unsigned short
    +
    +
    + +

    + +

    +Definition at line 60 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS24   unsigned long
    +
    +
    + +

    + +

    +Definition at line 62 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS32   unsigned long
    +
    +
    + +

    + +

    +Definition at line 61 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS40   unsigned long long
    +
    +
    + +

    + +

    +Definition at line 63 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS48   unsigned long long
    +
    +
    + +

    + +

    +Definition at line 64 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS56   unsigned long long
    +
    +
    + +

    + +

    +Definition at line 65 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS64   unsigned long long
    +
    +
    + +

    + +

    +Definition at line 66 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    #define UNS8   unsigned char
    +
    +
    + +

    + +

    +Definition at line 59 of file applicfg.h. +

    +

    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef void* CAN_HANDLE
    +
    +
    + +

    + +

    +Definition at line 129 of file applicfg.h. +

    +

    + +

    +
    + + + + +
    typedef void* CAN_PORT
    +
    +
    + +

    + +

    +Definition at line 131 of file applicfg.h. +

    +

    +


    Generated on Fri Jun 8 08:51:57 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2applicfg_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,15 @@ +base referer +rect $timer_8c.html 1056,120 1147,144 +rect $timers__unix_8c.html 979,195 1224,219 +rect $timers__xeno_8c.html 975,258 1228,282 +rect $timers__win32_8cpp.html 983,359 1220,383 +rect $appli_8c.html 244,762 514,786 +rect $can_8h.html 323,460 435,484 +rect $can__driver_8h.html 564,310 722,334 +rect $data_8h.html 584,560 702,584 +rect $objacces_8h.html 775,488 922,512 +rect $lifegrd_8h.html 783,536 914,560 +rect $nmtSlave_8h.html 772,684 924,708 +rect $timer_8h.html 787,208 910,232 +rect $pdo_8h.html 791,584 906,608 +rect $states_8h.html 784,632 912,656 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2applicfg_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +5c99b2d98002401b3b32d90b32e6fab9 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h__dep__incl.png Binary file doc/doxygen/html/win32_2applicfg_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2applicfg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2applicfg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +03dae06233e8b70e1e88a61afa3a8c66 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2applicfg_8h__incl.png Binary file doc/doxygen/html/win32_2applicfg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,65 @@ + + +CanFestival: include/win32/canfestival.h Source File + + + + + + + +

    canfestival.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack.
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 Win32 Port Leonid Tochinski
    +00006 
    +00007 See COPYING file for copyrights details.
    +00008 
    +00009 This library is free software; you can redistribute it and/or
    +00010 modify it under the terms of the GNU Lesser General Public
    +00011 License as published by the Free Software Foundation; either
    +00012 version 2.1 of the License, or (at your option) any later version.
    +00013 
    +00014 This library is distributed in the hope that it will be useful,
    +00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00017 Lesser General Public License for more details.
    +00018 
    +00019 You should have received a copy of the GNU Lesser General Public
    +00020 License along with this library; if not, write to the Free Software
    +00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00022 */
    +00023 #ifndef CANFESTIVAL_H_
    +00024 #define CANFESTIVAL_H_
    +00025 
    +00026 #include "timerscfg.h"
    +00027 #include "can_driver.h"
    +00028 #include "data.h"
    +00029 
    +00030 #include <windows.h>
    +00031 typedef HINSTANCE LIB_HANDLE;
    +00032 
    +00033 UNS8 UnLoadCanDriver(LIB_HANDLE handle);
    +00034 LIB_HANDLE LoadCanDriver(char* driver_name);
    +00035 UNS8 canSend(CAN_PORT port, Message *m);
    +00036 CAN_PORT canOpen(s_BOARD *board, CO_Data * d);
    +00037 int canClose(CO_Data * d);
    +00038 
    +00039 #endif /*CANFESTIVAL_H_*/
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,290 @@ + + +CanFestival: include/win32/canfestival.h File Reference + + + + + + + +

    canfestival.h File Reference

    #include "timerscfg.h"
    +#include "can_driver.h"
    +#include "data.h"
    +#include <windows.h>
    + +

    +Include dependency graph for canfestival.h:

    + + + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + +

    Typedefs

    typedef HINSTANCE LIB_HANDLE

    Functions

    UNS8 UnLoadCanDriver (LIB_HANDLE handle)
    LIB_HANDLE LoadCanDriver (char *driver_name)
    UNS8 canSend (CAN_PORT port, Message *m)
    CAN_PORT canOpen (s_BOARD *board, CO_Data *d)
    int canClose (CO_Data *d)
    +


    Typedef Documentation

    + +
    +
    + + + + +
    typedef HINSTANCE LIB_HANDLE
    +
    +
    + +

    + +

    +Definition at line 31 of file canfestival.h. +

    +

    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    int canClose (CO_Data d  ) 
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    CAN_PORT canOpen (s_BOARD board,
    CO_Data d 
    )
    +
    + +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS8 canSend (CAN_PORT  port,
    Message m 
    )
    +
    +
    + +

    + +

    +Definition at line 120 of file unix.c. +

    +References canSend(), DLL_CALL, EnterMutex(), driver_data::inst, LeaveMutex(), driver_procs::m_canSend, s_driver_procs, and UNS8. +

    +Here is the call graph for this function:

    + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    LIB_HANDLE LoadCanDriver (char *  driver_name  ) 
    +
    +
    + +

    + +

    +Definition at line 84 of file unix.c. +

    +References canClose(), canOpen(), canReceive(), canSend(), DLSYM, driver_procs::load_canfestival_driver(), and s_driver_procs. +

    +Here is the call graph for this function:

    + + + + + + + + + + +
    +

    + +

    +
    + + + + + + + + + +
    UNS8 UnLoadCanDriver (LIB_HANDLE  handle  ) 
    +
    +
    + +

    + +

    +Definition at line 71 of file unix.c. +

    +

    +


    Generated on Fri Jun 8 08:52:09 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_02957f72a9b951603adb98a142bd447b_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_02957f72a9b951603adb98a142bd447b_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 175,6 257,30 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 167,54 265,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 164,102 268,126 +rect $timers__unix_8c.html#4b2486891ee01e06e2deead4cf963727 136,150 296,174 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_02957f72a9b951603adb98a142bd447b_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_02957f72a9b951603adb98a142bd447b_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +45e124f4900018a87f796fb139298c53 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_02957f72a9b951603adb98a142bd447b_cgraph.png Binary file doc/doxygen/html/win32_2canfestival_8h_02957f72a9b951603adb98a142bd447b_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_7476146ad15948a22e7f80a00c89c40a_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_7476146ad15948a22e7f80a00c89c40a_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,13 @@ +base referer +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 169,100 252,124 +rect $unix_8c.html#45ceca3727c2fb7ac93958a215efb827 145,148 276,172 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 337,198 436,222 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 335,247 439,271 +rect $timers__unix_8c.html#a3a7df911baa20b01c4374a9677a154a 137,298 284,322 +rect $states_8c.html#3f8975650604cc23582f19a43fd4e518 335,102 439,126 +rect $drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd 337,150 436,174 +rect $nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743 489,6 679,30 +rect $lifegrd_8c.html#b3248945e06e8b05518beddf665f174d 499,54 669,78 +rect $pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2 532,102 636,126 +rect $sdo_8c.html#2a93a7c780472b1d8666d89aa270f661 531,150 637,174 +rect $sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1 528,198 640,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_7476146ad15948a22e7f80a00c89c40a_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_7476146ad15948a22e7f80a00c89c40a_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +e323b5ec5bb50c863c5899d4703acf79 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_7476146ad15948a22e7f80a00c89c40a_cgraph.png Binary file doc/doxygen/html/win32_2canfestival_8h_7476146ad15948a22e7f80a00c89c40a_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_8d1909a09c50c750e4d8626595acd9f6_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_8d1909a09c50c750e4d8626595acd9f6_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 148,6 228,30 +rect $timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037 139,54 238,78 +rect $timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b 136,102 240,126 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 290,6 420,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_8d1909a09c50c750e4d8626595acd9f6_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_8d1909a09c50c750e4d8626595acd9f6_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +fa9a2cbc096e55bfc40e9c0a590ac51f \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_8d1909a09c50c750e4d8626595acd9f6_cgraph.png Binary file doc/doxygen/html/win32_2canfestival_8h_8d1909a09c50c750e4d8626595acd9f6_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $lifegrd_8c.html 403,5 504,29 +rect $nmtMaster_8c.html 389,53 517,77 +rect $nmtSlave_8c.html 393,101 513,125 +rect $pdo_8c.html 412,149 495,173 +rect $sdo_8c.html 413,197 493,221 +rect $sync_8c.html 409,245 497,269 +rect $unix_8c.html 380,293 527,317 +rect $drivers__win32_8cpp.html 333,341 573,365 +rect $TestMasterSlave_8h.html 289,389 617,413 +rect $TestMasterSlave_8c.html 721,415 1047,439 +rect $TestMasterMicroMod_8c.html 693,513 1075,537 +rect $TestMasterMicroMod_8h.html 263,539 644,563 +rect $main_8c.html 349,587 557,611 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +02775a7ece0f70c200fd346f876d6364 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h__dep__incl.png Binary file doc/doxygen/html/win32_2canfestival_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,17 @@ +base referer +rect $win32_2timerscfg_8h.html 686,131 784,155 +rect $can__driver_8h.html 262,644 366,668 +rect $data_8h.html 282,400 346,424 +rect $win32_2applicfg_8h.html 691,494 779,518 +rect $can_8h.html 438,644 496,668 +rect $def_8h.html 575,343 631,367 +rect $objdictdef_8h.html 416,107 518,131 +rect $objacces_8h.html 420,448 514,472 +rect $sdo_8h.html 438,155 496,179 +rect $pdo_8h.html 438,400 496,424 +rect $states_8h.html 430,496 504,520 +rect $lifegrd_8h.html 428,544 506,568 +rect $sync_8h.html 434,254 500,278 +rect $nmtMaster_8h.html 414,302 520,326 +rect $config_8h.html 698,343 772,367 +rect $timer_8h.html 568,179 638,203 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +de5dea1ff9a25e54fd5c2081d5a2c888 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h__incl.png Binary file doc/doxygen/html/win32_2canfestival_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,8 @@ +base referer +rect $unix_8c.html#02957f72a9b951603adb98a142bd447b 270,6 352,30 +rect $unix_8c.html#7476146ad15948a22e7f80a00c89c40a 270,54 352,78 +rect $drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd 262,102 360,126 +rect $canOpenDriver_8c.html#b57b4b3c000e9f61135175495e874977 271,150 351,174 +rect $classdriver__procs.html#719fa10d86bcd9b7a1ab7bea3dec1d03 176,198 446,222 +rect $canOpenDriver_8c.html#2f2d1ed55cfd9d7f85883f8d70d318ba 540,150 671,174 +rect $classdriver__procs.html#a1e608bb39ab9183961b7ded9f27d193 494,198 718,222 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2canfestival_8h_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +163d8efcbc89eaecd9ca0d43e2d5af9e \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2canfestival_8h_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.png Binary file doc/doxygen/html/win32_2canfestival_8h_a6eed61fc15f41f772d4645d7a5edeb5_cgraph.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2config_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2config_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,66 @@ + + +CanFestival: include/win32/config.h Source File + + + + + + + +

    config.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack.
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 See COPYING file for copyrights details.
    +00006 
    +00007 This library is free software; you can redistribute it and/or
    +00008 modify it under the terms of the GNU Lesser General Public
    +00009 License as published by the Free Software Foundation; either
    +00010 version 2.1 of the License, or (at your option) any later version.
    +00011 
    +00012 This library is distributed in the hope that it will be useful,
    +00013 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015 Lesser General Public License for more details.
    +00016 
    +00017 You should have received a copy of the GNU Lesser General Public
    +00018 License along with this library; if not, write to the Free Software
    +00019 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00020 */
    +00021 
    +00022 #ifndef _CONFIG_H_
    +00023 #define _CONFIG_H_
    +00024 
    +00025 #define MAX_CAN_BUS_ID 1
    +00026 #define SDO_MAX_LENGTH_TRANSFERT 32
    +00027 #define SDO_MAX_SIMULTANEOUS_TRANSFERTS 4
    +00028 #define NMT_MAX_NODE_ID 128
    +00029 #define SDO_TIMEOUT_MS 3000
    +00030 #define MAX_NB_TIMER 32
    +00031 // CANOPEN_BIG_ENDIAN is not defined
    +00032 
    +00033 #define US_TO_TIMEVAL_FACTOR 1
    +00034 
    +00035 #define REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(repeat)\
    +00036 repeat repeat repeat repeat
    +00037 #define REPEAT_NMT_MAX_NODE_ID_TIMES(repeat)\
    +00038 repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat
    +00039 
    +00040 #endif /* _CONFIG_H_ */
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2config_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2config_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,220 @@ + + +CanFestival: include/win32/config.h File Reference + + + + + + + +

    config.h File Reference

    +

    +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + +

    Defines

    #define MAX_CAN_BUS_ID   1
    #define SDO_MAX_LENGTH_TRANSFERT   32
    #define SDO_MAX_SIMULTANEOUS_TRANSFERTS   4
    #define NMT_MAX_NODE_ID   128
    #define SDO_TIMEOUT_MS   3000
    #define MAX_NB_TIMER   32
    #define US_TO_TIMEVAL_FACTOR   1
    #define REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES(repeat)   repeat repeat repeat repeat
    #define REPEAT_NMT_MAX_NODE_ID_TIMES(repeat)   repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat
    +


    Define Documentation

    + +
    +
    + + + + +
    #define MAX_CAN_BUS_ID   1
    +
    +
    + +

    + +

    +Definition at line 25 of file config.h. +

    +

    + +

    +
    + + + + +
    #define MAX_NB_TIMER   32
    +
    +
    + +

    + +

    +Definition at line 30 of file config.h. +

    +

    + +

    +
    + + + + +
    #define NMT_MAX_NODE_ID   128
    +
    +
    + +

    + +

    +Definition at line 28 of file config.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define REPEAT_NMT_MAX_NODE_ID_TIMES (repeat   )    repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat repeat
    +
    +
    + +

    + +

    +Definition at line 37 of file config.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERTS_TIMES (repeat   )    repeat repeat repeat repeat
    +
    +
    + +

    + +

    +Definition at line 35 of file config.h. +

    +

    + +

    +
    + + + + +
    #define SDO_MAX_LENGTH_TRANSFERT   32
    +
    +
    + +

    + +

    +Definition at line 26 of file config.h. +

    +

    + +

    +
    + + + + +
    #define SDO_MAX_SIMULTANEOUS_TRANSFERTS   4
    +
    +
    + +

    + +

    +Definition at line 27 of file config.h. +

    +

    + +

    +
    + + + + +
    #define SDO_TIMEOUT_MS   3000
    +
    +
    + +

    + +

    +Definition at line 29 of file config.h. +

    +

    + +

    +
    + + + + +
    #define US_TO_TIMEVAL_FACTOR   1
    +
    +
    + +

    + +

    +Definition at line 33 of file config.h. +

    +

    +


    Generated on Fri Jun 8 08:51:55 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2config_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2config_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,2 @@ +base referer +rect $can__socket_8c.html 231,6 468,30 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2config_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2config_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +a10c5e53407a32762cff4e4f6898006d \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2config_8h__dep__incl.png Binary file doc/doxygen/html/win32_2config_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2timerscfg_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,64 @@ + + +CanFestival: include/win32/timerscfg.h Source File + + + + + + + +

    timerscfg.h

    Go to the documentation of this file.
    00001 /*
    +00002 This file is part of CanFestival, a library implementing CanOpen Stack.
    +00003 
    +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
    +00005 Win32 port by Leonid Tochinski
    +00006 
    +00007 See COPYING file for copyrights details.
    +00008 
    +00009 This library is free software; you can redistribute it and/or
    +00010 modify it under the terms of the GNU Lesser General Public
    +00011 License as published by the Free Software Foundation; either
    +00012 version 2.1 of the License, or (at your option) any later version.
    +00013 
    +00014 This library is distributed in the hope that it will be useful,
    +00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00017 Lesser General Public License for more details.
    +00018 
    +00019 You should have received a copy of the GNU Lesser General Public
    +00020 License along with this library; if not, write to the Free Software
    +00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +00022 */
    +00023 
    +00024 #ifndef __TIMERSCFG_H__
    +00025 #define __TIMERSCFG_H__
    +00026 
    +00027 #include <windows.h>
    +00028 
    +00029 // Time unit : us
    +00030 // Time resolution : 64bit (~584942 years)
    +00031 #define TIMEVAL unsigned long long
    +00032 #define TIMEVAL_MAX ~(TIMEVAL)0
    +00033 #define MS_TO_TIMEVAL(ms) ms*1000
    +00034 #define US_TO_TIMEVAL(us) us
    +00035 
    +00036 #define TASK_HANDLE HANDLE
    +00037 
    +00038 #endif
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2timerscfg_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,151 @@ + + +CanFestival: include/win32/timerscfg.h File Reference + + + + + + + +

    timerscfg.h File Reference

    #include <windows.h>
    + +

    +Include dependency graph for timerscfg.h:

    + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + +

    Defines

    #define TIMEVAL   unsigned long long
    #define TIMEVAL_MAX   ~(TIMEVAL)0
    #define MS_TO_TIMEVAL(ms)   ms*1000
    #define US_TO_TIMEVAL(us)   us
    #define TASK_HANDLE   HANDLE
    +


    Define Documentation

    + +
    +
    + + + + + + + + + +
    #define MS_TO_TIMEVAL (ms   )    ms*1000
    +
    +
    + +

    + +

    +Definition at line 33 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TASK_HANDLE   HANDLE
    +
    +
    + +

    + +

    +Definition at line 36 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TIMEVAL   unsigned long long
    +
    +
    + +

    + +

    +Definition at line 31 of file timerscfg.h. +

    +

    + +

    +
    + + + + +
    #define TIMEVAL_MAX   ~(TIMEVAL)0
    +
    +
    + +

    + +

    +Definition at line 32 of file timerscfg.h. +

    +

    + +

    +
    + + + + + + + + + +
    #define US_TO_TIMEVAL (us   )    us
    +
    +
    + +

    + +

    +Definition at line 34 of file timerscfg.h. +

    +

    +


    Generated on Fri Jun 8 08:52:08 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2timerscfg_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,5 @@ +base referer +rect $timer_8h.html 293,5 416,29 +rect $timers__driver_8h.html 508,55 684,79 +rect $unix_2canfestival_8h.html 735,80 929,104 +rect $win32_2canfestival_8h.html 251,155 459,179 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2timerscfg_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +278e432147f9d9b7028a00b69adb3dd2 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h__dep__incl.png Binary file doc/doxygen/html/win32_2timerscfg_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2timerscfg_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +base referer diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32_2timerscfg_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +463f014c4150659e212885c901c5d171 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32_2timerscfg_8h__incl.png Binary file doc/doxygen/html/win32_2timerscfg_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8c-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,185 @@ + + +CanFestival: examples/win32test/win32test.c Source File + + + + + + + +

    win32test.c

    Go to the documentation of this file.
    00001 
    +00002 /* File generated by gen_cfile.py. Should not be modified. */
    +00003 
    +00004 #include "win32test.h"
    +00005 
    +00006 /**************************************************************************/
    +00007 /* Declaration of the mapped variables                                    */
    +00008 /**************************************************************************/
    +00009 
    +00010 /**************************************************************************/
    +00011 /* Declaration of the value range types                                   */
    +00012 /**************************************************************************/
    +00013 
    +00014 UNS32 win32test_valueRangeTest (UNS8 typeValue, void * value)
    +00015 {
    +00016   switch (typeValue) {
    +00017   }
    +00018   return 0;
    +00019 }
    +00020 
    +00021 /**************************************************************************/
    +00022 /* The node id                                                            */
    +00023 /**************************************************************************/
    +00024 /* node_id default value.*/
    +00025 UNS8 win32test_bDeviceNodeId = 0x01;
    +00026 
    +00027 /**************************************************************************/
    +00028 /* Array of message processing information */
    +00029 
    +00030 const UNS8 win32test_iam_a_slave = 0;
    +00031 
    +00032 TIMER_HANDLE win32test_heartBeatTimers[1];
    +00033 
    +00034 /*
    +00035 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    +00036 
    +00037                                OBJECT DICTIONARY
    +00038 
    +00039 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    +00040 */
    +00041 
    +00042 /* index 0x1000 :   Device Type. */
    +00043                     UNS32 win32test_obj1000 = 0x12D;    /* 301 */
    +00044                     subindex win32test_Index1000[] = 
    +00045                      {
    +00046                        { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1000 }
    +00047                      };
    +00048 
    +00049 /* index 0x1001 :   Error Register. */
    +00050                     UNS8 win32test_obj1001 = 0x0;       /* 0 */
    +00051                     subindex win32test_Index1001[] = 
    +00052                      {
    +00053                        { RO, uint8, sizeof (UNS8), (void*)&win32test_obj1001 }
    +00054                      };
    +00055 
    +00056 /* index 0x1005 :   SYNC COB ID. */
    +00057                     UNS32 win32test_obj1005 = 0x0;      /* 0 */
    +00058                     ODCallback_t win32test_Index1005_callbacks[] = 
    +00059                      {
    +00060                        NULL,
    +00061                      };
    +00062                     subindex win32test_Index1005[] = 
    +00063                      {
    +00064                        { RW, uint32, sizeof (UNS32), (void*)&win32test_obj1005 }
    +00065                      };
    +00066 
    +00067 /* index 0x1006 :   Communication / Cycle Period */
    +00068                     UNS32 win32test_obj1006 = 0x0;   /* 0 */
    +00069 
    +00070 /* index 0x1016 :   Consumer Heartbeat Time */
    +00071                     UNS8 win32test_highestSubIndex_obj1016 = 0;
    +00072                     UNS32 win32test_obj1016[]={0};
    +00073 
    +00074 /* index 0x1017 :   Producer Heartbeat Time */ 
    +00075                     UNS16 win32test_obj1017 = 0x0;   /* 0 */
    +00076 
    +00077 /* index 0x1018 :   Identity. */
    +00078                     UNS8 win32test_highestSubIndex_obj1018 = 4; /* number of subindex - 1*/
    +00079                     UNS32 win32test_obj1018_Vendor_ID = 0x0;    /* 0 */
    +00080                     UNS32 win32test_obj1018_Product_Code = 0x0; /* 0 */
    +00081                     UNS32 win32test_obj1018_Revision_Number = 0x0;      /* 0 */
    +00082                     UNS32 win32test_obj1018_Serial_Number = 0x0;        /* 0 */
    +00083                     subindex win32test_Index1018[] = 
    +00084                      {
    +00085                        { RO, uint8, sizeof (UNS8), (void*)&win32test_highestSubIndex_obj1018 },
    +00086                        { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Vendor_ID },
    +00087                        { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Product_Code },
    +00088                        { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Revision_Number },
    +00089                        { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Serial_Number }
    +00090                      };
    +00091 
    +00092 /* index 0x1280 :   Client SDO 1 Parameter. */
    +00093                     UNS8 win32test_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
    +00094                     UNS32 win32test_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x0; /* 0 */
    +00095                     UNS32 win32test_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x0;  /* 0 */
    +00096                     UNS32 win32test_obj1280_Node_ID_of_the_SDO_Server = 0x0;    /* 0 */
    +00097                     subindex win32test_Index1280[] = 
    +00098                      {
    +00099                        { RO, uint8, sizeof (UNS8), (void*)&win32test_highestSubIndex_obj1280 },
    +00100                        { RW, uint32, sizeof (UNS32), (void*)&win32test_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
    +00101                        { RW, uint32, sizeof (UNS32), (void*)&win32test_obj1280_COB_ID_Server_to_Client_Receive_SDO },
    +00102                        { RW, uint32, sizeof (UNS32), (void*)&win32test_obj1280_Node_ID_of_the_SDO_Server }
    +00103                      };
    +00104 
    +00105 const indextable win32test_objdict[] = 
    +00106 {
    +00107   { (subindex*)win32test_Index1000,sizeof(win32test_Index1000)/sizeof(win32test_Index1000[0]), 0x1000},
    +00108   { (subindex*)win32test_Index1001,sizeof(win32test_Index1001)/sizeof(win32test_Index1001[0]), 0x1001},
    +00109   { (subindex*)win32test_Index1005,sizeof(win32test_Index1005)/sizeof(win32test_Index1005[0]), 0x1005},
    +00110   { (subindex*)win32test_Index1018,sizeof(win32test_Index1018)/sizeof(win32test_Index1018[0]), 0x1018},
    +00111   { (subindex*)win32test_Index1280,sizeof(win32test_Index1280)/sizeof(win32test_Index1280[0]), 0x1280},
    +00112 };
    +00113 
    +00114 const indextable * win32test_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
    +00115 {
    +00116         int i;
    +00117         *callbacks = NULL;
    +00118         switch(wIndex){
    +00119                 case 0x1000: i = 0;break;
    +00120                 case 0x1001: i = 1;break;
    +00121                 case 0x1005: i = 2;*callbacks = win32test_Index1005_callbacks; break;
    +00122                 case 0x1018: i = 3;break;
    +00123                 case 0x1280: i = 4;break;
    +00124                 default:
    +00125                         *errorCode = OD_NO_SUCH_OBJECT;
    +00126                         return NULL;
    +00127         }
    +00128         *errorCode = OD_SUCCESSFUL;
    +00129         return &win32test_objdict[i];
    +00130 }
    +00131 
    +00132 /* To count at which received SYNC a PDO must be sent.
    +00133  * Even if no pdoTransmit are defined, at least one entry is computed
    +00134  * for compilations issues.
    +00135  */
    +00136 UNS8 win32test_count_sync[1] = {0,};
    +00137 
    +00138 quick_index win32test_firstIndex = {
    +00139   0, /* SDO_SVR */
    +00140   4, /* SDO_CLT */
    +00141   0, /* PDO_RCV */
    +00142   0, /* PDO_RCV_MAP */
    +00143   0, /* PDO_TRS */
    +00144   0 /* PDO_TRS_MAP */
    +00145 };
    +00146 
    +00147 quick_index win32test_lastIndex = {
    +00148   0, /* SDO_SVR */
    +00149   4, /* SDO_CLT */
    +00150   0, /* PDO_RCV */
    +00151   0, /* PDO_RCV_MAP */
    +00152   0, /* PDO_TRS */
    +00153   0 /* PDO_TRS_MAP */
    +00154 };
    +00155 
    +00156 UNS16 win32test_ObjdictSize = sizeof(win32test_objdict)/sizeof(win32test_objdict[0]); 
    +00157 
    +00158 CO_Data win32test_Data = CANOPEN_NODE_DATA_INITIALIZER(win32test);
    +00159 
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8c.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,778 @@ + + +CanFestival: examples/win32test/win32test.c File Reference + + + + + + + +

    win32test.c File Reference

    #include "win32test.h"
    + +

    +Include dependency graph for win32test.c:

    + + + + + + + + + + + + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    UNS32 win32test_valueRangeTest (UNS8 typeValue, void *value)
    const indextablewin32test_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)

    Variables

    UNS8 win32test_bDeviceNodeId = 0x01
    const UNS8 win32test_iam_a_slave = 0
    TIMER_HANDLE win32test_heartBeatTimers [1]
    UNS32 win32test_obj1000 = 0x12D
    subindex win32test_Index1000 []
    UNS8 win32test_obj1001 = 0x0
    subindex win32test_Index1001 []
    UNS32 win32test_obj1005 = 0x0
    ODCallback_t win32test_Index1005_callbacks []
    subindex win32test_Index1005 []
    UNS32 win32test_obj1006 = 0x0
    UNS8 win32test_highestSubIndex_obj1016 = 0
    UNS32 win32test_obj1016 [] = {0}
    UNS16 win32test_obj1017 = 0x0
    UNS8 win32test_highestSubIndex_obj1018 = 4
    UNS32 win32test_obj1018_Vendor_ID = 0x0
    UNS32 win32test_obj1018_Product_Code = 0x0
    UNS32 win32test_obj1018_Revision_Number = 0x0
    UNS32 win32test_obj1018_Serial_Number = 0x0
    subindex win32test_Index1018 []
    UNS8 win32test_highestSubIndex_obj1280 = 3
    UNS32 win32test_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x0
    UNS32 win32test_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x0
    UNS32 win32test_obj1280_Node_ID_of_the_SDO_Server = 0x0
    subindex win32test_Index1280 []
    const indextable win32test_objdict []
    UNS8 win32test_count_sync [1] = {0,}
    quick_index win32test_firstIndex
    quick_index win32test_lastIndex
    UNS16 win32test_ObjdictSize = sizeof(win32test_objdict)/sizeof(win32test_objdict[0])
    CO_Data win32test_Data = CANOPEN_NODE_DATA_INITIALIZER(win32test)
    +


    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    const indextable* win32test_scanIndexOD (UNS16  wIndex,
    UNS32 *  errorCode,
    ODCallback_t **  callbacks 
    )
    +
    +
    + +

    + +

    +Definition at line 114 of file win32test.c. +

    +References OD_NO_SUCH_OBJECT, OD_SUCCESSFUL, win32test_Index1005_callbacks, and win32test_objdict. +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS32 win32test_valueRangeTest (UNS8  typeValue,
    void *  value 
    )
    +
    +
    + +

    + +

    +Definition at line 14 of file win32test.c. +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    UNS8 win32test_bDeviceNodeId = 0x01
    +
    +
    + +

    + +

    +Definition at line 25 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS8 win32test_count_sync[1] = {0,}
    +
    +
    + +

    + +

    +Definition at line 136 of file win32test.c. +

    +

    + +

    +
    + + + + +
    CO_Data win32test_Data = CANOPEN_NODE_DATA_INITIALIZER(win32test)
    +
    +
    + +

    + +

    +Definition at line 158 of file win32test.c. +

    +Referenced by GetChangeStateResults(), main(), and ReadSDO(). +

    +

    + +

    + +
    + +

    +Initial value:

     {
    +  0, 
    +  4, 
    +  0, 
    +  0, 
    +  0, 
    +  0 
    +}
    +
    +

    +Definition at line 138 of file win32test.c. +

    +

    + +

    +
    + + + + +
    TIMER_HANDLE win32test_heartBeatTimers[1]
    +
    +
    + +

    + +

    +Definition at line 32 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS8 win32test_highestSubIndex_obj1016 = 0
    +
    +
    + +

    + +

    +Definition at line 71 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS8 win32test_highestSubIndex_obj1018 = 4
    +
    +
    + +

    + +

    +Definition at line 78 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS8 win32test_highestSubIndex_obj1280 = 3
    +
    +
    + +

    + +

    +Definition at line 93 of file win32test.c. +

    +

    + +

    +
    + + + + +
    const UNS8 win32test_iam_a_slave = 0
    +
    +
    + +

    + +

    +Definition at line 30 of file win32test.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1000 }
    +                     }
    +
    +

    +Definition at line 44 of file win32test.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, uint8, sizeof (UNS8), (void*)&win32test_obj1001 }
    +                     }
    +
    +

    +Definition at line 51 of file win32test.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RW, uint32, sizeof (UNS32), (void*)&win32test_obj1005 }
    +                     }
    +
    +

    +Definition at line 62 of file win32test.c. +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       NULL,
    +                     }
    +
    +

    +Definition at line 58 of file win32test.c. +

    +Referenced by win32test_scanIndexOD(). +

    +

    + +

    + +
    + +

    +Initial value:

     
    +                     {
    +                       { RO, uint8, sizeof (UNS8), (void*)&win32test_highestSubIndex_obj1018 },
    +                       { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Vendor_ID },
    +                       { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Product_Code },
    +                       { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Revision_Number },
    +                       { RO, uint32, sizeof (UNS32), (void*)&win32test_obj1018_Serial_Number }
    +                     }
    +
    +

    +Definition at line 83 of file win32test.c. +

    +

    + +

    + +
    + +

    +Initial value:

    +

    +Definition at line 97 of file win32test.c. +

    +

    + +

    + +
    + +

    +Initial value:

     {
    +  0, 
    +  4, 
    +  0, 
    +  0, 
    +  0, 
    +  0 
    +}
    +
    +

    +Definition at line 147 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1000 = 0x12D
    +
    +
    + +

    + +

    +Definition at line 43 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS8 win32test_obj1001 = 0x0
    +
    +
    + +

    + +

    +Definition at line 50 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1005 = 0x0
    +
    +
    + +

    + +

    +Definition at line 57 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1006 = 0x0
    +
    +
    + +

    + +

    +Definition at line 68 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1016[] = {0}
    +
    +
    + +

    + +

    +Definition at line 72 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS16 win32test_obj1017 = 0x0
    +
    +
    + +

    + +

    +Definition at line 75 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1018_Product_Code = 0x0
    +
    +
    + +

    + +

    +Definition at line 80 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1018_Revision_Number = 0x0
    +
    +
    + +

    + +

    +Definition at line 81 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1018_Serial_Number = 0x0
    +
    +
    + +

    + +

    +Definition at line 82 of file win32test.c. +

    +

    + +

    +
    + + + + +
    UNS32 win32test_obj1018_Vendor_ID = 0x0
    +
    +
    + +

    + +

    +Definition at line 79 of file win32test.c. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 94 of file win32test.c. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 95 of file win32test.c. +

    +

    + +

    + +
    + +

    + +

    +Definition at line 96 of file win32test.c. +

    +

    + +

    +
    + + + + +
    const indextable win32test_objdict[]
    +
    +
    + +

    +Initial value:

     
    +{
    +  { (subindex*)win32test_Index1000,sizeof(win32test_Index1000)/sizeof(win32test_Index1000[0]), 0x1000},
    +  { (subindex*)win32test_Index1001,sizeof(win32test_Index1001)/sizeof(win32test_Index1001[0]), 0x1001},
    +  { (subindex*)win32test_Index1005,sizeof(win32test_Index1005)/sizeof(win32test_Index1005[0]), 0x1005},
    +  { (subindex*)win32test_Index1018,sizeof(win32test_Index1018)/sizeof(win32test_Index1018[0]), 0x1018},
    +  { (subindex*)win32test_Index1280,sizeof(win32test_Index1280)/sizeof(win32test_Index1280[0]), 0x1280},
    +}
    +
    +

    +Definition at line 105 of file win32test.c. +

    +Referenced by win32test_scanIndexOD(). +

    +

    + +

    +
    + + + + +
    UNS16 win32test_ObjdictSize = sizeof(win32test_objdict)/sizeof(win32test_objdict[0])
    +
    +
    + +

    + +

    +Definition at line 156 of file win32test.c. +

    +

    +


    Generated on Fri Jun 8 08:51:54 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8c__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8c__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,14 @@ +base referer +rect $win32test_8h.html 293,299 395,323 +rect $data_8h.html 444,299 508,323 +rect $win32_2applicfg_8h.html 713,251 801,275 +rect $def_8h.html 729,32 785,56 +rect $can_8h.html 581,203 640,227 +rect $objdictdef_8h.html 560,155 661,179 +rect $objacces_8h.html 564,299 657,323 +rect $sdo_8h.html 581,251 640,275 +rect $pdo_8h.html 581,56 640,80 +rect $states_8h.html 573,395 648,419 +rect $lifegrd_8h.html 572,347 649,371 +rect $sync_8h.html 577,443 644,467 +rect $nmtMaster_8h.html 557,491 664,515 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8c__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8c__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +19a6955f2f8a106795abe25b8d0a753c \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8c__incl.png Binary file doc/doxygen/html/win32test_8c__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,51 @@ + + +CanFestival: examples/win32test/win32test.h Source File + + + + + + + +

    win32test.h

    Go to the documentation of this file.
    00001 
    +00002 /* File generated by gen_cfile.py. Should not be modified. */
    +00003 
    +00004 #include "data.h"
    +00005 
    +00006 /* Prototypes of function provided by object dictionnary */
    +00007 UNS32 win32test_valueRangeTest (UNS8 typeValue, void * value);
    +00008 const indextable * win32test_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks);
    +00009 
    +00010 /* prototypes of function to be filled by app. */
    +00011 void win32test_heartbeatError(UNS8);
    +00012 
    +00013 UNS8 win32test_canSend(Message *);
    +00014 
    +00015 void win32test_initialisation(void);
    +00016 void win32test_preOperational(void);
    +00017 void win32test_operational(void);
    +00018 void win32test_stopped(void);
    +00019 
    +00020 void win32test_post_sync(void);
    +00021 void win32test_post_TPDO(void);
    +00022 
    +00023 /* Master node data struct */
    +00024 extern CO_Data win32test_Data;
    +00025 
    +

    Generated on Fri Jun 8 08:51:39 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8h.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,334 @@ + + +CanFestival: examples/win32test/win32test.h File Reference + + + + + + + +

    win32test.h File Reference

    #include "data.h"
    + +

    +Include dependency graph for win32test.h:

    + + + + + + + + + + + + + + + + + + +

    +This graph shows which files directly or indirectly include this file:

    + + + + + +

    +Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    UNS32 win32test_valueRangeTest (UNS8 typeValue, void *value)
    const indextablewin32test_scanIndexOD (UNS16 wIndex, UNS32 *errorCode, ODCallback_t **callbacks)
    void win32test_heartbeatError (UNS8)
    UNS8 win32test_canSend (Message *)
    void win32test_initialisation (void)
    void win32test_preOperational (void)
    void win32test_operational (void)
    void win32test_stopped (void)
    void win32test_post_sync (void)
    void win32test_post_TPDO (void)

    Variables

    CO_Data win32test_Data
    +


    Function Documentation

    + +
    +
    + + + + + + + + + +
    UNS8 win32test_canSend (Message  ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_heartbeatError (UNS8   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_initialisation (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_operational (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_post_sync (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_post_TPDO (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_preOperational (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    const indextable* win32test_scanIndexOD (UNS16  wIndex,
    UNS32 *  errorCode,
    ODCallback_t **  callbacks 
    )
    +
    +
    + +

    + +

    +Definition at line 114 of file win32test.c. +

    +References OD_NO_SUCH_OBJECT, OD_SUCCESSFUL, win32test_Index1005_callbacks, and win32test_objdict. +

    +

    + +

    +
    + + + + + + + + + +
    void win32test_stopped (void   ) 
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + +
    UNS32 win32test_valueRangeTest (UNS8  typeValue,
    void *  value 
    )
    +
    +
    + +

    + +

    +Definition at line 14 of file win32test.c. +

    +

    +


    Variable Documentation

    + +
    +
    + + + + +
    CO_Data win32test_Data
    +
    +
    + +

    + +

    +Definition at line 158 of file win32test.c. +

    +Referenced by GetChangeStateResults(), main(), and ReadSDO(). +

    +

    +


    Generated on Fri Jun 8 08:51:54 2007 for CanFestival by  + +doxygen 1.5.1
    + + diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h__dep__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8h__dep__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,3 @@ +base referer +rect $main_8c.html 312,6 520,30 +rect $win32test_8c.html 296,54 536,78 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h__dep__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8h__dep__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +55b171e29a0f51d1104b14e995471a66 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h__dep__incl.png Binary file doc/doxygen/html/win32test_8h__dep__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h__incl.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8h__incl.map Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,16 @@ +base referer +rect $data_8h.html 297,301 361,325 +rect $win32_2applicfg_8h.html 688,276 776,300 +rect $def_8h.html 572,13 628,37 +rect $can_8h.html 571,251 629,275 +rect $objdictdef_8h.html 413,152 515,176 +rect $objacces_8h.html 417,349 511,373 +rect $sdo_8h.html 435,397 493,421 +rect $pdo_8h.html 435,56 493,80 +rect $states_8h.html 427,104 501,128 +rect $lifegrd_8h.html 425,301 503,325 +rect $sync_8h.html 431,445 497,469 +rect $nmtMaster_8h.html 411,493 517,517 +rect $config_8h.html 695,13 769,37 +rect $timer_8h.html 565,400 635,424 +rect $win32_2timerscfg_8h.html 683,368 781,392 diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h__incl.md5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/win32test_8h__incl.md5 Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,1 @@ +8d4349bfc8e889f8bacc0731853d8257 \ No newline at end of file diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/win32test_8h__incl.png Binary file doc/doxygen/html/win32test_8h__incl.png has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/index.html --- a/doc/manual/en/html/index.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/index.html Fri Jun 08 09:23:56 2007 +0200 @@ -342,7 +342,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/manual.html --- a/doc/manual/en/html/manual.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/manual.html Fri Jun 08 09:23:56 2007 +0200 @@ -342,7 +342,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node1.html --- a/doc/manual/en/html/node1.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node1.html Fri Jun 08 09:23:56 2007 +0200 @@ -175,7 +175,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node10.html --- a/doc/manual/en/html/node10.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node10.html Fri Jun 08 09:23:56 2007 +0200 @@ -82,7 +82,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node100.html --- a/doc/manual/en/html/node100.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node100.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node101.html --- a/doc/manual/en/html/node101.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node101.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node102.html --- a/doc/manual/en/html/node102.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node102.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node103.html --- a/doc/manual/en/html/node103.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node103.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node104.html --- a/doc/manual/en/html/node104.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node104.html Fri Jun 08 09:23:56 2007 +0200 @@ -64,7 +64,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node105.html --- a/doc/manual/en/html/node105.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node105.html Fri Jun 08 09:23:56 2007 +0200 @@ -77,7 +77,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node106.html --- a/doc/manual/en/html/node106.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node106.html Fri Jun 08 09:23:56 2007 +0200 @@ -156,7 +156,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node107.html --- a/doc/manual/en/html/node107.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node107.html Fri Jun 08 09:23:56 2007 +0200 @@ -70,7 +70,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node108.html --- a/doc/manual/en/html/node108.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node108.html Fri Jun 08 09:23:56 2007 +0200 @@ -75,7 +75,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node109.html --- a/doc/manual/en/html/node109.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node109.html Fri Jun 08 09:23:56 2007 +0200 @@ -126,7 +126,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node11.html --- a/doc/manual/en/html/node11.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node11.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node110.html --- a/doc/manual/en/html/node110.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node110.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,11 +68,11 @@ The command line arguments were:
    latex2html -dir html manual.tex

    -The translation was initiated by epimerde on 2007-06-06 +The translation was initiated by epimerde on 2007-06-08


    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node12.html --- a/doc/manual/en/html/node12.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node12.html Fri Jun 08 09:23:56 2007 +0200 @@ -74,7 +74,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node13.html --- a/doc/manual/en/html/node13.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node13.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node14.html --- a/doc/manual/en/html/node14.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node14.html Fri Jun 08 09:23:56 2007 +0200 @@ -70,7 +70,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node15.html --- a/doc/manual/en/html/node15.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node15.html Fri Jun 08 09:23:56 2007 +0200 @@ -76,7 +76,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node16.html --- a/doc/manual/en/html/node16.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node16.html Fri Jun 08 09:23:56 2007 +0200 @@ -77,7 +77,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node17.html --- a/doc/manual/en/html/node17.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node17.html Fri Jun 08 09:23:56 2007 +0200 @@ -129,7 +129,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node18.html --- a/doc/manual/en/html/node18.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node18.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node19.html --- a/doc/manual/en/html/node19.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node19.html Fri Jun 08 09:23:56 2007 +0200 @@ -95,7 +95,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node2.html --- a/doc/manual/en/html/node2.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node2.html Fri Jun 08 09:23:56 2007 +0200 @@ -77,7 +77,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node20.html --- a/doc/manual/en/html/node20.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node20.html Fri Jun 08 09:23:56 2007 +0200 @@ -138,7 +138,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node21.html --- a/doc/manual/en/html/node21.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node21.html Fri Jun 08 09:23:56 2007 +0200 @@ -95,7 +95,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node22.html --- a/doc/manual/en/html/node22.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node22.html Fri Jun 08 09:23:56 2007 +0200 @@ -100,7 +100,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node23.html --- a/doc/manual/en/html/node23.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node23.html Fri Jun 08 09:23:56 2007 +0200 @@ -79,7 +79,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node24.html --- a/doc/manual/en/html/node24.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node24.html Fri Jun 08 09:23:56 2007 +0200 @@ -79,7 +79,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node25.html --- a/doc/manual/en/html/node25.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node25.html Fri Jun 08 09:23:56 2007 +0200 @@ -79,7 +79,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node26.html --- a/doc/manual/en/html/node26.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node26.html Fri Jun 08 09:23:56 2007 +0200 @@ -77,7 +77,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node27.html --- a/doc/manual/en/html/node27.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node27.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,7 +68,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node28.html --- a/doc/manual/en/html/node28.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node28.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,7 +68,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node29.html --- a/doc/manual/en/html/node29.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node29.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node3.html --- a/doc/manual/en/html/node3.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node3.html Fri Jun 08 09:23:56 2007 +0200 @@ -74,7 +74,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node30.html --- a/doc/manual/en/html/node30.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node30.html Fri Jun 08 09:23:56 2007 +0200 @@ -81,7 +81,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node31.html --- a/doc/manual/en/html/node31.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node31.html Fri Jun 08 09:23:56 2007 +0200 @@ -105,7 +105,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node32.html --- a/doc/manual/en/html/node32.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node32.html Fri Jun 08 09:23:56 2007 +0200 @@ -67,7 +67,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node33.html --- a/doc/manual/en/html/node33.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node33.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node34.html --- a/doc/manual/en/html/node34.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node34.html Fri Jun 08 09:23:56 2007 +0200 @@ -91,7 +91,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node35.html --- a/doc/manual/en/html/node35.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node35.html Fri Jun 08 09:23:56 2007 +0200 @@ -72,7 +72,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node36.html --- a/doc/manual/en/html/node36.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node36.html Fri Jun 08 09:23:56 2007 +0200 @@ -125,7 +125,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node37.html --- a/doc/manual/en/html/node37.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node37.html Fri Jun 08 09:23:56 2007 +0200 @@ -112,7 +112,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node38.html --- a/doc/manual/en/html/node38.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node38.html Fri Jun 08 09:23:56 2007 +0200 @@ -81,7 +81,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node39.html --- a/doc/manual/en/html/node39.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node39.html Fri Jun 08 09:23:56 2007 +0200 @@ -72,7 +72,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node4.html --- a/doc/manual/en/html/node4.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node4.html Fri Jun 08 09:23:56 2007 +0200 @@ -90,7 +90,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node40.html --- a/doc/manual/en/html/node40.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node40.html Fri Jun 08 09:23:56 2007 +0200 @@ -69,7 +69,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node41.html --- a/doc/manual/en/html/node41.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node41.html Fri Jun 08 09:23:56 2007 +0200 @@ -79,7 +79,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node42.html --- a/doc/manual/en/html/node42.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node42.html Fri Jun 08 09:23:56 2007 +0200 @@ -67,7 +67,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node43.html --- a/doc/manual/en/html/node43.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node43.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,7 +68,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node44.html --- a/doc/manual/en/html/node44.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node44.html Fri Jun 08 09:23:56 2007 +0200 @@ -126,7 +126,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node45.html --- a/doc/manual/en/html/node45.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node45.html Fri Jun 08 09:23:56 2007 +0200 @@ -80,7 +80,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node46.html --- a/doc/manual/en/html/node46.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node46.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node47.html --- a/doc/manual/en/html/node47.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node47.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,7 +68,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node48.html --- a/doc/manual/en/html/node48.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node48.html Fri Jun 08 09:23:56 2007 +0200 @@ -67,7 +67,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node49.html --- a/doc/manual/en/html/node49.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node49.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,7 +68,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node5.html --- a/doc/manual/en/html/node5.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node5.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node50.html --- a/doc/manual/en/html/node50.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node50.html Fri Jun 08 09:23:56 2007 +0200 @@ -66,7 +66,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node51.html --- a/doc/manual/en/html/node51.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node51.html Fri Jun 08 09:23:56 2007 +0200 @@ -64,7 +64,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node52.html --- a/doc/manual/en/html/node52.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node52.html Fri Jun 08 09:23:56 2007 +0200 @@ -79,7 +79,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node53.html --- a/doc/manual/en/html/node53.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node53.html Fri Jun 08 09:23:56 2007 +0200 @@ -636,7 +636,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node54.html --- a/doc/manual/en/html/node54.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node54.html Fri Jun 08 09:23:56 2007 +0200 @@ -71,7 +71,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node55.html --- a/doc/manual/en/html/node55.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node55.html Fri Jun 08 09:23:56 2007 +0200 @@ -672,7 +672,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node56.html --- a/doc/manual/en/html/node56.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node56.html Fri Jun 08 09:23:56 2007 +0200 @@ -112,7 +112,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node57.html --- a/doc/manual/en/html/node57.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node57.html Fri Jun 08 09:23:56 2007 +0200 @@ -93,7 +93,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node58.html --- a/doc/manual/en/html/node58.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node58.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node59.html --- a/doc/manual/en/html/node59.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node59.html Fri Jun 08 09:23:56 2007 +0200 @@ -96,7 +96,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node6.html --- a/doc/manual/en/html/node6.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node6.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node60.html --- a/doc/manual/en/html/node60.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node60.html Fri Jun 08 09:23:56 2007 +0200 @@ -76,7 +76,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node61.html --- a/doc/manual/en/html/node61.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node61.html Fri Jun 08 09:23:56 2007 +0200 @@ -106,7 +106,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node62.html --- a/doc/manual/en/html/node62.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node62.html Fri Jun 08 09:23:56 2007 +0200 @@ -75,7 +75,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node63.html --- a/doc/manual/en/html/node63.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node63.html Fri Jun 08 09:23:56 2007 +0200 @@ -74,7 +74,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node64.html --- a/doc/manual/en/html/node64.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node64.html Fri Jun 08 09:23:56 2007 +0200 @@ -84,7 +84,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node65.html --- a/doc/manual/en/html/node65.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node65.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node66.html --- a/doc/manual/en/html/node66.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node66.html Fri Jun 08 09:23:56 2007 +0200 @@ -74,7 +74,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node67.html --- a/doc/manual/en/html/node67.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node67.html Fri Jun 08 09:23:56 2007 +0200 @@ -87,7 +87,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node68.html --- a/doc/manual/en/html/node68.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node68.html Fri Jun 08 09:23:56 2007 +0200 @@ -76,7 +76,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node69.html --- a/doc/manual/en/html/node69.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node69.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node7.html --- a/doc/manual/en/html/node7.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node7.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node70.html --- a/doc/manual/en/html/node70.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node70.html Fri Jun 08 09:23:56 2007 +0200 @@ -66,7 +66,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node71.html --- a/doc/manual/en/html/node71.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node71.html Fri Jun 08 09:23:56 2007 +0200 @@ -137,7 +137,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node72.html --- a/doc/manual/en/html/node72.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node72.html Fri Jun 08 09:23:56 2007 +0200 @@ -75,7 +75,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node73.html --- a/doc/manual/en/html/node73.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node73.html Fri Jun 08 09:23:56 2007 +0200 @@ -70,7 +70,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node74.html --- a/doc/manual/en/html/node74.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node74.html Fri Jun 08 09:23:56 2007 +0200 @@ -78,7 +78,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node75.html --- a/doc/manual/en/html/node75.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node75.html Fri Jun 08 09:23:56 2007 +0200 @@ -70,7 +70,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node76.html --- a/doc/manual/en/html/node76.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node76.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node77.html --- a/doc/manual/en/html/node77.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node77.html Fri Jun 08 09:23:56 2007 +0200 @@ -66,7 +66,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node78.html --- a/doc/manual/en/html/node78.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node78.html Fri Jun 08 09:23:56 2007 +0200 @@ -72,7 +72,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node79.html --- a/doc/manual/en/html/node79.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node79.html Fri Jun 08 09:23:56 2007 +0200 @@ -100,7 +100,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node8.html --- a/doc/manual/en/html/node8.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node8.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node80.html --- a/doc/manual/en/html/node80.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node80.html Fri Jun 08 09:23:56 2007 +0200 @@ -113,7 +113,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node81.html --- a/doc/manual/en/html/node81.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node81.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node82.html --- a/doc/manual/en/html/node82.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node82.html Fri Jun 08 09:23:56 2007 +0200 @@ -101,7 +101,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node83.html --- a/doc/manual/en/html/node83.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node83.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node84.html --- a/doc/manual/en/html/node84.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node84.html Fri Jun 08 09:23:56 2007 +0200 @@ -71,7 +71,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node85.html --- a/doc/manual/en/html/node85.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node85.html Fri Jun 08 09:23:56 2007 +0200 @@ -76,7 +76,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node86.html --- a/doc/manual/en/html/node86.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node86.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node87.html --- a/doc/manual/en/html/node87.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node87.html Fri Jun 08 09:23:56 2007 +0200 @@ -87,7 +87,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node88.html --- a/doc/manual/en/html/node88.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node88.html Fri Jun 08 09:23:56 2007 +0200 @@ -90,7 +90,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node89.html --- a/doc/manual/en/html/node89.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node89.html Fri Jun 08 09:23:56 2007 +0200 @@ -72,7 +72,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node9.html --- a/doc/manual/en/html/node9.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node9.html Fri Jun 08 09:23:56 2007 +0200 @@ -111,7 +111,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node90.html --- a/doc/manual/en/html/node90.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node90.html Fri Jun 08 09:23:56 2007 +0200 @@ -263,7 +263,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node91.html --- a/doc/manual/en/html/node91.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node91.html Fri Jun 08 09:23:56 2007 +0200 @@ -301,7 +301,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node92.html --- a/doc/manual/en/html/node92.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node92.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node93.html --- a/doc/manual/en/html/node93.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node93.html Fri Jun 08 09:23:56 2007 +0200 @@ -213,7 +213,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node94.html --- a/doc/manual/en/html/node94.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node94.html Fri Jun 08 09:23:56 2007 +0200 @@ -225,7 +225,7 @@
    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node95.html --- a/doc/manual/en/html/node95.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node95.html Fri Jun 08 09:23:56 2007 +0200 @@ -66,7 +66,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node96.html --- a/doc/manual/en/html/node96.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node96.html Fri Jun 08 09:23:56 2007 +0200 @@ -73,7 +73,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node97.html --- a/doc/manual/en/html/node97.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node97.html Fri Jun 08 09:23:56 2007 +0200 @@ -85,7 +85,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node98.html --- a/doc/manual/en/html/node98.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node98.html Fri Jun 08 09:23:56 2007 +0200 @@ -68,7 +68,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/html/node99.html --- a/doc/manual/en/html/node99.html Fri Jun 08 09:02:43 2007 +0200 +++ b/doc/manual/en/html/node99.html Fri Jun 08 09:23:56 2007 +0200 @@ -65,7 +65,7 @@

    epimerde -2007-06-06 +2007-06-08
    diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/manual.aux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/manual/en/manual.aux Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,146 @@ +\relax +\catcode`:\active +\catcode`;\active +\catcode`!\active +\catcode`?\active +\ifx\hyper@anchor\@undefined +\global \let \oldcontentsline\contentsline +\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global \let \oldnewlabel\newlabel +\gdef \newlabel#1#2{\newlabelxx{#1}#2} +\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\let \contentsline\oldcontentsline +\let \newlabel\oldnewlabel} +\else +\global \let \hyper@last\relax +\fi + +\select@language{english} +\@writefile{toc}{\select@language{english}} +\@writefile{lof}{\select@language{english}} +\@writefile{lot}{\select@language{english}} +\@writefile{toc}{\contentsline {section}{\numberline {1 -}Introduction}{2}{section.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1)}The CanFestival project}{2}{subsection.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2)}What is CANopen}{2}{subsection.1.2}} +\@writefile{toc}{\contentsline {section}{\numberline {2 -}CanFestival Features}{2}{section.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1)}Tools }{2}{subsection.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2)}Standard conformance}{3}{subsection.2.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}Multi{}-Platform}{3}{paragraph.2.2.0.1}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {b)}CanOpen conformance}{3}{paragraph.2.2.0.2}} +\@writefile{toc}{\contentsline {section}{\numberline {3 -}How to start}{3}{section.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1)}Host requirements}{3}{subsection.3.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1)}Object Dictionary Editor GUI}{4}{subsubsection.3.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2)}\ Linux and Unix{}-likes}{4}{subsubsection.3.1.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.3)}Windows (for native win32 target)}{4}{subsubsection.3.1.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2)}How to get CanFestival}{4}{subsection.3.2}} +\@writefile{toc}{\contentsline {section}{\numberline {4 -}Understanding Canfestival}{4}{section.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1)}CanFestival Project tree layout}{4}{subsection.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2)}Implement CanFestival in your application}{5}{subsection.4.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3)}CanFestival CAN interfaces}{5}{subsection.4.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4)}CanFestival events scheduling}{6}{subsection.4.4}} +\@writefile{toc}{\contentsline {section}{\numberline {5 -}Linux Target}{7}{section.5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1)}Linux Compilation and installation}{7}{subsection.5.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1)}Standard Linux node}{7}{subsubsection.5.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.2)}Real{}-Time Linux node}{8}{subsubsection.5.1.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.3)}CAN devices}{8}{subsubsection.5.1.3}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}Peak systems}{8}{paragraph.5.1.3.1}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {b)}Socket{}-Can (http://socketcan.berlios.de)}{8}{paragraph.5.1.3.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {c)}LinCan}{8}{paragraph.5.1.3.3}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {d)}Virtual CAN interfaces (for test/debug)}{8}{paragraph.5.1.3.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2)}Testing your CanFestival installation}{8}{subsection.5.2}} +\@writefile{toc}{\contentsline {section}{\numberline {6 -}Windows Targets}{8}{section.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1)}Object Dictionary Editor GUI installation.}{8}{subsection.6.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2)}CYGWIN}{9}{subsection.6.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1)}Requirements}{9}{subsubsection.6.2.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2)}Cygwin configuration and compilation}{9}{subsubsection.6.2.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}A single node with PcanLight and Peak CAN{}-USB adapter}{9}{paragraph.6.2.2.1}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {b)}Two nodes with PcanLight and Peak dual PCMCIA{}-CAN adapter}{9}{paragraph.6.2.2.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3)}Visual Studio C++}{10}{subsection.6.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.1)}Requirements}{10}{subsubsection.6.3.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.2)}Configuration with cygwin}{10}{subsubsection.6.3.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.3)}Compilation with Visual Studio}{10}{subsubsection.6.3.3}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}PcanLight and the can\_peak\_win32 project.}{10}{paragraph.6.3.3.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.4)}Testing}{10}{subsubsection.6.3.4}} +\@writefile{toc}{\contentsline {section}{\numberline {7 -}Motorola HCS12}{10}{section.7}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1)}Running a HCS12 node}{11}{subsection.7.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.1)}Compiling Canfestival:}{11}{subsubsection.7.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.2)}Compiling and building an example}{11}{subsubsection.7.1.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.3)}Flashing the memory :}{11}{subsubsection.7.1.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.4)}Connecting to a serial RS232 console :}{11}{subsubsection.7.1.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.5)}Connecting to the CAN network :}{11}{subsubsection.7.1.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.6)}starting the node :}{11}{subsubsection.7.1.6}} +\@writefile{toc}{\contentsline {section}{\numberline {8 -}Example and test program:}{11}{section.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.1)}TestMasterSlave}{11}{subsection.8.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.2)}gene\_SYNC\_HCS12 :}{12}{subsection.8.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.3)}TestMasterMicroMod }{12}{subsection.8.3}} +\@writefile{toc}{\contentsline {section}{\numberline {9 -}Developing a new node}{13}{section.9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.1)}Using Dictionary Editor GUI}{13}{subsection.9.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.1)}Installation and usage on Linux}{13}{subsubsection.9.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.2)}Installation and usage on Windows}{13}{subsubsection.9.1.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.3)}About}{14}{subsubsection.9.1.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.4)}Main view}{14}{subsubsection.9.1.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.5)}New node}{15}{subsubsection.9.1.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.6)}Node info}{15}{subsubsection.9.1.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.7)}Profile editor}{16}{subsubsection.9.1.7}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.8)}User types}{16}{subsubsection.9.1.8}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.9)}Mapped variable}{17}{subsubsection.9.1.9}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.10)}Integrated help}{17}{subsubsection.9.1.10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.2)}Generating the object Dictionary}{19}{subsection.9.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.2.1)}With GUI}{19}{subsubsection.9.2.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.2.2)}With command line}{19}{subsubsection.9.2.2}} +\@writefile{toc}{\contentsline {section}{\numberline {10 -}FAQ}{19}{section.10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {10.1)}General}{19}{subsection.10.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.1)}Does the code compiles on Windows ?}{19}{subsubsection.10.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.2)}How to fit the library to an other microcontr\^oler ?}{19}{subsubsection.10.1.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.3)}Is CanFestival3 conform to DS301 v.4.02 ?}{19}{subsubsection.10.1.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {10.2)}LINUX}{20}{subsection.10.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.2.1)}How to use a Peaksystem CAN board ?}{20}{subsubsection.10.2.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.2.2)}How to use an unsupported CAN board ?}{20}{subsubsection.10.2.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {10.3)}Win32}{20}{subsection.10.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {10.4)}HCS12}{20}{subsection.10.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.4.1)}Which board are you using ?}{20}{subsubsection.10.4.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.4.2)}Does the code compile with an other compiler than GNU gcc ?}{20}{subsubsection.10.4.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}Interrupt functions}{20}{paragraph.10.4.2.1}} +\@writefile{toc}{\contentsline {subparagraph}{\numberline {i)}Code for GCC:}{20}{subparagraph.10.4.2.1.1}} +\@writefile{toc}{\contentsline {subparagraph}{\numberline {ii)}Code for CodeWarrior}{21}{subparagraph.10.4.2.1.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {b)}Interrupt lock, unlock}{21}{paragraph.10.4.2.2}} +\@writefile{toc}{\contentsline {subparagraph}{\numberline {i)}Code for GCC}{21}{subparagraph.10.4.2.2.1}} +\@writefile{toc}{\contentsline {subparagraph}{\numberline {ii)}Code for CodeWarrior}{21}{subparagraph.10.4.2.2.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {c)}Initialize function}{21}{paragraph.10.4.2.3}} +\@writefile{toc}{\contentsline {subparagraph}{\numberline {i)}Code for GCC}{21}{subparagraph.10.4.2.3.1}} +\@writefile{toc}{\contentsline {subparagraph}{\numberline {ii)}Code for CodeWarrior}{22}{subparagraph.10.4.2.3.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.4.3)}Who to use warnings and errors messages ?}{22}{subsubsection.10.4.3}} +\gdef \LT@i {\LT@entry + {1}{66.95064pt}\LT@entry + {1}{61.78313pt}\LT@entry + {1}{79.90135pt}\LT@entry + {1}{5.69052pt}\LT@entry + {1}{80.75488pt}\LT@entry + {1}{94.20406pt}\LT@entry + {1}{90.69179pt}} +\gdef \LT@ii {\LT@entry + {1}{66.95064pt}\LT@entry + {1}{58.82004pt}\LT@entry + {1}{52.74937pt}\LT@entry + {1}{62.5352pt}\LT@entry + {1}{5.69052pt}\LT@entry + {1}{64.13971pt}\LT@entry + {1}{77.63962pt}\LT@entry + {1}{91.39314pt}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}Warnings messages}{23}{table.1}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {b)}Errors messages}{23}{table.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.4.4)}Does the code works in banked memory ?}{23}{subsubsection.10.4.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.4.5)}What GCC version are you using ?}{24}{subsubsection.10.4.5}} +\@writefile{toc}{\contentsline {section}{\numberline {11 -}Documentation resources}{24}{section.11}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {a)}CIA : Can in Automation}{24}{paragraph.11.0.5.1}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {b)}Resources and training in CANopen}{24}{paragraph.11.0.5.2}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {c)}Elektronikladen HCS12 T{}-board}{24}{paragraph.11.0.5.3}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {d)}Gnu gcc compiler for HC12}{24}{paragraph.11.0.5.4}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {e)}Motorola documentation on HC12}{24}{paragraph.11.0.5.5}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {f)}Lauterbach debugger for HC12}{24}{paragraph.11.0.5.6}} +\@writefile{toc}{\contentsline {paragraph}{\numberline {g)}Python language}{24}{paragraph.11.0.5.7}} +\@writefile{toc}{\contentsline {section}{\numberline {12 -}About the project}{25}{section.12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {12.1)}Contributors }{25}{subsection.12.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {12.2)}Getting support}{25}{subsection.12.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {12.3)}Contributing}{25}{subsection.12.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {12.4)}License}{26}{subsection.12.4}} diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/manual.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/manual/en/manual.out Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,41 @@ +\BOOKMARK [1][-]{section.1}{Introduction}{} +\BOOKMARK [2][-]{subsection.1.1}{The CanFestival project}{section.1} +\BOOKMARK [2][-]{subsection.1.2}{What is CANopen}{section.1} +\BOOKMARK [1][-]{section.2}{CanFestival Features}{} +\BOOKMARK [2][-]{subsection.2.1}{Tools }{section.2} +\BOOKMARK [2][-]{subsection.2.2}{Standard conformance}{section.2} +\BOOKMARK [1][-]{section.3}{How to start}{} +\BOOKMARK [2][-]{subsection.3.1}{Host requirements}{section.3} +\BOOKMARK [2][-]{subsection.3.2}{How to get CanFestival}{section.3} +\BOOKMARK [1][-]{section.4}{Understanding Canfestival}{} +\BOOKMARK [2][-]{subsection.4.1}{CanFestival Project tree layout}{section.4} +\BOOKMARK [2][-]{subsection.4.2}{Implement CanFestival in your application}{section.4} +\BOOKMARK [2][-]{subsection.4.3}{CanFestival CAN interfaces}{section.4} +\BOOKMARK [2][-]{subsection.4.4}{CanFestival events scheduling}{section.4} +\BOOKMARK [1][-]{section.5}{Linux Target}{} +\BOOKMARK [2][-]{subsection.5.1}{Linux Compilation and installation}{section.5} +\BOOKMARK [2][-]{subsection.5.2}{Testing your CanFestival installation}{section.5} +\BOOKMARK [1][-]{section.6}{Windows Targets}{} +\BOOKMARK [2][-]{subsection.6.1}{Object Dictionary Editor GUI installation.}{section.6} +\BOOKMARK [2][-]{subsection.6.2}{CYGWIN}{section.6} +\BOOKMARK [2][-]{subsection.6.3}{Visual Studio C++}{section.6} +\BOOKMARK [1][-]{section.7}{Motorola HCS12}{} +\BOOKMARK [2][-]{subsection.7.1}{Running a HCS12 node}{section.7} +\BOOKMARK [1][-]{section.8}{Example and test program:}{} +\BOOKMARK [2][-]{subsection.8.1}{TestMasterSlave}{section.8} +\BOOKMARK [2][-]{subsection.8.2}{gene\137SYNC\137HCS12 :}{section.8} +\BOOKMARK [2][-]{subsection.8.3}{TestMasterMicroMod }{section.8} +\BOOKMARK [1][-]{section.9}{Developing a new node}{} +\BOOKMARK [2][-]{subsection.9.1}{Using Dictionary Editor GUI}{section.9} +\BOOKMARK [2][-]{subsection.9.2}{Generating the object Dictionary}{section.9} +\BOOKMARK [1][-]{section.10}{FAQ}{} +\BOOKMARK [2][-]{subsection.10.1}{General}{section.10} +\BOOKMARK [2][-]{subsection.10.2}{LINUX}{section.10} +\BOOKMARK [2][-]{subsection.10.3}{Win32}{section.10} +\BOOKMARK [2][-]{subsection.10.4}{HCS12}{section.10} +\BOOKMARK [1][-]{section.11}{Documentation resources}{} +\BOOKMARK [1][-]{section.12}{About the project}{} +\BOOKMARK [2][-]{subsection.12.1}{Contributors }{section.12} +\BOOKMARK [2][-]{subsection.12.2}{Getting support}{section.12} +\BOOKMARK [2][-]{subsection.12.3}{Contributing}{section.12} +\BOOKMARK [2][-]{subsection.12.4}{License}{section.12} diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/manual.pdf Binary file doc/manual/en/manual.pdf has changed diff -r 003cc3c63855 -r f49e5a6b7804 doc/manual/en/manual.toc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/manual/en/manual.toc Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,109 @@ +\select@language {english} +\contentsline {section}{\numberline {1 -}Introduction}{2}{section.1} +\contentsline {subsection}{\numberline {1.1)}The CanFestival project}{2}{subsection.1.1} +\contentsline {subsection}{\numberline {1.2)}What is CANopen}{2}{subsection.1.2} +\contentsline {section}{\numberline {2 -}CanFestival Features}{2}{section.2} +\contentsline {subsection}{\numberline {2.1)}Tools }{2}{subsection.2.1} +\contentsline {subsection}{\numberline {2.2)}Standard conformance}{3}{subsection.2.2} +\contentsline {paragraph}{\numberline {a)}Multi{}-Platform}{3}{paragraph.2.2.0.1} +\contentsline {paragraph}{\numberline {b)}CanOpen conformance}{3}{paragraph.2.2.0.2} +\contentsline {section}{\numberline {3 -}How to start}{3}{section.3} +\contentsline {subsection}{\numberline {3.1)}Host requirements}{3}{subsection.3.1} +\contentsline {subsubsection}{\numberline {3.1.1)}Object Dictionary Editor GUI}{4}{subsubsection.3.1.1} +\contentsline {subsubsection}{\numberline {3.1.2)}\ Linux and Unix{}-likes}{4}{subsubsection.3.1.2} +\contentsline {subsubsection}{\numberline {3.1.3)}Windows (for native win32 target)}{4}{subsubsection.3.1.3} +\contentsline {subsection}{\numberline {3.2)}How to get CanFestival}{4}{subsection.3.2} +\contentsline {section}{\numberline {4 -}Understanding Canfestival}{4}{section.4} +\contentsline {subsection}{\numberline {4.1)}CanFestival Project tree layout}{4}{subsection.4.1} +\contentsline {subsection}{\numberline {4.2)}Implement CanFestival in your application}{5}{subsection.4.2} +\contentsline {subsection}{\numberline {4.3)}CanFestival CAN interfaces}{5}{subsection.4.3} +\contentsline {subsection}{\numberline {4.4)}CanFestival events scheduling}{6}{subsection.4.4} +\contentsline {section}{\numberline {5 -}Linux Target}{7}{section.5} +\contentsline {subsection}{\numberline {5.1)}Linux Compilation and installation}{7}{subsection.5.1} +\contentsline {subsubsection}{\numberline {5.1.1)}Standard Linux node}{7}{subsubsection.5.1.1} +\contentsline {subsubsection}{\numberline {5.1.2)}Real{}-Time Linux node}{8}{subsubsection.5.1.2} +\contentsline {subsubsection}{\numberline {5.1.3)}CAN devices}{8}{subsubsection.5.1.3} +\contentsline {paragraph}{\numberline {a)}Peak systems}{8}{paragraph.5.1.3.1} +\contentsline {paragraph}{\numberline {b)}Socket{}-Can (http://socketcan.berlios.de)}{8}{paragraph.5.1.3.2} +\contentsline {paragraph}{\numberline {c)}LinCan}{8}{paragraph.5.1.3.3} +\contentsline {paragraph}{\numberline {d)}Virtual CAN interfaces (for test/debug)}{8}{paragraph.5.1.3.4} +\contentsline {subsection}{\numberline {5.2)}Testing your CanFestival installation}{8}{subsection.5.2} +\contentsline {section}{\numberline {6 -}Windows Targets}{8}{section.6} +\contentsline {subsection}{\numberline {6.1)}Object Dictionary Editor GUI installation.}{8}{subsection.6.1} +\contentsline {subsection}{\numberline {6.2)}CYGWIN}{9}{subsection.6.2} +\contentsline {subsubsection}{\numberline {6.2.1)}Requirements}{9}{subsubsection.6.2.1} +\contentsline {subsubsection}{\numberline {6.2.2)}Cygwin configuration and compilation}{9}{subsubsection.6.2.2} +\contentsline {paragraph}{\numberline {a)}A single node with PcanLight and Peak CAN{}-USB adapter}{9}{paragraph.6.2.2.1} +\contentsline {paragraph}{\numberline {b)}Two nodes with PcanLight and Peak dual PCMCIA{}-CAN adapter}{9}{paragraph.6.2.2.2} +\contentsline {subsection}{\numberline {6.3)}Visual Studio C++}{10}{subsection.6.3} +\contentsline {subsubsection}{\numberline {6.3.1)}Requirements}{10}{subsubsection.6.3.1} +\contentsline {subsubsection}{\numberline {6.3.2)}Configuration with cygwin}{10}{subsubsection.6.3.2} +\contentsline {subsubsection}{\numberline {6.3.3)}Compilation with Visual Studio}{10}{subsubsection.6.3.3} +\contentsline {paragraph}{\numberline {a)}PcanLight and the can\_peak\_win32 project.}{10}{paragraph.6.3.3.1} +\contentsline {subsubsection}{\numberline {6.3.4)}Testing}{10}{subsubsection.6.3.4} +\contentsline {section}{\numberline {7 -}Motorola HCS12}{10}{section.7} +\contentsline {subsection}{\numberline {7.1)}Running a HCS12 node}{11}{subsection.7.1} +\contentsline {subsubsection}{\numberline {7.1.1)}Compiling Canfestival:}{11}{subsubsection.7.1.1} +\contentsline {subsubsection}{\numberline {7.1.2)}Compiling and building an example}{11}{subsubsection.7.1.2} +\contentsline {subsubsection}{\numberline {7.1.3)}Flashing the memory :}{11}{subsubsection.7.1.3} +\contentsline {subsubsection}{\numberline {7.1.4)}Connecting to a serial RS232 console :}{11}{subsubsection.7.1.4} +\contentsline {subsubsection}{\numberline {7.1.5)}Connecting to the CAN network :}{11}{subsubsection.7.1.5} +\contentsline {subsubsection}{\numberline {7.1.6)}starting the node :}{11}{subsubsection.7.1.6} +\contentsline {section}{\numberline {8 -}Example and test program:}{11}{section.8} +\contentsline {subsection}{\numberline {8.1)}TestMasterSlave}{11}{subsection.8.1} +\contentsline {subsection}{\numberline {8.2)}gene\_SYNC\_HCS12 :}{12}{subsection.8.2} +\contentsline {subsection}{\numberline {8.3)}TestMasterMicroMod }{12}{subsection.8.3} +\contentsline {section}{\numberline {9 -}Developing a new node}{13}{section.9} +\contentsline {subsection}{\numberline {9.1)}Using Dictionary Editor GUI}{13}{subsection.9.1} +\contentsline {subsubsection}{\numberline {9.1.1)}Installation and usage on Linux}{13}{subsubsection.9.1.1} +\contentsline {subsubsection}{\numberline {9.1.2)}Installation and usage on Windows}{13}{subsubsection.9.1.2} +\contentsline {subsubsection}{\numberline {9.1.3)}About}{14}{subsubsection.9.1.3} +\contentsline {subsubsection}{\numberline {9.1.4)}Main view}{14}{subsubsection.9.1.4} +\contentsline {subsubsection}{\numberline {9.1.5)}New node}{15}{subsubsection.9.1.5} +\contentsline {subsubsection}{\numberline {9.1.6)}Node info}{15}{subsubsection.9.1.6} +\contentsline {subsubsection}{\numberline {9.1.7)}Profile editor}{16}{subsubsection.9.1.7} +\contentsline {subsubsection}{\numberline {9.1.8)}User types}{16}{subsubsection.9.1.8} +\contentsline {subsubsection}{\numberline {9.1.9)}Mapped variable}{17}{subsubsection.9.1.9} +\contentsline {subsubsection}{\numberline {9.1.10)}Integrated help}{17}{subsubsection.9.1.10} +\contentsline {subsection}{\numberline {9.2)}Generating the object Dictionary}{19}{subsection.9.2} +\contentsline {subsubsection}{\numberline {9.2.1)}With GUI}{19}{subsubsection.9.2.1} +\contentsline {subsubsection}{\numberline {9.2.2)}With command line}{19}{subsubsection.9.2.2} +\contentsline {section}{\numberline {10 -}FAQ}{19}{section.10} +\contentsline {subsection}{\numberline {10.1)}General}{19}{subsection.10.1} +\contentsline {subsubsection}{\numberline {10.1.1)}Does the code compiles on Windows ?}{19}{subsubsection.10.1.1} +\contentsline {subsubsection}{\numberline {10.1.2)}How to fit the library to an other microcontr\^oler ?}{19}{subsubsection.10.1.2} +\contentsline {subsubsection}{\numberline {10.1.3)}Is CanFestival3 conform to DS301 v.4.02 ?}{19}{subsubsection.10.1.3} +\contentsline {subsection}{\numberline {10.2)}LINUX}{20}{subsection.10.2} +\contentsline {subsubsection}{\numberline {10.2.1)}How to use a Peaksystem CAN board ?}{20}{subsubsection.10.2.1} +\contentsline {subsubsection}{\numberline {10.2.2)}How to use an unsupported CAN board ?}{20}{subsubsection.10.2.2} +\contentsline {subsection}{\numberline {10.3)}Win32}{20}{subsection.10.3} +\contentsline {subsection}{\numberline {10.4)}HCS12}{20}{subsection.10.4} +\contentsline {subsubsection}{\numberline {10.4.1)}Which board are you using ?}{20}{subsubsection.10.4.1} +\contentsline {subsubsection}{\numberline {10.4.2)}Does the code compile with an other compiler than GNU gcc ?}{20}{subsubsection.10.4.2} +\contentsline {paragraph}{\numberline {a)}Interrupt functions}{20}{paragraph.10.4.2.1} +\contentsline {subparagraph}{\numberline {i)}Code for GCC:}{20}{subparagraph.10.4.2.1.1} +\contentsline {subparagraph}{\numberline {ii)}Code for CodeWarrior}{21}{subparagraph.10.4.2.1.2} +\contentsline {paragraph}{\numberline {b)}Interrupt lock, unlock}{21}{paragraph.10.4.2.2} +\contentsline {subparagraph}{\numberline {i)}Code for GCC}{21}{subparagraph.10.4.2.2.1} +\contentsline {subparagraph}{\numberline {ii)}Code for CodeWarrior}{21}{subparagraph.10.4.2.2.2} +\contentsline {paragraph}{\numberline {c)}Initialize function}{21}{paragraph.10.4.2.3} +\contentsline {subparagraph}{\numberline {i)}Code for GCC}{21}{subparagraph.10.4.2.3.1} +\contentsline {subparagraph}{\numberline {ii)}Code for CodeWarrior}{22}{subparagraph.10.4.2.3.2} +\contentsline {subsubsection}{\numberline {10.4.3)}Who to use warnings and errors messages ?}{22}{subsubsection.10.4.3} +\contentsline {paragraph}{\numberline {a)}Warnings messages}{23}{table.1} +\contentsline {paragraph}{\numberline {b)}Errors messages}{23}{table.2} +\contentsline {subsubsection}{\numberline {10.4.4)}Does the code works in banked memory ?}{23}{subsubsection.10.4.4} +\contentsline {subsubsection}{\numberline {10.4.5)}What GCC version are you using ?}{24}{subsubsection.10.4.5} +\contentsline {section}{\numberline {11 -}Documentation resources}{24}{section.11} +\contentsline {paragraph}{\numberline {a)}CIA : Can in Automation}{24}{paragraph.11.0.5.1} +\contentsline {paragraph}{\numberline {b)}Resources and training in CANopen}{24}{paragraph.11.0.5.2} +\contentsline {paragraph}{\numberline {c)}Elektronikladen HCS12 T{}-board}{24}{paragraph.11.0.5.3} +\contentsline {paragraph}{\numberline {d)}Gnu gcc compiler for HC12}{24}{paragraph.11.0.5.4} +\contentsline {paragraph}{\numberline {e)}Motorola documentation on HC12}{24}{paragraph.11.0.5.5} +\contentsline {paragraph}{\numberline {f)}Lauterbach debugger for HC12}{24}{paragraph.11.0.5.6} +\contentsline {paragraph}{\numberline {g)}Python language}{24}{paragraph.11.0.5.7} +\contentsline {section}{\numberline {12 -}About the project}{25}{section.12} +\contentsline {subsection}{\numberline {12.1)}Contributors }{25}{subsection.12.1} +\contentsline {subsection}{\numberline {12.2)}Getting support}{25}{subsection.12.2} +\contentsline {subsection}{\numberline {12.3)}Contributing}{25}{subsection.12.3} +\contentsline {subsection}{\numberline {12.4)}License}{26}{subsection.12.4} diff -r 003cc3c63855 -r f49e5a6b7804 objdictgen/doc/manual_en.pdf Binary file objdictgen/doc/manual_en.pdf has changed diff -r 003cc3c63855 -r f49e5a6b7804 src/dcf.c --- a/src/dcf.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/dcf.c Fri Jun 08 09:23:56 2007 +0200 @@ -32,6 +32,8 @@ ** ** */ + + #include "objacces.h" #include "sdo.h" #include "dcf.h" @@ -85,7 +87,7 @@ return errorCode; } - /** Loop on all Nodes supported in DCF subindexes*/ + /* Loop on all Nodes supported in DCF subindexes*/ while (nodeId < ptrTable->bSubCount){ UNS32 nb_targets; @@ -102,27 +104,27 @@ nb_targets = UNS32_LE(*((UNS32*)dcf)); } - /** condition on consise DCF string for NodeID, if big enough */ + /* condition on consise DCF string for NodeID, if big enough */ if((UNS8*)d->dcf_cursor + 7 < (UNS8*)dcfend && d->dcf_count_targets < nb_targets) { - /** pointer to the DCF string for NodeID */ + /* pointer to the DCF string for NodeID */ target_Index = UNS16_LE(*((UNS16*)(d->dcf_cursor))); d->dcf_cursor += 2; target_Subindex = *((UNS8*)(((UNS8*)d->dcf_cursor)++)); target_Size = UNS32_LE(*((UNS32*)(d->dcf_cursor))); d->dcf_cursor += 4; /* printf("Master : ConfigureSlaveNode %2.2x (Concise DCF)\n",nodeId);*/ - res = _writeNetworkDict(d, /** CO_Data* d*/ - nodeId, /** UNS8 nodeId*/ - target_Index, /** UNS16 index*/ - target_Subindex, /** UNS8 subindex*/ - target_Size, /** UNS8 count*/ - 0, /** UNS8 dataType*/ - d->dcf_cursor,/** void *data*/ - CheckSDOAndContinue,/** SDOCallback_t + res = _writeNetworkDict(d, /* CO_Data* d*/ + nodeId, /* UNS8 nodeId*/ + target_Index, /* UNS16 index*/ + target_Subindex, /* UNS8 subindex*/ + target_Size, /* UNS8 count*/ + 0, /* UNS8 dataType*/ + d->dcf_cursor,/* void *data*/ + CheckSDOAndContinue,/* SDOCallback_t Callback*/ - 0); /** no endianize*/ - /** Push d->dcf_cursor to the end of data*/ + 0); /* no endianize*/ + /* Push d->dcf_cursor to the end of data*/ d->dcf_cursor += target_Size; d->dcf_count_targets++; @@ -132,7 +134,7 @@ nodeId++; d->dcf_cursor = NULL; } - /** Switch Master to preOperational state */ + /* Switch Master to preOperational state */ (*d->preOperational)(); } diff -r 003cc3c63855 -r f49e5a6b7804 src/lifegrd.c --- a/src/lifegrd.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/lifegrd.c Fri Jun 08 09:23:56 2007 +0200 @@ -108,22 +108,22 @@ } else d->toggle = 1 ; - /*! send the nodeguard response. */ + /* send the nodeguard response. */ MSG_WAR(0x3130, "Sending NMT Nodeguard to master, state: ", d->nodeState); canSend(d->canHandle,&msg ); } - }else{ /*! Not a request CAN */ + }else{ /* Not a request CAN */ MSG_WAR(0x3110, "Received NMT nodeId : ", nodeId); - /*! the slave's state receievd is stored in the NMTable */ - /*! The state is stored on 7 bit */ + /* the slave's state receievd is stored in the NMTable */ + /* The state is stored on 7 bit */ d->NMTable[nodeId] = (e_nodeState) ((*m).data[0] & 0x7F) ; - /*! Boot-Up frame reception */ + /* Boot-Up frame reception */ if ( d->NMTable[nodeId] == Initialisation) { - /*! + /* ** The device send the boot-up message (Initialisation) ** to indicate the master that it is entered in ** pre_operational mode @@ -163,7 +163,7 @@ if(*d->ProducerHeartBeatTime) { Message msg; - /*! Time expired, the heartbeat must be sent immediately + /* Time expired, the heartbeat must be sent immediately ** generate the correct node-id: this is done by the offset 1792 ** (decimal) and additionaly ** the node-id of this device. @@ -172,8 +172,8 @@ msg.cob_id.w = *d->bDeviceNodeId + 0x700; msg.len = (UNS8)0x01; msg.rtr = 0; - msg.data[0] = d->nodeState; /*! No toggle for heartbeat !*/ - /*! send the heartbeat */ + msg.data[0] = d->nodeState; /* No toggle for heartbeat !*/ + /* send the heartbeat */ MSG_WAR(0x3130, "Producing heartbeat: ", d->nodeState); canSend(d->canHandle,&msg ); @@ -206,7 +206,7 @@ void heartbeatInit(CO_Data* d) { - UNS8 index; /*! Index to scan the table of heartbeat consumers */ + UNS8 index; /* Index to scan the table of heartbeat consumers */ RegisterSetODentryCallBack(d, 0x1017, 0x00, &OnHeartbeatProducerUpdate); d->toggle = 0; @@ -214,7 +214,7 @@ for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ ) { TIMEVAL time = (UNS16) ( (d->ConsumerHeartbeatEntries[index]) & (UNS32)0x0000FFFF ) ; - /*! MSG_WAR(0x3121, "should_time : ", should_time ) ; */ + /* MSG_WAR(0x3121, "should_time : ", should_time ) ; */ if ( time ) { d->ConsumerHeartBeatTimers[index] = SetAlarm(d, index, &ConsumerHearbeatAlarm, MS_TO_TIMEVAL(time), 0); diff -r 003cc3c63855 -r f49e5a6b7804 src/nmtMaster.c --- a/src/nmtMaster.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/nmtMaster.c Fri Jun 08 09:23:56 2007 +0200 @@ -48,7 +48,7 @@ MSG_WAR(0x3501, "Send_NMT cs : ", cs); MSG_WAR(0x3502, " to node : ", Node_ID); - /*! message configuration */ + /* message configuration */ m.cob_id.w = 0x0000; /*(NMT) << 7*/ m.rtr = NOT_A_REQUEST; m.len = 2; @@ -89,15 +89,15 @@ **/ void masterRequestNodeState(CO_Data* d, UNS8 nodeId) { - /*! FIXME: should warn for bad toggle bit. */ + /* FIXME: should warn for bad toggle bit. */ - /*! NMTable configuration to indicate that the master is waiting + /* NMTable configuration to indicate that the master is waiting for a Node_Guard frame from the slave whose node_id is ID */ - d->NMTable[nodeId] = Unknown_state; /*! A state that does not exist + d->NMTable[nodeId] = Unknown_state; /* A state that does not exist */ - if (nodeId == 0) { /*! NMT broadcast */ + if (nodeId == 0) { /* NMT broadcast */ UNS8 i = 0; for (i = 0 ; i < NMT_MAX_NODE_ID ; i++) { d->NMTable[i] = Unknown_state; diff -r 003cc3c63855 -r f49e5a6b7804 src/nmtSlave.c --- a/src/nmtSlave.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/nmtSlave.c Fri Jun 08 09:23:56 2007 +0200 @@ -48,12 +48,12 @@ MSG_WAR(0x3400, "NMT received. for node : ", (*m).data[1]); - /*! Check if this NMT-message is for this node */ - /*! byte 1 = 0 : all the nodes are concerned (broadcast) */ + /* Check if this NMT-message is for this node */ + /* byte 1 = 0 : all the nodes are concerned (broadcast) */ if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == *d->bDeviceNodeId ) ){ - switch( (*m).data[0]){ /*! command specifier (cs) */ + switch( (*m).data[0]){ /* command specifier (cs) */ case NMT_Start_Node: if ( (d->nodeState == Pre_operational) || (d->nodeState == Stopped) ) setState(d,Operational); @@ -79,9 +79,9 @@ setState(d,Initialisation); break; - }/*! end switch */ + }/* end switch */ - }/*! end if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == + }/* end if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == bDeviceNodeId ) ) */ } } @@ -100,7 +100,7 @@ MSG_WAR(0x3407, "Send a Boot-Up msg ", 0); - /*! message configuration */ + /* message configuration */ m.cob_id.w = NODE_GUARD << 7 | *d->bDeviceNodeId; m.rtr = NOT_A_REQUEST; m.len = 1; diff -r 003cc3c63855 -r f49e5a6b7804 src/objacces.c --- a/src/objacces.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/objacces.c Fri Jun 08 09:23:56 2007 +0200 @@ -110,7 +110,7 @@ UNS8 * pDataType, UNS8 checkAccess, UNS8 endianize) -{ /*! DO NOT USE MSG_ERR because the macro may send a PDO -> infinite +{ /* DO NOT USE MSG_ERR because the macro may send a PDO -> infinite loop if it fails. */ UNS32 errorCode; UNS8 szData; @@ -139,12 +139,12 @@ if(*pExpectedSize == 0 || *pExpectedSize == szData || (*pDataType == visible_string && *pExpectedSize < szData)) { - /*! We + /* We allow to fetch a shorter string than expected */ # ifdef CANOPEN_BIG_ENDIAN if(endianize && *pDataType > boolean && *pDataType < visible_string) { - /*! data must be transmited with low byte first */ + /* data must be transmited with low byte first */ UNS8 i, j = 0; MSG_WAR(boolean, "data type ", *pDataType); MSG_WAR(visible_string, "data type ", *pDataType); @@ -154,7 +154,7 @@ ((UNS8*)ptrTable->pSubindex[bSubindex].pObject)[i-1]; } } - else /*! It it is a visible string no endianisation to perform */ + else /* It it is a visible string no endianisation to perform */ memcpy(pDestData, ptrTable->pSubindex[bSubindex].pObject,szData); # else memcpy(pDestData, ptrTable->pSubindex[bSubindex].pObject,szData); @@ -162,7 +162,7 @@ *pExpectedSize = szData; #if 0 - /*! Me laisser a, please ! (FD) */ + /* Me laisser a, please ! (FD) */ { UNS8 i; for (i = 0 ; i < 10 ; i++) { @@ -174,7 +174,7 @@ #endif return OD_SUCCESSFUL; } - else { /*! Error ! */ + else { /* Error ! */ *pExpectedSize = szData; accessDictionaryError(wIndex, bSubindex, szData, *pExpectedSize, OD_LENGTH_DATA_INVALID); @@ -276,7 +276,7 @@ return errorCode; if( ptrTable->bSubCount <= bSubindex ) { - /*! Subindex not found */ + /* Subindex not found */ accessDictionaryError(wIndex, bSubindex, 0, *pExpectedSize, OD_NO_SUCH_SUBINDEX); return OD_NO_SUCH_SUBINDEX; } @@ -298,9 +298,9 @@ #ifdef CANOPEN_BIG_ENDIAN if(endianize && dataType > boolean && dataType < visible_string) { - /*! we invert the data source directly. This let us do range + /* we invert the data source directly. This let us do range testing without */ - /*! additional temp variable */ + /* additional temp variable */ UNS8 i; for ( i = 0 ; i < ( ptrTable->pSubindex[bSubindex].size >> 1) ; i++) { @@ -318,12 +318,12 @@ memcpy(ptrTable->pSubindex[bSubindex].pObject,pSourceData, *pExpectedSize); *pExpectedSize = szData; - /*! Callbacks */ + /* Callbacks */ if(Callback && Callback[bSubindex]){ (*Callback[bSubindex])(d, ptrTable, bSubindex); } - /*! TODO : Store dans NVRAM */ + /* TODO : Store dans NVRAM */ if (ptrTable->pSubindex[bSubindex].bAccessType & TO_BE_SAVE){ (*d->storeODSubIndex)(wIndex, bSubindex); } diff -r 003cc3c63855 -r f49e5a6b7804 src/pdo.c --- a/src/pdo.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/pdo.c Fri Jun 08 09:23:56 2007 +0200 @@ -40,15 +40,15 @@ if( d->nodeState == Operational ) { Message m; - /*! Message copy for sending */ - m.cob_id.w = pdo.cobId & 0x7FF; /*! Because the cobId is 11 bytes + /* Message copy for sending */ + m.cob_id.w = pdo.cobId & 0x7FF; /* Because the cobId is 11 bytes length */ if ( req == NOT_A_REQUEST ) { UNS8 i; m.rtr = NOT_A_REQUEST; m.len = pdo.len; - /*! memcpy(&m.data, &pdo.data, m.len); */ - /*! This Memcpy depends on packing structure. Avoid */ + /* memcpy(&m.data, &pdo.data, m.len); */ + /* This Memcpy depends on packing structure. Avoid */ for (i = 0 ; i < pdo.len ; i++) m.data[i] = pdo.data[i]; } @@ -64,7 +64,7 @@ } return canSend(d->canHandle,&m); - } /*! end if */ + } /* end if */ return 0xFF; } @@ -84,11 +84,11 @@ MSG_WAR(0x3905, "PDOmGR",0); - /*! if PDO is waiting for transmission, + /* if PDO is waiting for transmission, preparation of the message to send */ pdo.cobId = cobId; pdo.len = d->process_var.count; - /*! memcpy(&(pdo.data), &(process_var.data), pdo.len); */ + /* memcpy(&(pdo.data), &(process_var.data), pdo.len); */ /* Ce memcpy devrait tre portable */ for ( i = 0 ; i < pdo.len ; i++) pdo.data[i] = d->process_var.data[i]; @@ -128,7 +128,7 @@ MSG_WAR(0x3910,"Prepare PDO to send index :", index); - /*! only operational state allows PDO transmission */ + /* only operational state allows PDO transmission */ if( d->nodeState != Operational ) { MSG_WAR(0x2911, "Unable to send the PDO (node not in OPERATIONAL mode). Node : ", index); return 0xFF; @@ -138,17 +138,17 @@ if (offsetObjdictPrm && offsetObjdict) { - /*! get mapped objects number to transmit with this PDO */ + /* get mapped objects number to transmit with this PDO */ pMappingCount = (d->objdict + offsetObjdict + ind)->pSubindex[0].pObject; MSG_WAR(0x3912, "Nb maped objects : ",* pMappingCount); MSG_WAR(0x3913, " at index : ", 0x1A00 + ind); - while (subInd < *pMappingCount) { /*! Loop on mapped variables */ - /*! get mapping parameters */ + while (subInd < *pMappingCount) { /* Loop on mapped variables */ + /* get mapping parameters */ pMappingParameter = (d->objdict + offsetObjdict + ind)->pSubindex[subInd + 1].pObject; MSG_WAR(0x3914, "Get the mapping at index : ", (UNS16)0x1A00 + ind); MSG_WAR(0x3915, " subIndex : ", subInd + 1); MSG_WAR(0x3916, " value : ", *(UNS32 *)pMappingParameter); - /*! Get the mapped variable */ + /* Get the mapped variable */ Size = ((UNS8)(((*pMappingParameter) & 0xFF) >> 3)); objDict = getODentry(d, (UNS16)((*pMappingParameter) >> 16), (UNS8)(((*pMappingParameter) >> 8 ) & 0x000000FF), @@ -164,7 +164,7 @@ offset += Size; d->process_var.count = offset; subInd++; - }/*! end Loop on mapped variables */ + }/* end Loop on mapped variables */ } return 0; } @@ -186,14 +186,14 @@ UNS8 err; MSG_WAR(0x3930, "sendPDOrequest ",0); - /*! Sending the request only if the cobid have been found on the PDO + /* Sending the request only if the cobid have been found on the PDO receive */ - /*! part dictionary */ + /* part dictionary */ offset = d->firstIndex->PDO_RCV; lastIndex = d->lastIndex->PDO_RCV; if (offset) while (offset <= lastIndex) { - /*! get the CobId*/ + /* get the CobId*/ pwCobId = d->objdict[offset].pSubindex[1].pObject; if ( *pwCobId == cobId ) { @@ -221,15 +221,15 @@ UNS8 proceedPDO(CO_Data* d, Message *m) { UNS8 numPdo; - UNS8 numMap; /*! Number of the mapped varable */ + UNS8 numMap; /* Number of the mapped varable */ UNS8 i; - UNS8 * pMappingCount = NULL; /*! count of mapped objects... */ - /*! pointer to the var which is mapped to a pdo... */ - /*! void * pMappedAppObject = NULL; */ - /*! pointer fo the var which holds the mapping parameter of an + UNS8 * pMappingCount = NULL; /* count of mapped objects... */ + /* pointer to the var which is mapped to a pdo... */ + /* void * pMappedAppObject = NULL; */ + /* pointer fo the var which holds the mapping parameter of an mapping entry */ UNS32 * pMappingParameter = NULL; - UNS8 * pTransmissionType = NULL; /*! pointer to the transmission + UNS8 * pTransmissionType = NULL; /* pointer to the transmission type */ UNS32 * pwCobId = NULL; UNS8 Size; @@ -245,20 +245,20 @@ offset = 0x00; numPdo = 0; numMap = 0; - if((*m).rtr == NOT_A_REQUEST ) { /*! The PDO received is not a + if((*m).rtr == NOT_A_REQUEST ) { /* The PDO received is not a request. */ offsetObjdict = d->firstIndex->PDO_RCV; lastIndex = d->lastIndex->PDO_RCV; - /*! study of all the PDO stored in the dictionary */ + /* study of all the PDO stored in the dictionary */ if(offsetObjdict) while (offsetObjdict <= lastIndex) { switch( status ) { - case state1:/*! data are stored in process_var array */ - /*! memcpy(&(process_var.data), &m->data, (*m).len); */ - /*! Ce memcpy devrait etre portable */ + case state1:/* data are stored in process_var array */ + /* memcpy(&(process_var.data), &m->data, (*m).len); */ + /* Ce memcpy devrait etre portable */ for ( i = 0 ; i < m->len ; i++) d->process_var.data[i] = m->data[i]; d->process_var.count = (*m).len; @@ -267,20 +267,20 @@ break; case state2: - /*! get CobId of the dictionary correspondant to the received + /* get CobId of the dictionary correspondant to the received PDO */ pwCobId = d->objdict[offsetObjdict].pSubindex[1].pObject; - /*! check the CobId coherance */ - /*!pwCobId is the cobId read in the dictionary at the state 3 + /* check the CobId coherance */ + /*pwCobId is the cobId read in the dictionary at the state 3 */ if ( *pwCobId == (*m).cob_id.w ){ - /*! The cobId is recognized */ + /* The cobId is recognized */ status = state4; MSG_WAR(0x3936, "cobId found at index ", 0x1400 + numPdo); break; } else { - /*! cobId received does not match with those write in the + /* cobId received does not match with those write in the dictionnary */ numPdo++; offsetObjdict++; @@ -288,8 +288,8 @@ break; } - case state4:/*! Get Mapped Objects Number */ - /*! The cobId of the message received has been found in the + case state4:/* Get Mapped Objects Number */ + /* The cobId of the message received has been found in the dictionnary. */ offsetObjdict = d->firstIndex->PDO_RCV_MAP; lastIndex = d->lastIndex->PDO_RCV_MAP; @@ -303,16 +303,16 @@ MSG_ERR(0x1937, "Couldn't get mapping parameter : ", numMap + 1); return 0xFF; } - /*! Get the addresse of the mapped variable. */ - /*! detail of *pMappingParameter : */ - /*! The 16 hight bits contains the index, the medium 8 bits + /* Get the addresse of the mapped variable. */ + /* detail of *pMappingParameter : */ + /* The 16 hight bits contains the index, the medium 8 bits contains the subindex, */ - /*! and the lower 8 bits contains the size of the mapped + /* and the lower 8 bits contains the size of the mapped variable. */ Size = (UNS8)(*pMappingParameter); - /*! copy bit per bit in little endian */ + /* copy bit per bit in little endian */ CopyBits(Size, (UNS8*)&d->process_var.data[offset>>3], offset%8, 0, ((UNS8*)tmp), 0, 0); ByteSize = 1 + ((Size - 1) >> 3); /*1->8 => 1 ; 9->16 => @@ -332,30 +332,30 @@ MSG_WAR(0x3942, "Variable updated with value received by PDO cobid : ", m->cob_id.w); MSG_WAR(0x3943, " Mapped at index : ", (*pMappingParameter) >> 16); MSG_WAR(0x3944, " subindex : ", ((*pMappingParameter) >> 8 ) & 0xFF); - /*! MSG_WAR(0x3945, " data : ",*((UNS32*)pMappedAppObject)); */ + /* MSG_WAR(0x3945, " data : ",*((UNS32*)pMappedAppObject)); */ offset += Size; numMap++; - } /*! end loop while on mapped variables */ + } /* end loop while on mapped variables */ offset=0x00; numMap = 0; return 0; - }/*! end switch status*/ - }/*! end while*/ - }/*! end if Donnees */ + }/* end switch status*/ + }/* end while*/ + }/* end if Donnees */ else if ((*m).rtr == REQUEST ){ MSG_WAR(0x3946, "Receive a PDO request cobId : ", m->cob_id.w); status = state1; offsetObjdict = d->firstIndex->PDO_TRS; lastIndex = d->lastIndex->PDO_TRS; if(offsetObjdict) while( offsetObjdict <= lastIndex ){ - /*! study of all PDO stored in the objects dictionary */ + /* study of all PDO stored in the objects dictionary */ switch( status ){ - case state1:/*! check the CobId */ - /*! get CobId of the dictionary which match to the received PDO + case state1:/* check the CobId */ + /* get CobId of the dictionary which match to the received PDO */ pwCobId = (d->objdict + offsetObjdict)->pSubindex[1].pObject; if ( *pwCobId == (*m).cob_id.w ) { @@ -370,27 +370,27 @@ break; - case state4:/*! check transmission type (after request?) */ + case state4:/* check transmission type (after request?) */ pTransmissionType = d->objdict[offsetObjdict].pSubindex[2].pObject; if ( (*pTransmissionType == TRANS_RTR) || (*pTransmissionType == TRANS_RTR_SYNC ) || (*pTransmissionType == TRANS_EVENT) ) { status = state5; break; } else { - /*! The requested PDO is not to send on request. So, does + /* The requested PDO is not to send on request. So, does nothing. */ MSG_WAR(0x2947, "PDO is not to send on request : ", m->cob_id.w); return 0xFF; } - case state5:/*! get mapped objects number */ + case state5:/* get mapped objects number */ offsetObjdict = d->firstIndex->PDO_TRS_MAP; lastIndex = d->lastIndex->PDO_TRS_MAP; pMappingCount = (d->objdict + offsetObjdict + numPdo)->pSubindex[0].pObject; numMap = 0; while (numMap < *pMappingCount) { pMappingParameter = (d->objdict + offsetObjdict + numPdo)->pSubindex[numMap + 1].pObject; - /*! Get the mapped variable */ + /* Get the mapped variable */ Size = ((UNS8)(((*pMappingParameter) & 0xFF) >> 3)); objDict = getODentry( d, (UNS16)((*pMappingParameter) >> (UNS8)16), (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & 0xFF), @@ -405,13 +405,13 @@ d->process_var.count = offset; numMap++; - } /*! end while */ - PDOmGR( d, *pwCobId ); /*! Transmit the PDO */ + } /* end while */ + PDOmGR( d, *pwCobId ); /* Transmit the PDO */ return 0; - }/*! end switch status */ - }/*! end while */ - }/*! end if Requete */ + }/* end switch status */ + }/* end while */ + }/* end if Requete */ return 0; } @@ -429,49 +429,49 @@ **/ void CopyBits(UNS8 NbBits, UNS8* SrcByteIndex, UNS8 SrcBitIndex, UNS8 SrcBigEndian, UNS8* DestByteIndex, UNS8 DestBitIndex, UNS8 DestBigEndian) { - /*! This loop copy as many bits that it can each time, crossing*/ - /*! successively bytes*/ + /* This loop copy as many bits that it can each time, crossing*/ + /* successively bytes*/ // boundaries from LSB to MSB. while(NbBits > 0) { - /*! Bit missalignement between src and dest*/ + /* Bit missalignement between src and dest*/ INTEGER8 Vect = DestBitIndex - SrcBitIndex; - /*! We can now get src and align it to dest*/ + /* We can now get src and align it to dest*/ UNS8 Aligned = Vect>0 ? *SrcByteIndex << Vect : *SrcByteIndex >> -Vect; - /*! Compute the nb of bit we will be able to copy*/ + /* Compute the nb of bit we will be able to copy*/ UNS8 BoudaryLimit = (Vect>0 ? 8 - DestBitIndex : 8 - SrcBitIndex ); UNS8 BitsToCopy = BoudaryLimit > NbBits ? NbBits : BoudaryLimit; - /*! Create a mask that will serve in:*/ + /* Create a mask that will serve in:*/ UNS8 Mask = ((0xff << (DestBitIndex + BitsToCopy)) | (0xff >> (8 - DestBitIndex))); - /*! - Filtering src*/ + /* - Filtering src*/ UNS8 Filtered = Aligned & ~Mask; - /*! - and erase bits where we write, preserve where we don't*/ + /* - and erase bits where we write, preserve where we don't*/ *DestByteIndex &= Mask; - /*! Then write.*/ + /* Then write.*/ *DestByteIndex |= Filtered ; - /*!Compute next time cursors for src*/ - if((SrcBitIndex += BitsToCopy)>7)/*! cross boundary ?*/ + /*Compute next time cursors for src*/ + if((SrcBitIndex += BitsToCopy)>7)/* cross boundary ?*/ { - SrcBitIndex = 0;/*! First bit*/ - SrcByteIndex += (SrcBigEndian ? -1 : 1);/*! Next byte*/ - } - - - /*!Compute next time cursors for dest*/ + SrcBitIndex = 0;/* First bit*/ + SrcByteIndex += (SrcBigEndian ? -1 : 1);/* Next byte*/ + } + + + /*Compute next time cursors for dest*/ if((DestBitIndex += BitsToCopy)>7) { - DestBitIndex = 0;/*! First bit*/ - DestByteIndex += (DestBigEndian ? -1 : 1);/*! Next byte*/ - } - - /*!And decrement counter.*/ + DestBitIndex = 0;/* First bit*/ + DestByteIndex += (DestBigEndian ? -1 : 1);/* Next byte*/ + } + + /*And decrement counter.*/ NbBits -= BitsToCopy; } @@ -493,7 +493,7 @@ ** @return **/ UNS8 sendPDOevent( CO_Data* d, void * variable ) -{ /*! DO NOT USE MSG_ERR because the macro may send a PDO -> infinite +{ /* DO NOT USE MSG_ERR because the macro may send a PDO -> infinite loop if it fails.*/ UNS32 objDict = 0; UNS8 ind, sub_ind; @@ -502,7 +502,7 @@ UNS8 * pMappingCount = NULL; UNS32 * pMappingParameter = NULL; void * pMappedAppObject = NULL; - UNS8 * pTransmissionType = NULL; /*! pointer to the transmission + UNS8 * pTransmissionType = NULL; /* pointer to the transmission type */ UNS32 * pwCobId = NULL; UNS8 * pSize; @@ -519,8 +519,8 @@ status = state1; - /*! look for the index and subindex where the variable is mapped */ - /*! Then, send the pdo which contains the variable. */ + /* look for the index and subindex where the variable is mapped */ + /* Then, send the pdo which contains the variable. */ MSG_WAR (0x3960, "sendPDOevent", 0); offsetObjdictPrm = d->firstIndex->PDO_TRS; @@ -529,9 +529,9 @@ lastIndex = d->lastIndex->PDO_TRS_MAP; if (offsetObjdictPrm && offsetObjdict) - /*! Loop on PDO Transmit */ + /* Loop on PDO Transmit */ while(offsetObjdict <= lastIndex){ - /*! Check the transmission mode */ + /* Check the transmission mode */ pTransmissionType = d->objdict[offsetObjdictPrm].pSubindex[2].pObject; if (*pTransmissionType != TRANS_EVENT) { ind++; @@ -540,10 +540,10 @@ continue; } pMappingCount = d->objdict[offsetObjdict].pSubindex[0].pObject; - numMap = 1; /*! mapped variable */ + numMap = 1; /* mapped variable */ while (numMap <= *pMappingCount) { pMappingParameter = d->objdict[offsetObjdict].pSubindex[numMap].pObject; - /*! Get the variable */ + /* Get the variable */ objDict = getODentry( d, (UNS16)((*pMappingParameter) >> 16), (UNS8)(( (*pMappingParameter) >> (UNS8)8 ) & (UNS32)0x000000FF), @@ -562,17 +562,17 @@ MSG_WAR(0x3964, " subIndex : ", ((*pMappingParameter) >> 8 ) & 0x000000FF); buildPDO(d, 0x1800 + ind); - /*! Get the cobId */ + /* Get the cobId */ pwCobId = d->objdict[offsetObjdictPrm].pSubindex[1].pObject; - PDOmGR( d, *pwCobId ); /*! Send the PDO */ + PDOmGR( d, *pwCobId ); /* Send the PDO */ return 0; } numMap++; - } /*! End loop on mapped variable */ + } /* End loop on mapped variable */ ind++; offsetObjdict++; offsetObjdictPrm++; - } /*! End loop while on PDO */ + } /* End loop while on PDO */ MSG_WAR(0x2965, "Variable not found in a PDO to send on event", 0); return 0xFF; diff -r 003cc3c63855 -r f49e5a6b7804 src/sdo.c --- a/src/sdo.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/sdo.c Fri Jun 08 09:23:56 2007 +0200 @@ -170,7 +170,7 @@ { UNS8 j; - /** transfer structure initialization */ + /* transfer structure initialization */ for (j = 0 ; j < SDO_MAX_SIMULTANEOUS_TRANSFERTS ; j++) resetSDOline(d, j); } @@ -511,8 +511,8 @@ return 0xFF; } - /**get the server->client cobid*/ - if ( whoami == SDO_SERVER ) {/**case server. Easy because today only one server SDO is authorized in CanFestival*/ + /*get the server->client cobid*/ + if ( whoami == SDO_SERVER ) {/*case server. Easy because today only one server SDO is authorized in CanFestival*/ offset = d->firstIndex->SDO_SVR; if (offset == 0) { MSG_ERR(0x1A42, "SendSDO : No SDO server found", 0); @@ -521,8 +521,8 @@ pwCobId = d->objdict[offset].pSubindex[2].pObject; MSG_WAR(0x3A41, "I am server. cobId : ", *pwCobId); } - else { /**case client*/ - /** Get the client->server cobid.*/ + else { /*case client*/ + /* Get the client->server cobid.*/ UNS16 sdoNum = 0; offset = d->firstIndex->SDO_CLT; lastIndex = d->lastIndex->SDO_CLT; @@ -530,7 +530,7 @@ MSG_ERR(0x1A42, "SendSDO : No SDO client index found", 0); return 0xFF; } - /** First, have to find at the index where is defined the communication with the server node */ + /* First, have to find at the index where is defined the communication with the server node */ while (offset <= lastIndex){ MSG_WAR(0x3A43,"Reading index : ", 0x1280 + sdoNum); if (d->objdict[offset].bSubCount <= 3) { @@ -550,13 +550,13 @@ MSG_WAR (0x2A45, "No SDO client corresponds to the mesage to send to node ", sdo.nodeId); return 0xFF; } - /** Second, read the cobid client->server */ + /* Second, read the cobid client->server */ pwCobId = d->objdict[offset].pSubindex[1].pObject; } - /** message copy for sending */ + /* message copy for sending */ m.cob_id.w = *pwCobId; m.rtr = NOT_A_REQUEST; - /** the length of SDO must be 8 */ + /* the length of SDO must be 8 */ m.len = 8; for (i = 0 ; i < 8 ; i++) { m.data[i] = sdo.body.data[i]; @@ -609,13 +609,13 @@ { UNS8 err; UNS8 line; - UNS8 nbBytes; /** received or to be transmited. */ - UNS8 nodeId = 0; /** The node from which the SDO is received */ - UNS32 nodeId_32; /** node id in 32 bits, for temporary use */ + UNS8 nbBytes; /* received or to be transmited. */ + UNS8 nodeId = 0; /* The node from which the SDO is received */ + UNS32 nodeId_32; /* node id in 32 bits, for temporary use */ UNS32 *pNodeId = NULL; - UNS8 whoami = SDO_UNKNOWN; /** SDO_SERVER or SDO_CLIENT.*/ - UNS32 errorCode; /** while reading or writing in the local object dictionary.*/ - s_SDO sdo; /** SDO to transmit */ + UNS8 whoami = SDO_UNKNOWN; /* SDO_SERVER or SDO_CLIENT.*/ + UNS32 errorCode; /* while reading or writing in the local object dictionary.*/ + s_SDO sdo; /* SDO to transmit */ UNS16 index; UNS8 subIndex; UNS32 abortCode; @@ -626,8 +626,8 @@ MSG_WAR(0x3A60, "proceedSDO ", 0); whoami = SDO_UNKNOWN; - /** Looking for the cobId in the object dictionary. */ - /** Am-I a server ? */ + /* Looking for the cobId in the object dictionary. */ + /* Am-I a server ? */ offset = d->firstIndex->SDO_SVR; lastIndex = d->lastIndex->SDO_SVR; j = 0; @@ -640,16 +640,16 @@ if ( *pCobId == (*m).cob_id.w ) { whoami = SDO_SERVER; MSG_WAR(0x3A62, "proceedSDO. I am server. index : ", 0x1200 + j); - /** In case of server, the node id of the client may be unknown. So we put the index minus offset */ - /** 0x1200 where the cobid received is defined. */ + /* In case of server, the node id of the client may be unknown. So we put the index minus offset */ + /* 0x1200 where the cobid received is defined. */ nodeId = j; break; } j++; offset++; - } /** end while */ + } /* end while */ if (whoami == SDO_UNKNOWN) { - /** Am-I client ? */ + /* Am-I client ? */ offset = d->firstIndex->SDO_CLT; lastIndex = d->lastIndex->SDO_CLT; j = 0; @@ -658,10 +658,10 @@ MSG_ERR(0x1A63, "Subindex 3 not found at index ", 0x1280 + j); return 0xFF; } - /** a) Looking for the cobid received. */ + /* a) Looking for the cobid received. */ pCobId = d->objdict[offset].pSubindex[2].pObject; if (*pCobId == (*m).cob_id.w ) { - /** b) cobid found, so reading the node id of the server. */ + /* b) cobid found, so reading the node id of the server. */ pNodeId = d->objdict[offset].pSubindex[3].pObject; whoami = SDO_CLIENT; nodeId_32 = *pNodeId; @@ -675,10 +675,10 @@ } /* end while */ } if (whoami == SDO_UNKNOWN) { - return 0xFF;/** This SDO was not for us ! */ - } - - /** Test if the size of the SDO is ok */ + return 0xFF;/* This SDO was not for us ! */ + } + + /* Test if the size of the SDO is ok */ if ( (*m).len != 8) { MSG_ERR(0x1A67, "Error size SDO. CobId : ", (*m).cob_id.w); failedSDO(d, nodeId, whoami, 0, 0, SDOABT_GENERAL_ERROR); @@ -692,16 +692,16 @@ MSG_WAR(0x3A69, "I am SERVER. Received SDO cobId : ", (*m).cob_id.w); } - /** Testing the command specifier */ - /** Allowed : cs = 0, 1, 2, 3, 4. (= all except those for block tranfert). */ - /** cs = other : Not allowed -> abort. */ + /* Testing the command specifier */ + /* Allowed : cs = 0, 1, 2, 3, 4. (= all except those for block tranfert). */ + /* cs = other : Not allowed -> abort. */ switch (getSDOcs(m->data[0])) { case 0: - /** I am SERVER */ + /* I am SERVER */ if (whoami == SDO_SERVER) { - /** Receiving a download segment data. */ - /** A SDO transfert should have been yet initiated. */ + /* Receiving a download segment data. */ + /* A SDO transfert should have been yet initiated. */ err = getSDOlineOnUse( d, nodeId, whoami, &line ); if (!err) err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS; @@ -711,52 +711,52 @@ failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** Reset the wathdog */ + /* Reset the wathdog */ RestartSDO_TIMER(line) MSG_WAR(0x3A71, "Received SDO download segment defined at index 0x1200 + ", nodeId); index = d->transfers[line].index; subIndex = d->transfers[line].subIndex; - /** Toggle test. */ + /* Toggle test. */ if (d->transfers[line].toggle != getSDOt(m->data[0])) { MSG_ERR(0x1A72, "SDO error : Toggle error : ", getSDOt(m->data[0])); failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED); return 0xFF; } - /** Nb of data to be downloaded */ + /* Nb of data to be downloaded */ nbBytes = 7 - getSDOn3(m->data[0]); - /** Store the data in the transfert structure. */ + /* Store the data in the transfert structure. */ err = SDOtoLine(d, line, nbBytes, (*m).data + 1); if (err) { failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR); return 0xFF; } - /** Sending the SDO response, CS = 1 */ - sdo.nodeId = *d->bDeviceNodeId; /** The node id of the server, (here it is the sender). */ + /* Sending the SDO response, CS = 1 */ + sdo.nodeId = *d->bDeviceNodeId; /* The node id of the server, (here it is the sender). */ sdo.body.data[0] = (1 << 5) | (d->transfers[line].toggle << 4); for (i = 1 ; i < 8 ; i++) sdo.body.data[i] = 0; MSG_WAR(0x3A73, "SDO. Send response to download request defined at index 0x1200 + ", nodeId); sendSDO(d, whoami, sdo); - /** Inverting the toggle for the next segment. */ + /* Inverting the toggle for the next segment. */ d->transfers[line].toggle = ! d->transfers[line].toggle & 1; - /** If it was the last segment, */ + /* If it was the last segment, */ if (getSDOc(m->data[0])) { - /** Transfering line data to object dictionary. */ - /** The code does not use the "d" of initiate frame. So it is safe if e=s=0 */ + /* Transfering line data to object dictionary. */ + /* The code does not use the "d" of initiate frame. So it is safe if e=s=0 */ errorCode = SDOlineToObjdict(d, line); if (errorCode) { MSG_ERR(0x1A54, "SDO error : Unable to copy the data in the object dictionary", 0); failedSDO(d, nodeId, whoami, index, subIndex, errorCode); return 0xFF; } - /** Release of the line */ + /* Release of the line */ resetSDOline(d, line); MSG_WAR(0x3A74, "SDO. End of download defined at index 0x1200 + ", nodeId); } } /* end if SERVER */ else { /* if CLIENT */ - /** I am CLIENT */ - /** It is a request for a previous upload segment. We should find a line opened for this.*/ + /* I am CLIENT */ + /* It is a request for a previous upload segment. We should find a line opened for this.*/ err = getSDOlineOnUse( d, nodeId, whoami, &line); if (!err) err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS; @@ -765,38 +765,38 @@ failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** Reset the wathdog */ + /* Reset the wathdog */ RestartSDO_TIMER(line) index = d->transfers[line].index; subIndex = d->transfers[line].subIndex; - /** test of the toggle; */ + /* test of the toggle; */ if (d->transfers[line].toggle != getSDOt(m->data[0])) { MSG_ERR(0x1A76, "SDO error : Received segment response Toggle error. from nodeId", nodeId); failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED); return 0xFF; } - /** nb of data to be uploaded */ + /* nb of data to be uploaded */ nbBytes = 7 - getSDOn3(m->data[0]); - /** Storing the data in the line structure. */ + /* Storing the data in the line structure. */ err = SDOtoLine(d, line, nbBytes, (*m).data + 1); if (err) { failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR); return 0xFF; } - /** Inverting the toggle for the next segment. */ + /* Inverting the toggle for the next segment. */ d->transfers[line].toggle = ! d->transfers[line].toggle & 1; - /** If it was the last segment,*/ + /* If it was the last segment,*/ if ( getSDOc(m->data[0])) { - /** Put in state finished */ - /** The code is safe for the case e=s=0 in initiate frame. */ + /* Put in state finished */ + /* The code is safe for the case e=s=0 in initiate frame. */ StopSDO_TIMER(line) d->transfers[line].state = SDO_FINISHED; if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId); MSG_WAR(0x3A77, "SDO. End of upload from node : ", nodeId); } - else { /** more segments to receive */ - /** Sending the request for the next segment. */ + else { /* more segments to receive */ + /* Sending the request for the next segment. */ sdo.nodeId = nodeId; sdo.body.data[0] = (3 << 5) | (d->transfers[line].toggle << 4); for (i = 1 ; i < 8 ; i++) @@ -808,8 +808,8 @@ break; case 1: - /** I am SERVER */ - /** Receive of an initiate download */ + /* I am SERVER */ + /* Receive of an initiate download */ if (whoami == SDO_SERVER) { index = getSDOindex(m->data[1],m->data[2]); subIndex = getSDOsubIndex(m->data[3]); @@ -818,15 +818,15 @@ MSG_WAR(0x3A80, "Writing at index : ", index); MSG_WAR(0x3A80, "Writing at subIndex : ", subIndex); - /** Search if a SDO transfert have been yet initiated */ + /* Search if a SDO transfert have been yet initiated */ err = getSDOlineOnUse( d, nodeId, whoami, &line ); if (! err) { MSG_ERR(0x1A81, "SDO error : Transmission yet started.", 0); failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** No line on use. Great ! */ - /** Try to open a new line. */ + /* No line on use. Great ! */ + /* Try to open a new line. */ err = getSDOfreeLine( d, whoami, &line ); if (err) { MSG_ERR(0x1A82, "SDO error : No line free, too many SDO in progress. Aborted.", 0); @@ -835,10 +835,10 @@ } initSDOline(d, line, nodeId, index, subIndex, SDO_DOWNLOAD_IN_PROGRESS); - if (getSDOe(m->data[0])) { /** If SDO expedited */ - /** nb of data to be downloaded */ + if (getSDOe(m->data[0])) { /* If SDO expedited */ + /* nb of data to be downloaded */ nbBytes = 4 - getSDOn2(m->data[0]); - /** Storing the data in the line structure. */ + /* Storing the data in the line structure. */ d->transfers[line].count = nbBytes; err = SDOtoLine(d, line, nbBytes, (*m).data + 4); @@ -847,23 +847,23 @@ return 0xFF; } - /** SDO expedited -> transfert finished. Data can be stored in the dictionary. */ - /**The line will be reseted when it is downloading in the dictionary. */ + /* SDO expedited -> transfert finished. Data can be stored in the dictionary. */ + /*The line will be reseted when it is downloading in the dictionary. */ MSG_WAR(0x3A83, "SDO Initiate Download is an expedited transfert. Finished.: ", nodeId); - /** Transfering line data to object dictionary. */ + /* Transfering line data to object dictionary. */ errorCode = SDOlineToObjdict(d, line); if (errorCode) { MSG_ERR(0x1A84, "SDO error : Unable to copy the data in the object dictionary", 0); failedSDO(d, nodeId, whoami, index, subIndex, errorCode); return 0xFF; } - /** Release of the line. */ + /* Release of the line. */ resetSDOline(d, line); } - else {/** So, if it is not an expedited transfert */ + else {/* So, if it is not an expedited transfert */ if (getSDOs(m->data[0])) { - /** TODO : if e and s = 0, not reading m->data[4] but put nbBytes = 0 */ - nbBytes = m->data[4]; /** Transfert limited to 255 bytes. */ + /* TODO : if e and s = 0, not reading m->data[4] but put nbBytes = 0 */ + nbBytes = m->data[4]; /* Transfert limited to 255 bytes. */ err = setSDOlineRestBytes(d, nodeId, nbBytes); if (err) { failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR); @@ -871,8 +871,8 @@ } } } - /**Sending a SDO, cs=3*/ - sdo.nodeId = *d->bDeviceNodeId; /** The node id of the server, (here it is the sender).*/ + /*Sending a SDO, cs=3*/ + sdo.nodeId = *d->bDeviceNodeId; /* The node id of the server, (here it is the sender).*/ sdo.body.data[0] = 3 << 5; sdo.body.data[1] = index & 0xFF; /* LSB */ sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */ @@ -882,8 +882,8 @@ sendSDO(d, whoami, sdo); } /* end if I am SERVER */ else { - /** I am CLIENT */ - /** It is a response for a previous download segment. We should find a line opened for this. */ + /* I am CLIENT */ + /* It is a response for a previous download segment. We should find a line opened for this. */ err = getSDOlineOnUse( d, nodeId, whoami, &line); if (!err) err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS; @@ -892,18 +892,18 @@ failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** Reset the wathdog */ + /* Reset the wathdog */ RestartSDO_TIMER(line) index = d->transfers[line].index; subIndex = d->transfers[line].subIndex; - /** test of the toggle; */ + /* test of the toggle; */ if (d->transfers[line].toggle != getSDOt(m->data[0])) { MSG_ERR(0x1A86, "SDO error : Received segment response Toggle error. from nodeId", nodeId); failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED); return 0xFF; } - /** End transmission or downloading next segment. We need to know if it will be the last one. */ + /* End transmission or downloading next segment. We need to know if it will be the last one. */ getSDOlineRestBytes(d, line, &nbBytes); if (nbBytes == 0) { MSG_WAR(0x3A87, "SDO End download. segment response received. OK. from nodeId", nodeId); @@ -912,10 +912,10 @@ if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId); return 0x00; } - /** At least one transfer to send. */ + /* At least one transfer to send. */ if (nbBytes > 7) { - /** several segments to download.*/ - /** code to send the next segment. (cs = 0; c = 0) */ + /* several segments to download.*/ + /* code to send the next segment. (cs = 0; c = 0) */ d->transfers[line].toggle = ! d->transfers[line].toggle & 1; sdo.nodeId = nodeId; /* The server node Id; */ sdo.body.data[0] = (d->transfers[line].toggle << 4); @@ -926,8 +926,8 @@ } } else { - /** Last segment. */ - /** code to send the last segment. (cs = 0; c = 1)*/ + /* Last segment. */ + /* code to send the last segment. (cs = 0; c = 1)*/ d->transfers[line].toggle = ! d->transfers[line].toggle & 1; sdo.nodeId = nodeId; /* The server node Id; */ sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1; @@ -941,12 +941,12 @@ } MSG_WAR(0x3A88, "SDO sending download segment to nodeId", nodeId); sendSDO(d, whoami, sdo); - } /** end if I am a CLIENT */ + } /* end if I am a CLIENT */ break; case 2: - /** I am SERVER */ - /** Receive of an initiate upload.*/ + /* I am SERVER */ + /* Receive of an initiate upload.*/ if (whoami == SDO_SERVER) { index = getSDOindex(m->data[1],m->data[2]); subIndex = getSDOsubIndex(m->data[3]); @@ -954,7 +954,7 @@ nodeId); MSG_WAR(0x3A90, "Reading at index : ", index); MSG_WAR(0x3A91, "Reading at subIndex : ", subIndex); - /** Search if a SDO transfert have been yet initiated*/ + /* Search if a SDO transfert have been yet initiated*/ err = getSDOlineOnUse( d, nodeId, whoami, &line ); if (! err) { MSG_ERR(0x1A92, "SDO error : Transmission yet started at line : ", line); @@ -962,8 +962,8 @@ failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** No line on use. Great !*/ - /** Try to open a new line.*/ + /* No line on use. Great !*/ + /* Try to open a new line.*/ err = getSDOfreeLine( d, whoami, &line ); if (err) { MSG_ERR(0x1A71, "SDO error : No line free, too many SDO in progress. Aborted.", 0); @@ -971,7 +971,7 @@ return 0xFF; } initSDOline(d, line, nodeId, index, subIndex, SDO_UPLOAD_IN_PROGRESS); - /** Transfer data from dictionary to the line structure. */ + /* Transfer data from dictionary to the line structure. */ errorCode = objdictToSDOline(d, line); if (errorCode) { @@ -980,26 +980,26 @@ failedSDO(d, nodeId, whoami, index, subIndex, errorCode); return 0xFF; } - /** Preparing the response.*/ - getSDOlineRestBytes(d, line, &nbBytes); /** Nb bytes to transfer ? */ - sdo.nodeId = nodeId; /** The server node Id; */ + /* Preparing the response.*/ + getSDOlineRestBytes(d, line, &nbBytes); /* Nb bytes to transfer ? */ + sdo.nodeId = nodeId; /* The server node Id; */ if (nbBytes > 4) { - /** normal transfert. (segmented). */ - /** code to send the initiate upload response. (cs = 2) */ + /* normal transfert. (segmented). */ + /* code to send the initiate upload response. (cs = 2) */ sdo.body.data[0] = (2 << 5) | 1; sdo.body.data[1] = index & 0xFF; /* LSB */ sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */ sdo.body.data[3] = subIndex; sdo.body.data[4] = nbBytes; /* Limitation of canfestival2 : Max tranfert is 256 bytes.*/ - /** It takes too much memory to upgrate to 2^32 because the size of data is also coded */ - /** in the object dictionary, at every index and subindex. */ + /* It takes too much memory to upgrate to 2^32 because the size of data is also coded */ + /* in the object dictionary, at every index and subindex. */ for (i = 5 ; i < 8 ; i++) sdo.body.data[i] = 0; MSG_WAR(0x3A95, "SDO. Sending normal upload initiate response defined at index 0x1200 + ", nodeId); sendSDO(d, whoami, sdo); } else { - /** Expedited upload. (cs = 2 ; e = 1) */ + /* Expedited upload. (cs = 2 ; e = 1) */ sdo.body.data[0] = (2 << 5) | ((4 - nbBytes) << 2) | 3; sdo.body.data[1] = index & 0xFF; /* LSB */ sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */ @@ -1014,14 +1014,14 @@ MSG_WAR(0x3A96, "SDO. Sending expedited upload initiate response defined at index 0x1200 + ", nodeId); sendSDO(d, whoami, sdo); - /** Release the line.*/ + /* Release the line.*/ resetSDOline(d, line); } - } /** end if I am SERVER*/ + } /* end if I am SERVER*/ else { - /** I am CLIENT */ - /** It is the response for the previous initiate upload request.*/ - /** We should find a line opened for this. */ + /* I am CLIENT */ + /* It is the response for the previous initiate upload request.*/ + /* We should find a line opened for this. */ err = getSDOlineOnUse( d, nodeId, whoami, &line); if (!err) err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS; @@ -1030,21 +1030,21 @@ failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** Reset the wathdog */ + /* Reset the wathdog */ RestartSDO_TIMER(line) index = d->transfers[line].index; subIndex = d->transfers[line].subIndex; if (getSDOe(m->data[0])) { /* If SDO expedited */ - /** nb of data to be uploaded */ + /* nb of data to be uploaded */ nbBytes = 4 - getSDOn2(m->data[0]); - /** Storing the data in the line structure. */ + /* Storing the data in the line structure. */ err = SDOtoLine(d, line, nbBytes, (*m).data + 4); if (err) { failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR); return 0xFF; } - /** SDO expedited -> transfert finished. data are available via getReadResultNetworkDict(). */ + /* SDO expedited -> transfert finished. data are available via getReadResultNetworkDict(). */ MSG_WAR(0x3A98, "SDO expedited upload finished. Response received from node : ", nodeId); StopSDO_TIMER(line) d->transfers[line].count = nbBytes; @@ -1052,17 +1052,17 @@ if(d->transfers[line].Callback) (*d->transfers[line].Callback)(d,nodeId); return 0; } - else { /** So, if it is not an expedited transfert */ - /** Storing the nb of data to receive. */ + else { /* So, if it is not an expedited transfert */ + /* Storing the nb of data to receive. */ if (getSDOs(m->data[0])) { - nbBytes = m->data[4]; /** Remember the limitation to 255 bytes to transfert */ + nbBytes = m->data[4]; /* Remember the limitation to 255 bytes to transfert */ err = setSDOlineRestBytes(d, line, nbBytes); if (err) { failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR); return 0xFF; } } - /** Requesting next segment. (cs = 3) */ + /* Requesting next segment. (cs = 3) */ sdo.nodeId = nodeId; sdo.body.data[0] = 3 << 5; for (i = 1 ; i < 8 ; i++) @@ -1070,14 +1070,14 @@ MSG_WAR(0x3A99, "SDO. Sending upload segment request to node : ", nodeId); sendSDO(d, whoami, sdo); } - } /** End if CLIENT */ + } /* End if CLIENT */ break; case 3: - /** I am SERVER */ + /* I am SERVER */ if (whoami == SDO_SERVER) { - /** Receiving a upload segment. */ - /** A SDO transfert should have been yet initiated. */ + /* Receiving a upload segment. */ + /* A SDO transfert should have been yet initiated. */ err = getSDOlineOnUse( d, nodeId, whoami, &line ); if (!err) err = d->transfers[line].state != SDO_UPLOAD_IN_PROGRESS; @@ -1087,22 +1087,22 @@ failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** Reset the wathdog */ + /* Reset the wathdog */ RestartSDO_TIMER(line) MSG_WAR(0x3AA1, "Received SDO upload segment defined at index 0x1200 + ", nodeId); index = d->transfers[line].index; subIndex = d->transfers[line].subIndex; - /** Toggle test.*/ + /* Toggle test.*/ if (d->transfers[line].toggle != getSDOt(m->data[0])) { MSG_ERR(0x1AA2, "SDO error : Toggle error : ", getSDOt(m->data[0])); failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_TOGGLE_NOT_ALTERNED); return 0xFF; } - /** Uploading next segment. We need to know if it will be the last one. */ + /* Uploading next segment. We need to know if it will be the last one. */ getSDOlineRestBytes(d, line, &nbBytes); if (nbBytes > 7) { - /** The segment to transfer is not the last one.*/ - /** code to send the next segment. (cs = 0; c = 0) */ + /* The segment to transfer is not the last one.*/ + /* code to send the next segment. (cs = 0; c = 0) */ sdo.nodeId = nodeId; /* The server node Id; */ sdo.body.data[0] = (d->transfers[line].toggle << 4); err = lineToSDO(d, line, 7, sdo.body.data + 1); @@ -1110,14 +1110,14 @@ failedSDO(d, nodeId, whoami, index, subIndex, SDOABT_GENERAL_ERROR); return 0xFF; } - /** Inverting the toggle for the next tranfert. */ + /* Inverting the toggle for the next tranfert. */ d->transfers[line].toggle = ! d->transfers[line].toggle & 1; MSG_WAR(0x3AA3, "SDO. Sending upload segment defined at index 0x1200 + ", nodeId); sendSDO(d, whoami, sdo); } else { - /** Last segment. */ - /** code to send the last segment. (cs = 0; c = 1) */ + /* Last segment. */ + /* code to send the last segment. (cs = 0; c = 1) */ sdo.nodeId = nodeId; /** The server node Id; */ sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1; err = lineToSDO(d, line, nbBytes, sdo.body.data + 1); @@ -1129,14 +1129,14 @@ sdo.body.data[i] = 0; MSG_WAR(0x3AA4, "SDO. Sending last upload segment defined at index 0x1200 + ", nodeId); sendSDO(d, whoami, sdo); - /** Release the line */ + /* Release the line */ resetSDOline(d, line); } } /* end if SERVER*/ else { - /** I am CLIENT */ - /** It is the response for the previous initiate download request. */ - /** We should find a line opened for this. */ + /* I am CLIENT */ + /* It is the response for the previous initiate download request. */ + /* We should find a line opened for this. */ err = getSDOlineOnUse( d, nodeId, whoami, &line); if (!err) err = d->transfers[line].state != SDO_DOWNLOAD_IN_PROGRESS; @@ -1145,7 +1145,7 @@ failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR); return 0xFF; } - /** Reset the watchdog */ + /* Reset the watchdog */ RestartSDO_TIMER(line) index = d->transfers[line].index; subIndex = d->transfers[line].subIndex; @@ -1159,8 +1159,8 @@ return 0x00; } if (nbBytes > 7) { - /** more than one request to send */ - /** code to send the next segment. (cs = 0; c = 0) */ + /* more than one request to send */ + /* code to send the next segment. (cs = 0; c = 0) */ sdo.nodeId = nodeId; /** The server node Id; */ sdo.body.data[0] = (d->transfers[line].toggle << 4); err = lineToSDO(d, line, 7, sdo.body.data + 1); @@ -1170,9 +1170,9 @@ } } else { - /** Last segment.*/ - /** code to send the last segment. (cs = 0; c = 1) */ - sdo.nodeId = nodeId; /** The server node Id; */ + /* Last segment.*/ + /* code to send the last segment. (cs = 0; c = 1) */ + sdo.nodeId = nodeId; /* The server node Id; */ sdo.body.data[0] = (d->transfers[line].toggle << 4) | ((7 - nbBytes) << 1) | 1; err = lineToSDO(d, line, nbBytes, sdo.body.data + 1); if (err) { @@ -1193,8 +1193,8 @@ ((UNS32)m->data[5] << 8) | ((UNS32)m->data[6] << 16) | ((UNS32)m->data[7] << 24); - /** Received SDO abort. */ - /** Looking for the line concerned. */ + /* Received SDO abort. */ + /* Looking for the line concerned. */ if (whoami == SDO_SERVER) { err = getSDOlineOnUse( d, nodeId, whoami, &line ); if (!err) { @@ -1203,13 +1203,13 @@ } else MSG_WAR(0x3AA9, "SD0. Received SDO abort. No line found. Code : ", abortCode); - /** Tips : The end user has no way to know that the server node has received an abort SDO. */ - /** Its is ok, I think.*/ + /* Tips : The end user has no way to know that the server node has received an abort SDO. */ + /* Its is ok, I think.*/ } - else { /** If I am CLIENT */ + else { /* If I am CLIENT */ err = getSDOlineOnUse( d, nodeId, whoami, &line ); if (!err) { - /** The line *must* be released by the core program. */ + /* The line *must* be released by the core program. */ StopSDO_TIMER(line) d->transfers[line].state = SDO_ABORTED_RCV; d->transfers[line].abortCode = abortCode; @@ -1221,7 +1221,7 @@ } break; default: - /** Error : Unknown cs */ + /* Error : Unknown cs */ MSG_ERR(0x1AB2, "SDO. Received unknown command specifier : ", getSDOcs(m->data[0])); return 0xFF; @@ -1262,19 +1262,19 @@ MSG_WAR(0x3AC2, " subIndex : ", subIndex); MSG_WAR(0x3AC3, " nb bytes : ", count); - /** Verify that there is no SDO communication yet. */ + /* Verify that there is no SDO communication yet. */ err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line); if (!err) { MSG_ERR(0x1AC4, "SDO error : Communication yet established. with node : ", nodeId); return 0xFF; } - /** Taking the line ... */ + /* Taking the line ... */ err = getSDOfreeLine( d, SDO_CLIENT, &line ); if (err) { MSG_ERR(0x1AC5, "SDO error : No line free, too many SDO in progress. Aborted for node : ", nodeId); return (0xFF); } - /** Check which SDO to use to communicate with the node */ + /* Check which SDO to use to communicate with the node */ offset = d->firstIndex->SDO_CLT; lastIndex = d->lastIndex->SDO_CLT; if (offset == 0) { @@ -1287,7 +1287,7 @@ MSG_ERR(0x1AC8, "Subindex 3 not found at index ", 0x1280 + i); return 0xFF; } - /** looking for the nodeId server */ + /* looking for the nodeId server */ pNodeIdServer = d->objdict[offset].pSubindex[3].pObject; nodeIdServer = *pNodeIdServer; MSG_WAR(0x1AD2, "index : ", 0x1280 + i); @@ -1309,7 +1309,7 @@ d->transfers[line].count = count; d->transfers[line].dataType = dataType; - /** Copy data to transfers structure. */ + /* Copy data to transfers structure. */ for (j = 0 ; j < count ; j++) { # ifdef CANOPEN_BIG_ENDIAN if (dataType == 0 && endianize) @@ -1320,9 +1320,9 @@ d->transfers[line].data[j] = ((char *)data)[j]; # endif } - /** Send the SDO to the server. Initiate download, cs=1. */ + /* Send the SDO to the server. Initiate download, cs=1. */ sdo.nodeId = nodeId; - if (count <= 4) { /** Expedited transfert */ + if (count <= 4) { /* Expedited transfert */ sdo.body.data[0] = (1 << 5) | ((4 - count) << 2) | 3; for (i = 4 ; i < 8 ; i++) sdo.body.data[i] = d->transfers[line].data[i - 4]; @@ -1330,7 +1330,7 @@ } else { /** Normal transfert */ sdo.body.data[0] = (1 << 5) | 1; - sdo.body.data[4] = count; /** nb of byte to transmit. Max = 255. (canfestival2 limitation). */ + sdo.body.data[4] = count; /* nb of byte to transmit. Max = 255. (canfestival2 limitation). */ for (i = 5 ; i < 8 ; i++) sdo.body.data[i] = 0; } @@ -1343,7 +1343,7 @@ err = sendSDO(d, SDO_CLIENT, sdo); if (err) { MSG_ERR(0x1AD1, "SDO. Error while sending SDO to node : ", nodeId); - /** release the line */ + /* release the line */ resetSDOline(d, line); return 0xFF; } @@ -1419,13 +1419,13 @@ MSG_WAR(0x3AD7, " subIndex : ", subIndex); - /** Verify that there is no SDO communication yet. */ + /* Verify that there is no SDO communication yet. */ err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line); if (!err) { MSG_ERR(0x1AD8, "SDO error : Communication yet established. with node : ", nodeId); return 0xFF; } - /** Taking the line ... */ + /* Taking the line ... */ err = getSDOfreeLine( d, SDO_CLIENT, &line ); if (err) { MSG_ERR(0x1AD9, "SDO error : No line free, too many SDO in progress. Aborted for node : ", nodeId); @@ -1434,7 +1434,7 @@ else MSG_WAR(0x3AE0, "Transmission on line : ", line); - /** Check which SDO to use to communicate with the node */ + /* Check which SDO to use to communicate with the node */ offset = d->firstIndex->SDO_CLT; lastIndex = d->lastIndex->SDO_CLT; if (offset == 0) { @@ -1447,7 +1447,7 @@ MSG_ERR(0x1AE2, "Subindex 3 not found at index ", 0x1280 + i); return 0xFF; } - /** looking for the nodeId server */ + /* looking for the nodeId server */ pNodeIdServer = d->objdict[offset].pSubindex[3].pObject; nodeIdServer = *pNodeIdServer; @@ -1466,7 +1466,7 @@ initSDOline(d, line, nodeId, index, subIndex, SDO_UPLOAD_IN_PROGRESS); getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line); sdo.nodeId = nodeId; - /** Send the SDO to the server. Initiate upload, cs=2. */ + /* Send the SDO to the server. Initiate upload, cs=2. */ d->transfers[line].dataType = dataType; sdo.body.data[0] = (2 << 5); sdo.body.data[1] = index & 0xFF; /* LSB */ @@ -1537,7 +1537,7 @@ UNS8 line; * size = 0; - /** Looking for the line tranfert. */ + /* Looking for the line tranfert. */ err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line); if (err) { MSG_ERR(0x1AF0, "SDO error : No line found for communication with node : ", nodeId); @@ -1546,13 +1546,13 @@ if (d->transfers[line].state != SDO_FINISHED) return d->transfers[line].state; - /** Transfert is finished. Put the value in the data. */ + /* Transfert is finished. Put the value in the data. */ * size = (UNS8)d->transfers[line].count; for ( i = 0 ; i < *size ; i++) { # ifdef CANOPEN_BIG_ENDIAN if (d->transfers[line].dataType != visible_string) ( (char *) data)[*size - 1 - i] = d->transfers[line].data[i]; - else /** String of bytes. */ + else /* String of bytes. */ ( (char *) data)[i] = d->transfers[line].data[i]; # else ( (char *) data)[i] = d->transfers[line].data[i]; @@ -1576,7 +1576,7 @@ UNS8 err; * abortCode = 0; - /** Looking for the line tranfert. */ + /* Looking for the line tranfert. */ err = getSDOlineOnUse(d, nodeId, SDO_CLIENT, &line); if (err) { MSG_ERR(0x1AF1, "SDO error : No line found for communication with node : ", nodeId); diff -r 003cc3c63855 -r f49e5a6b7804 src/states.c --- a/src/states.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/states.c Fri Jun 08 09:23:56 2007 +0200 @@ -70,7 +70,7 @@ if(d->CurrentCommunicationState.csSYNC) proceedSYNC(d,m); break; - /** case TIME_STAMP: */ + /* case TIME_STAMP: */ case PDO1tx: case PDO1rx: case PDO2tx: @@ -146,11 +146,11 @@ case Initialisation: { s_state_communication newCommunicationState = {1, 0, 0, 0, 0, 0}; - /** This will force a second loop for the state switch */ + /* This will force a second loop for the state switch */ d->nodeState = Initialisation; newState = Pre_operational; switchCommunicationState(d, &newCommunicationState); - /** call user app related state func. */ + /* call user app related state func. */ (*d->initialisation)(); } @@ -208,7 +208,7 @@ default: return 0xFF; - }/** end switch case */ + }/* end switch case */ } return 0; @@ -236,15 +236,15 @@ { UNS16 offset = d->firstIndex->SDO_SVR; if(offset){ - /** cob_id_client = 0x600 + nodeId; */ + /* cob_id_client = 0x600 + nodeId; */ *(UNS32*)d->objdict[offset].pSubindex[1].pObject = 0x600 + nodeId; - /** cob_id_server = 0x580 + nodeId; */ + /* cob_id_server = 0x580 + nodeId; */ *(UNS32*)d->objdict[offset].pSubindex[2].pObject = 0x580 + nodeId; - /** node Id client. As we do not know the value, we put the node Id Server */ - /** *(UNS8*)d->objdict[offset].pSubindex[3].pObject = nodeId; */ + /* node Id client. As we do not know the value, we put the node Id Server */ + /* *(UNS8*)d->objdict[offset].pSubindex[3].pObject = nodeId; */ } - /** + /* Initialize the server(s) SDO parameters Remember that only one SDO server is allowed, defined at index 0x1200 @@ -278,7 +278,7 @@ offset ++; } } - /** bDeviceNodeId is defined in the object dictionary. */ + /* bDeviceNodeId is defined in the object dictionary. */ *d->bDeviceNodeId = nodeId; } diff -r 003cc3c63855 -r f49e5a6b7804 src/sync.c --- a/src/sync.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/sync.c Fri Jun 08 09:23:56 2007 +0200 @@ -145,11 +145,11 @@ prp_j; const UNS8 * pMappingCount = NULL; /* count of mapped objects...*/ - /** pointer to the var which is mapped to a pdo */ + /* pointer to the var which is mapped to a pdo */ /* void * pMappedAppObject = NULL; */ - /** pointer fo the var which holds the mapping parameter of an mapping entry */ + /* pointer fo the var which holds the mapping parameter of an mapping entry */ UNS32 * pMappingParameter = NULL; - /** pointer to the transmissiontype...*/ + /* pointer to the transmissiontype...*/ UNS8 * pTransmissionType = NULL; UNS32 * pwCobId = NULL; @@ -173,12 +173,12 @@ (*d->post_sync)(); - /** only operational state allows PDO transmission */ + /* only operational state allows PDO transmission */ if( d->nodeState != Operational ) return 0; - /** So, the node is in operational state */ - /** study all PDO stored in the objects dictionary */ + /* So, the node is in operational state */ + /* study all PDO stored in the objects dictionary */ offsetObjdict = d->firstIndex->PDO_TRS; lastIndex = d->lastIndex->PDO_TRS; @@ -187,7 +187,7 @@ if(offsetObjdict) while( offsetObjdict <= lastIndex) { switch( status ) { - case state3: /** get the PDO transmission type */ + case state3: /* get the PDO transmission type */ if (d->objdict[offsetObjdict].bSubCount <= 2) { MSG_ERR(0x1004, "Subindex 2 not found at index ", 0x1800 + pdoNum); return 0xFF; @@ -196,8 +196,8 @@ MSG_WAR(0x3005, "Reading PDO at index : ", 0x1800 + pdoNum); status = state4; break; - case state4: /** check if transmission type is after (this) SYNC */ - /** The message may not be transmited every SYNC but every n SYNC */ + case state4: /* check if transmission type is after (this) SYNC */ + /* The message may not be transmited every SYNC but every n SYNC */ if( (*pTransmissionType >= TRANS_SYNC_MIN) && (*pTransmissionType <= TRANS_SYNC_MAX) && (++d->count_sync[pdoNum] == *pTransmissionType) ) { d->count_sync[pdoNum] = 0; @@ -214,23 +214,23 @@ status = state11; break; } - case state5: /** get PDO CobId */ + case state5: /* get PDO CobId */ pwCobId = d->objdict[offsetObjdict].pSubindex[1].pObject; MSG_WAR(0x3009, " PDO CobId is : ", *pwCobId); status = state7; break; - case state7: /** get mapped objects number to transmit with this PDO */ + case state7: /* get mapped objects number to transmit with this PDO */ pMappingCount = d->objdict[offsetObjdictMap].pSubindex[0].pObject; MSG_WAR(0x300D, " Number of objects mapped : ",*pMappingCount ); status = state8; - case state8: /** get mapping parameters */ + case state8: /* get mapping parameters */ pMappingParameter = d->objdict[offsetObjdictMap].pSubindex[prp_j + 1].pObject; MSG_WAR(0x300F, " got mapping parameter : ", *pMappingParameter); MSG_WAR(0x3050, " at index : ", 0x1A00 + pdoNum); MSG_WAR(0x3051, " sub-index : ", prp_j + 1); status = state9; - case state9: /** get data to transmit */ + case state9: /* get data to transmit */ { UNS8 ByteSize; UNS8 tmp[]= {0,0,0,0,0,0,0,0}; @@ -239,7 +239,7 @@ Size = (UNS8)(*pMappingParameter); /* Size in bits */ ByteSize = 1 + ((Size - 1) >> 3); /*1->8 => 1 ; 9->16 => 2, ... */ objDict = getODentry(d, index, subIndex, tmp, &ByteSize, &dataType, 0 ); - /** copy bit per bit in little endian*/ + /* copy bit per bit in little endian*/ CopyBits(Size, ((UNS8*)tmp), 0 , 0, (UNS8*)&d->process_var.data[offset>>3], offset%8, 0); } if( objDict != OD_SUCCESSFUL ){ @@ -253,7 +253,7 @@ status = state10; break; - case state10: /** loop to get all the data to transmit */ + case state10: /* loop to get all the data to transmit */ if( prp_j < *pMappingCount ){ MSG_WAR(0x3014, " next variable mapped : ", prp_j); status = state8; diff -r 003cc3c63855 -r f49e5a6b7804 src/timer.c --- a/src/timer.c Fri Jun 08 09:02:43 2007 +0200 +++ b/src/timer.c Fri Jun 08 09:23:56 2007 +0200 @@ -60,14 +60,14 @@ TIMER_HANDLE i; TIMER_HANDLE row_number = TIMER_NONE; - /** in order to decide new timer setting we have to run over all timer rows */ + /* in order to decide new timer setting we have to run over all timer rows */ for(i=0; i <= last_timer_raw + 1 && i < MAX_NB_TIMER; i++) { s_timer_entry *row = (timers+i); - if (callback && /** if something to store */ - row->state == TIMER_FREE) /** and empty row */ - { /** just store */ + if (callback && /* if something to store */ + row->state == TIMER_FREE) /* and empty row */ + { /* just store */ row->callback = callback; row->d = d; row->id = id; @@ -79,24 +79,24 @@ } } - if (row_number != TIMER_NONE) /** if successfull **/ + if (row_number != TIMER_NONE) /* if successfull **/ { TIMEVAL real_timer_value; TIMEVAL elapsed_time; if (row_number == last_timer_raw + 1) last_timer_raw++; - /** set next wakeup alarm if new entry is sooner than others, or if it is alone */ + /* set next wakeup alarm if new entry is sooner than others, or if it is alone */ real_timer_value = min_val(value, TIMEVAL_MAX); elapsed_time = getElapsedTime(); - /**printf("elapsed_time=%d real_timer_value=%d total_sleep_time=%d\n", elapsed_time, real_timer_value, total_sleep_time); */ + /*printf("elapsed_time=%d real_timer_value=%d total_sleep_time=%d\n", elapsed_time, real_timer_value, total_sleep_time); */ if (total_sleep_time > elapsed_time && total_sleep_time - elapsed_time > real_timer_value) { total_sleep_time = elapsed_time + real_timer_value; setTimer(real_timer_value); } - /**printf("SetAlarm() return %d\n", row_number); */ + /*printf("SetAlarm() return %d\n", row_number); */ return row_number; } return TIMER_NONE; @@ -111,7 +111,7 @@ **/ TIMER_HANDLE DelAlarm(TIMER_HANDLE handle) { - /** Quick and dirty. system timer will continue to be trigged, but no action will be preformed. */ + /* Quick and dirty. system timer will continue to be trigged, but no action will be preformed. */ MSG_WAR(0x3320, "DelAlarm. handle = ", handle); if(handle != TIMER_NONE) { @@ -131,9 +131,9 @@ void TimeDispatch() { TIMER_HANDLE i; - TIMEVAL next_wakeup = TIMEVAL_MAX; /** used to compute when should normaly occur next wakeup */ - /** First run : change timer state depending on time */ - /** Get time since timer signal */ + TIMEVAL next_wakeup = TIMEVAL_MAX; /* used to compute when should normaly occur next wakeup */ + /* First run : change timer state depending on time */ + /* Get time since timer signal */ TIMEVAL overrun = getElapsedTime(); TIMEVAL real_total_sleep_time = total_sleep_time + overrun; @@ -143,51 +143,51 @@ { s_timer_entry *row = (timers+i); - if (row->state & TIMER_ARMED) /** if row is active */ + if (row->state & TIMER_ARMED) /* if row is active */ { - if (row->val <= real_total_sleep_time) /** to be trigged */ + if (row->val <= real_total_sleep_time) /* to be trigged */ { /*printf("row->val(%d) <= (%d)real_total_sleep_time\n", row->val, real_total_sleep_time); */ - if (!row->interval) /** if simply outdated */ + if (!row->interval) /* if simply outdated */ { - row->state = TIMER_TRIG; /** ask for trig */ + row->state = TIMER_TRIG; /* ask for trig */ } - else /** or period have expired */ + else /* or period have expired */ { - /** set val as interval, with overrun correction */ + /* set val as interval, with overrun correction */ row->val = row->interval - (overrun % row->interval); row->state = TIMER_TRIG_PERIOD; /* ask for trig, periodic */ - /** Check if this new timer value is the soonest */ + /* Check if this new timer value is the soonest */ next_wakeup = min_val(row->val,next_wakeup); } } else { - /** Each armed timer value in decremented. */ + /* Each armed timer value in decremented. */ row->val -= real_total_sleep_time; - /** Check if this new timer value is the soonest */ + /* Check if this new timer value is the soonest */ next_wakeup = min_val(row->val,next_wakeup); } } } - /** Remember how much time we should sleep. */ + /* Remember how much time we should sleep. */ total_sleep_time = next_wakeup; - /** Set timer to soonest occurence */ + /* Set timer to soonest occurence */ setTimer(next_wakeup); - /** Then trig them or not. */ + /* Then trig them or not. */ for(i=0; i<=last_timer_raw; i++) { s_timer_entry *row = (timers+i); if (row->state & TIMER_TRIG) { - row->state &= ~TIMER_TRIG; /** reset trig state (will be free if not periodic) */ + row->state &= ~TIMER_TRIG; /* reset trig state (will be free if not periodic) */ if(row->callback) - (*row->callback)(row->d, row->id); /** trig ! */ + (*row->callback)(row->d, row->id); /* trig ! */ } } }