objdictgen/examples/example_objdict.c
changeset 281 685d9a26e4f9
parent 0 4472ee7c6c3e
child 369 8b67289d50b5
equal deleted inserted replaced
280:d9b232ec7057 281:685d9a26e4f9
     1 /*
     1 
     2 This file is part of CanFestival, a library implementing CanOpen Stack. 
     2 /* File generated by gen_cfile.py. Should not be modified. */
     3 
     3 
     4 Copyright (C): Edouard TISSERANT and Francis DUPIN
     4 #include "example_objdict.h"
     5 
       
     6 See COPYING file for copyrights details.
       
     7 
       
     8 This library is free software; you can redistribute it and/or
       
     9 modify it under the terms of the GNU Lesser General Public
       
    10 License as published by the Free Software Foundation; either
       
    11 version 2.1 of the License, or (at your option) any later version.
       
    12 
       
    13 This library is distributed in the hope that it will be useful,
       
    14 but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    16 Lesser General Public License for more details.
       
    17 
       
    18 You should have received a copy of the GNU Lesser General Public
       
    19 License along with this library; if not, write to the Free Software
       
    20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
       
    21 */
       
    22 
       
    23 
       
    24 #include <stddef.h>
       
    25 
       
    26 #include <canfestival/applicfg.h>
       
    27 #include "canfestival/def.h"
       
    28 #include "canfestival/can.h"
       
    29 #include "canfestival/objdictdef.h"
       
    30 #include "canfestival/pdo.h"
       
    31 #include "canfestival/sdo.h"
       
    32 #include "canfestival/sync.h"
       
    33 #include "canfestival/lifegrd.h"
       
    34 #include "canfestival/nmtSlave.h"
       
    35 
     5 
    36 /**************************************************************************/
     6 /**************************************************************************/
    37 /* Declaration of the mapped variables                                    */
     7 /* Declaration of the mapped variables                                    */
    38 /**************************************************************************/
     8 /**************************************************************************/
    39 UNS8 seconds = 0;		// Mapped at index 0x2000, subindex 0x01
     9 UNS8 Time_seconds = 0x0;		/* Mapped at index 0x2000, subindex 0x01 */
    40 UNS8 minutes = 0;		// Mapped at index 0x2000, subindex 0x02
    10 UNS8 Time_minutes = 0x0;		/* Mapped at index 0x2000, subindex 0x02 */
    41 UNS8 hours = 0;		// Mapped at index 0x2000, subindex 0x03
    11 UNS8 Time_hours = 0x0;		/* Mapped at index 0x2000, subindex 0x03 */
    42 UNS8 day = 0;		// Mapped at index 0x2000, subindex 0x04
    12 UNS8 Time_days = 0x0;		/* Mapped at index 0x2000, subindex 0x04 */
    43 UNS32 canopenErrNB = 0;		// Mapped at index 0x6000, subindex 0x00
    13 UNS32 canopenErrNB = 0x0;		/* Mapped at index 0x2001, subindex 0x00 */
    44 UNS32 canopenErrVAL = 0;		// Mapped at index 0x6001, subindex 0x00
    14 UNS32 canopenErrVal = 0x0;		/* Mapped at index 0x2002, subindex 0x00 */
    45 UNS8 strTest[10] = 0;		// Mapped at index 0x6002, subindex 0x00
    15 UNS8 strTest[10] = "";		/* Mapped at index 0x2003, subindex 0x00 */
    46 
    16 
    47 /**************************************************************************/
    17 /**************************************************************************/
    48 /* Declaration of the value range types                                   */
    18 /* Declaration of the value range types                                   */
    49 /**************************************************************************/
    19 /**************************************************************************/
    50 
    20 
    51 
    21 UNS32 Linux_slave_valueRangeTest (UNS8 typeValue, void * value)
    52 
       
    53 UNS32 Linux_slave_valueRangeTest (UNS8 typeValue, UNS32 unsValue, REAL32 realValue)
       
    54 {
    22 {
    55   switch (typeValue) {
    23   switch (typeValue) {
    56   }
    24   }
    57   return 0;
    25   return 0;
    58 }
    26 }
    59 
    27 
    60 
       
    61 /**************************************************************************/
    28 /**************************************************************************/
    62 /* The node id                                                            */
    29 /* The node id                                                            */
    63 /**************************************************************************/
    30 /**************************************************************************/
    64 /* node_id default value. 
    31 /* node_id default value.*/
    65    This default value is deprecated.
    32 UNS8 Linux_slave_bDeviceNodeId = 0x00;
    66    You should always overwrite this by using the function setNodeId(UNS8 nodeId) in your C code.
    33 
       
    34 /**************************************************************************/
       
    35 /* Array of message processing information */
       
    36 
       
    37 const UNS8 Linux_slave_iam_a_slave = 1;
       
    38 
       
    39 TIMER_HANDLE Linux_slave_heartBeatTimers[1] = {TIMER_NONE,};
       
    40 
       
    41 /*
       
    42 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       
    43 
       
    44                                OBJECT DICTIONARY
       
    45 
       
    46 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    67 */
    47 */
    68 #define NODE_ID 0x01
    48 
    69 UNS8 Linux_slave_bDeviceNodeId = NODE_ID;
    49 /* index 0x1000 :   Device Type. */
    70 
    50                     UNS32 Linux_slave_obj1000 = 0x0;	/* 0 */
    71 
    51                     subindex Linux_slave_Index1000[] = 
    72 //*****************************************************************************/
    52                      {
    73 /* Array of message processing information */
    53                        { RO, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1000 }
    74 /* Should not be modified */
    54                      };
    75 
    55 
    76 const UNS8 Linux_slave_iam_a_slave = 1
    56 /* index 0x1001 :   Error Register. */
    77 
    57                     UNS8 Linux_slave_obj1001 = 0x0;	/* 0 */
    78   // Macros definition
    58                     subindex Linux_slave_Index1001[] = 
    79 
    59                      {
    80 /* Beware : 
    60                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1001 }
    81 index                 *must* be writen 4 numbers in hexa
    61                      };
    82 sub_index             *must* be writen 2 numbers in hexa
    62 
    83 size_variable_in_UNS8 *must* be writen 2 numbers in hexa
    63 /* index 0x1005 :   SYNC COB ID */
    84 */
    64                     UNS32 Linux_slave_obj1005 = 0x0;   /* 0 */
    85 #define PDO_MAP(index, sub_index, size_variable_in_bits)\
    65 
    86 0x ## index ## sub_index ## size_variable_in_bits
    66 /* index 0x1006 :   Communication / Cycle Period */
    87 
    67                     UNS32 Linux_slave_obj1006 = 0x0;   /* 0 */
    88 /** This macro helps creating the object dictionary entries.
    68 
    89  *  by calling this macro
    69 /* index 0x1008 :   Manufacturer Device Name. */
    90  *  it creates an entry in form of: 7 of entries, pointer to the entry. 
    70                     UNS8 Linux_slave_obj1008[10] = "Appli_Slave_HC12";
    91  */
    71                     subindex Linux_slave_Index1008[] = 
    92 #define DeclareIndexTableEntry(entryname, index)    { (subindex*)entryname,sizeof(entryname)/sizeof(entryname[0]), index}
    72                      {
    93 
    73                        { RO, visible_string, 16, (void*)&Linux_slave_obj1008 }
    94 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    74                      };
    95 //
    75 
    96 //                       OBJECT DICTIONARY
    76 /* index 0x1016 :   Consumer Heartbeat Time. */
    97 //                   
    77                     UNS8 Linux_slave_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/
    98 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    78                     UNS32 Linux_slave_obj1016[] = 
    99 // Make your change, depending of your application
    79                     {
   100  
    80                       0x0	/* 0 */
   101 
    81                     };
   102 /* index 0x1000 :   Device type. 
       
   103                     You have to change the value below, so
       
   104                     it fits your canopen-slave-module */
       
   105  
       
   106                     /* Not used, so, should not be modified */
       
   107                     
       
   108                     UNS32 Linux_slave_obj1000 = 0;
       
   109                     subindex Linux_slave_Index1000[] =
       
   110                     {
       
   111                       { RO, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1000 }
       
   112                     };
       
   113 
       
   114 /* index 0x1001 :   Error register. 
       
   115                     Change the entries to fit your application 
       
   116                     Not used, so, should not be modified */
       
   117                     /*const*/ UNS8 Linux_slave_obj1001 = 0x0;
       
   118                     /*const*/ subindex Linux_slave_Index1001[] =
       
   119                     {
       
   120                       { RO, uint8, sizeof(UNS8), (void*)&Linux_slave_obj1001 }
       
   121                     };
       
   122 
       
   123 /* index 0x1005 :   COB_ID SYNC */
       
   124                     /* Should not be modified */
       
   125                     UNS32 Linux_slave_obj1005 = 0x00000080; // bit 30 = 1 : device can generate a SYNC message
       
   126                                                 // Beware, it is over written when the node 
       
   127                                                 // enters in reset mode
       
   128                                                 // See initResetMode() in init.c
       
   129                     /*const*/ subindex Linux_slave_Index1005[] =
       
   130                     {
       
   131                       { RW, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1005 }
       
   132                     };
       
   133 
       
   134 /* index 0x1006 :   SYNC period */
       
   135                     // For producing the SYNC signal every n micro-seconds.
       
   136                     // Put 0 to not producing SYNC
       
   137                     /*const*/ UNS32 Linux_slave_obj1006 = 0x0; 
       
   138                                          // Default 0 to not produce SYNC //
       
   139                                          // Beware, it is over written when the 
       
   140                                          // node enters in reset mode.
       
   141                                          // See initResetMode() in init.c
       
   142                     /*const*/ subindex Linux_slave_Index1006[] =
       
   143                     {
       
   144                       { RW, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1006 }
       
   145                     };
       
   146 
       
   147 /* index 0x1007 :   Synchronous Window Length
       
   148                     Seems to be needed by DS401 to generate the SYNC signal ! */
       
   149                     /*const*/ UNS32 Linux_slave_obj1007 = 0x0; /* Default 0 */
       
   150                     /*const*/ subindex Linux_slave_Index1007[] =
       
   151                     {
       
   152                       { RW, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1007 }
       
   153                     };
       
   154 
       
   155 /* index 0x1008 :   Manufacturer device name */
       
   156                     UNS8 Linux_slave_obj1008[] = "Appli_Slave_HC12"; /* Default 0 */
       
   157                     subindex Linux_slave_Index1008[] =
       
   158                     {
       
   159                       { RO, uint32, sizeof(Linux_slave_obj1008), (void*)&Linux_slave_obj1008 }
       
   160                     };
       
   161 
       
   162 /* index 0x1009 :   Manufacturer hardware version */
       
   163                     UNS8 Linux_slave_obj1009[] = "__DATE__"; /* Default 0 */
       
   164                     subindex Linux_slave_Index1009[] =
       
   165                     {
       
   166                       { RO, uint32, sizeof(Linux_slave_obj1009), (void*)&Linux_slave_obj1009 }
       
   167                     };
       
   168 
       
   169 /* index 0x100A :   Manufacturer software version */
       
   170                     UNS8 Linux_slave_obj100A[] = __TIME__; /* Default 0 */
       
   171                     subindex Linux_slave_Index100A[] =
       
   172                     {
       
   173                       { RO, uint32, Linux_slave_sizeof(obj100A), (void*)&Linux_slave_obj100A}
       
   174                     };
       
   175 
       
   176 
       
   177                     TIMER_HANDLE Linux_slave_heartBeatTimers[1] = {TIMER_NONE,};
       
   178 /* index 0x1016 :   HeartBeat consumers 
       
   179                     The nodes which can send a heartbeat */ 
       
   180                     UNS32 Linux_slave_obj1016[] = {// Consumer time for each node 
       
   181                     0x00000000}; // Format 0x00NNTTTT (N=Node T=time in ms)
       
   182 
       
   183                     UNS8 Linux_slave_obj1016_cnt = 1; // 1 nodes could send me
       
   184                                                   // their heartbeat.
       
   185                     subindex Linux_slave_Index1016[] = 
    82                     subindex Linux_slave_Index1016[] = 
   186                     {
    83                      {
   187                       { RO, uint8, sizeof(UNS8), (void*)&Linux_slave_obj1016_cnt },
    84                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1016 },
   188                       { RW, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1016[0] }
    85                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1016[0] }
   189                     }; 
    86                      };
   190 
    87 
   191 /* index 0x1017 :   Heartbeat producer                    
    88 /* index 0x1017 :   Producer Heartbeat Time */ 
   192                     Every HBProducerTime, the node sends its heartbeat */
    89                     UNS16 Linux_slave_obj1017 = 0x0;   /* 0 */
   193                     UNS16 Linux_slave_obj1017 = 0; //HBProducerTime in ms. If 0 : not activated 
    90 
   194                                                      // Beware, it is over written when the 
    91 /* index 0x1018 :   Identity. */
   195                                                      // node enters in reset mode.
    92                     UNS8 Linux_slave_highestSubIndex_obj1018 = 4; /* number of subindex - 1*/
   196                                                      // See initResetMode() in init.c
    93                     UNS32 Linux_slave_obj1018_Vendor_ID = 0x0;	/* 0 */
   197                     subindex Linux_slave_Index1017[] =
    94                     UNS32 Linux_slave_obj1018_Product_Code = 0x0;	/* 0 */
   198                     {
    95                     UNS32 Linux_slave_obj1018_Revision_Number = 0x0;	/* 0 */
   199 	              { RW, uint16, sizeof(UNS16), &Linux_slave_obj1017 }
    96                     UNS32 Linux_slave_obj1018_Serial_Number = 0x0;	/* 0 */
   200                     };
    97                     subindex Linux_slave_Index1018[] = 
   201 
    98                      {
   202 /* index 0x1018 :   Identity object */
    99                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1018 },
   203                     /** index 1018: identify object. Adjust the entries for your node/company
   100                        { RO, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1018_Vendor_ID },
   204                     */
   101                        { RO, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1018_Product_Code },
   205                     /* Values can be modified */
   102                        { RO, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1018_Revision_Number },
   206 
   103                        { RO, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1018_Serial_Number }
   207                     s_identity Linux_slave_obj1018 =
   104                      };
   208                     {
   105 
   209                       4,       // number of supported entries
   106 /* index 0x1280 :   Client SDO 1 Parameter. */
   210                       0,  // Vendor-ID (given by the can-cia)
   107                     UNS8 Linux_slave_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
   211                       0,  // Product Code
   108                     UNS32 Linux_slave_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x0;	/* 0 */
   212                       0,  // Revision number
   109                     UNS32 Linux_slave_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x0;	/* 0 */
   213                       0  // serial number
   110                     UNS8 Linux_slave_obj1280_Node_ID_of_the_SDO_Server = 0x0;	/* 0 */
   214                     };
       
   215 
       
   216                     subindex Linux_slave_Index1018[] =
       
   217                     {
       
   218                       { RO, uint8,  sizeof(UNS8),  (void*)&Linux_slave_obj1018.count },
       
   219                       { RO, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1018.vendor_id},
       
   220                       { RO, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1018.product_code},
       
   221                       { RO, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1018.revision_number},
       
   222                       { RO, uint32, sizeof(UNS32), (void*)&Linux_slave_obj1018.serial_number}
       
   223                     };
       
   224 
       
   225 /* index 0x1200 :   The SDO Server parameters */
       
   226                     /* BEWARE You cannot define more than one SDO server */
       
   227                     /* The values should not be modified here, 
       
   228                     but can be changed at runtime */
       
   229                     // Beware that the default values that you could put here
       
   230                     // will be over written at the initialisation of the node. 
       
   231                     // See setNodeId() in init.c
       
   232                     s_sdo_parameter Linux_slave_obj1200  = 
       
   233                       { 3,                   // Number of entries. Always 3 for the SDO	       
       
   234                         0x601,     // The cob_id transmited in CAN msg to the server     
       
   235                         0x581,     // The cob_id received in CAN msg from the server  
       
   236                         0x01      // The node id of the client. Should not be modified
       
   237                       };
       
   238                     subindex Linux_slave_Index1200[] =
       
   239                     {
       
   240                       { RO, uint8,  sizeof( UNS8 ), (void*)&Linux_slave_obj1200.count },
       
   241                       { RO, uint32, sizeof( UNS32), (void*)&Linux_slave_obj1200.cob_id_client },
       
   242                       { RO, uint32, sizeof( UNS32), (void*)&Linux_slave_obj1200.cob_id_server },
       
   243                       { RW, uint8,  sizeof( UNS8),  (void*)&Linux_slave_obj1200.node_id }
       
   244                     };
       
   245 
       
   246 /* index 0x1280 :   SDO client parameter */
       
   247                     s_sdo_parameter Linux_slave_obj1280 = 
       
   248                       { 3,     // Nb of entries 
       
   249                         0x600, // cobid transmited to the server. The good value should be 0x600 + server nodeId
       
   250                         0x580, // cobid received from the server. The good value should be 0x580 + server nodeId
       
   251                         0x01  // server NodeId
       
   252                       };
       
   253                     subindex Linux_slave_Index1280[] = 
   111                     subindex Linux_slave_Index1280[] = 
   254                       { 
   112                      {
   255                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1280.count },
   113                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1280 },
   256                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1280.cob_id_client },
   114                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
   257                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1280.cob_id_server },
   115                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1280_COB_ID_Server_to_Client_Receive_SDO },
   258                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1280.node_id }
   116                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1280_Node_ID_of_the_SDO_Server }
   259                       }; 
   117                      };
   260 
   118 
   261 /* index 0x1400 :   PDO receive communication parameter */
   119 /* index 0x1400 :   Receive PDO 1 Parameter. */
   262                     s_pdo_communication_parameter Linux_slave_obj1400 = 
   120                     UNS8 Linux_slave_highestSubIndex_obj1400 = 5; /* number of subindex - 1*/
   263                       { 2, // Largest subindex supported 
   121                     UNS32 Linux_slave_obj1400_COB_ID_used_by_PDO = 0x200;	/* 512 */
   264                         0x0, // Default COBID (overwritten at init for index 0x1400 to 0x1403)
   122                     UNS8 Linux_slave_obj1400_Transmission_Type = 0x0;	/* 0 */
   265                         253 // Transmission type. See objdictdef.h 
   123                     UNS16 Linux_slave_obj1400_Inhibit_Time = 0x0;	/* 0 */
   266                       };
   124                     UNS8 Linux_slave_obj1400_Compatibility_Entry = 0x0;	/* 0 */
       
   125                     UNS16 Linux_slave_obj1400_Event_Timer = 0x0;	/* 0 */
   267                     subindex Linux_slave_Index1400[] = 
   126                     subindex Linux_slave_Index1400[] = 
   268                       { 
   127                      {
   269                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1400.count },
   128                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1400 },
   270                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1400.cob_id },
   129                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1400_COB_ID_used_by_PDO },
   271                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1400.type },
   130                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1400_Transmission_Type },
   272                       }; 
   131                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1400_Inhibit_Time },
   273 
   132                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1400_Compatibility_Entry },
   274 /* index 0x1401 :   PDO receive communication parameter */
   133                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1400_Event_Timer }
   275                     s_pdo_communication_parameter Linux_slave_obj1401 = 
   134                      };
   276                       { 2, // Largest subindex supported 
   135 
   277                         0x0, // Default COBID (overwritten at init for index 0x1400 to 0x1403)
   136 /* index 0x1401 :   Receive PDO 2 Parameter. */
   278                         253 // Transmission type. See objdictdef.h 
   137                     UNS8 Linux_slave_highestSubIndex_obj1401 = 5; /* number of subindex - 1*/
   279                       };
   138                     UNS32 Linux_slave_obj1401_COB_ID_used_by_PDO = 0x300;	/* 768 */
       
   139                     UNS8 Linux_slave_obj1401_Transmission_Type = 0x0;	/* 0 */
       
   140                     UNS16 Linux_slave_obj1401_Inhibit_Time = 0x0;	/* 0 */
       
   141                     UNS8 Linux_slave_obj1401_Compatibility_Entry = 0x0;	/* 0 */
       
   142                     UNS16 Linux_slave_obj1401_Event_Timer = 0x0;	/* 0 */
   280                     subindex Linux_slave_Index1401[] = 
   143                     subindex Linux_slave_Index1401[] = 
   281                       { 
   144                      {
   282                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1401.count },
   145                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1401 },
   283                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1401.cob_id },
   146                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1401_COB_ID_used_by_PDO },
   284                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1401.type },
   147                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1401_Transmission_Type },
   285                       }; 
   148                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1401_Inhibit_Time },
   286 
   149                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1401_Compatibility_Entry },
   287 /* index 0x1402 :   PDO receive communication parameter */
   150                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1401_Event_Timer }
   288                     s_pdo_communication_parameter Linux_slave_obj1402 = 
   151                      };
   289                       { 2, // Largest subindex supported 
   152 
   290                         0x0, // Default COBID (overwritten at init for index 0x1400 to 0x1403)
   153 /* index 0x1402 :   Receive PDO 3 Parameter. */
   291                         253 // Transmission type. See objdictdef.h 
   154                     UNS8 Linux_slave_highestSubIndex_obj1402 = 5; /* number of subindex - 1*/
   292                       };
   155                     UNS32 Linux_slave_obj1402_COB_ID_used_by_PDO = 0x400;	/* 1024 */
       
   156                     UNS8 Linux_slave_obj1402_Transmission_Type = 0x0;	/* 0 */
       
   157                     UNS16 Linux_slave_obj1402_Inhibit_Time = 0x0;	/* 0 */
       
   158                     UNS8 Linux_slave_obj1402_Compatibility_Entry = 0x0;	/* 0 */
       
   159                     UNS16 Linux_slave_obj1402_Event_Timer = 0x0;	/* 0 */
   293                     subindex Linux_slave_Index1402[] = 
   160                     subindex Linux_slave_Index1402[] = 
   294                       { 
   161                      {
   295                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1402.count },
   162                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1402 },
   296                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1402.cob_id },
   163                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1402_COB_ID_used_by_PDO },
   297                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1402.type },
   164                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1402_Transmission_Type },
   298                       }; 
   165                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1402_Inhibit_Time },
   299 
   166                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1402_Compatibility_Entry },
   300 /* index 0x1600 :   PDO receive mapping parameter of PDO communication index 0x1400 */
   167                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1402_Event_Timer }
   301                     UNS8 Linux_slave_obj1600_cnt = 0; // Number of mapped variables
   168                      };
   302                     UNS32 Linux_slave_obj1600_mappedVar[] = { 
   169 
   303                         0x00000000,
   170 /* index 0x1403 :   Receive PDO 4 Parameter. */
   304                         0x00000000,
   171                     UNS8 Linux_slave_highestSubIndex_obj1403 = 5; /* number of subindex - 1*/
   305                         0x00000000,
   172                     UNS32 Linux_slave_obj1403_COB_ID_used_by_PDO = 0x500;	/* 1280 */
   306                         0x00000000,
   173                     UNS8 Linux_slave_obj1403_Transmission_Type = 0x0;	/* 0 */
   307                         0x00000000,
   174                     UNS16 Linux_slave_obj1403_Inhibit_Time = 0x0;	/* 0 */
   308                         0x00000000,
   175                     UNS8 Linux_slave_obj1403_Compatibility_Entry = 0x0;	/* 0 */
   309                         0x00000000,
   176                     UNS16 Linux_slave_obj1403_Event_Timer = 0x0;	/* 0 */
   310                         0x00000000
   177                     subindex Linux_slave_Index1403[] = 
   311                       };
   178                      {
       
   179                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1403 },
       
   180                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1403_COB_ID_used_by_PDO },
       
   181                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1403_Transmission_Type },
       
   182                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1403_Inhibit_Time },
       
   183                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1403_Compatibility_Entry },
       
   184                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1403_Event_Timer }
       
   185                      };
       
   186 
       
   187 /* index 0x1600 :   Receive PDO 1 Mapping. */
       
   188                     UNS8 Linux_slave_highestSubIndex_obj1600 = 1; /* number of subindex - 1*/
       
   189                     UNS32 Linux_slave_obj1600[] = 
       
   190                     {
       
   191                       0x0	/* 0 */
       
   192                     };
   312                     subindex Linux_slave_Index1600[] = 
   193                     subindex Linux_slave_Index1600[] = 
   313                       { 
   194                      {
   314                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1600_cnt },
   195                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1600 },
   315                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[0]},
   196                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1600[0] }
   316                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[1]},
   197                      };
   317                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[2]},
   198 
   318                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[3]},
   199 /* index 0x1601 :   Receive PDO 2 Mapping. */
   319                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[4]},
   200                     UNS8 Linux_slave_highestSubIndex_obj1601 = 1; /* number of subindex - 1*/
   320                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[5]},
   201                     UNS32 Linux_slave_obj1601[] = 
   321                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[6]},
   202                     {
   322                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1600_mappedVar[7]}
   203                       0x0	/* 0 */
   323                       }; 
   204                     };
   324 
       
   325 /* index 0x1601 :   PDO receive mapping parameter of PDO communication index 0x1401 */
       
   326                     UNS8 Linux_slave_obj1601_cnt = 0; // Number of mapped variables
       
   327                     UNS32 Linux_slave_obj1601_mappedVar[] = { 
       
   328                         0x00000000,
       
   329                         0x00000000,
       
   330                         0x00000000,
       
   331                         0x00000000,
       
   332                         0x00000000,
       
   333                         0x00000000,
       
   334                         0x00000000,
       
   335                         0x00000000
       
   336                       };
       
   337                     subindex Linux_slave_Index1601[] = 
   205                     subindex Linux_slave_Index1601[] = 
   338                       { 
   206                      {
   339                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1601_cnt },
   207                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1601 },
   340                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[0]},
   208                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1601[0] }
   341                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[1]},
   209                      };
   342                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[2]},
   210 
   343                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[3]},
   211 /* index 0x1602 :   Receive PDO 3 Mapping. */
   344                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[4]},
   212                     UNS8 Linux_slave_highestSubIndex_obj1602 = 1; /* number of subindex - 1*/
   345                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[5]},
   213                     UNS32 Linux_slave_obj1602[] = 
   346                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[6]},
   214                     {
   347                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1601_mappedVar[7]}
   215                       0x0	/* 0 */
   348                       }; 
   216                     };
   349 
       
   350 /* index 0x1602 :   PDO receive mapping parameter of PDO communication index 0x1402 */
       
   351                     UNS8 Linux_slave_obj1602_cnt = 0; // Number of mapped variables
       
   352                     UNS32 Linux_slave_obj1602_mappedVar[] = { 
       
   353                         0x00000000,
       
   354                         0x00000000,
       
   355                         0x00000000,
       
   356                         0x00000000,
       
   357                         0x00000000,
       
   358                         0x00000000,
       
   359                         0x00000000,
       
   360                         0x00000000
       
   361                       };
       
   362                     subindex Linux_slave_Index1602[] = 
   217                     subindex Linux_slave_Index1602[] = 
   363                       { 
   218                      {
   364                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1602_cnt },
   219                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1602 },
   365                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[0]},
   220                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1602[0] }
   366                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[1]},
   221                      };
   367                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[2]},
   222 
   368                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[3]},
   223 /* index 0x1603 :   Receive PDO 4 Mapping. */
   369                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[4]},
   224                     UNS8 Linux_slave_highestSubIndex_obj1603 = 1; /* number of subindex - 1*/
   370                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[5]},
   225                     UNS32 Linux_slave_obj1603[] = 
   371                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[6]},
   226                     {
   372                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1602_mappedVar[7]}
   227                       0x0	/* 0 */
   373                       }; 
   228                     };
   374 
   229                     subindex Linux_slave_Index1603[] = 
   375 /* index 0x1800 :   PDO transmit communication parameter */
   230                      {
   376                     s_pdo_communication_parameter Linux_slave_obj1800 = 
   231                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1603 },
   377                       { 2, // Largest subindex supported 
   232                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1603[0] }
   378                         0x0, // Default COBID (overwritten at init for index 0x1400 to 0x1403)
   233                      };
   379                         253 // Transmission type. See objdictdef.h 
   234 
   380                       };
   235 /* index 0x1800 :   Transmit PDO 1 Parameter. */
       
   236                     UNS8 Linux_slave_highestSubIndex_obj1800 = 5; /* number of subindex - 1*/
       
   237                     UNS32 Linux_slave_obj1800_COB_ID_used_by_PDO = 0x180;	/* 384 */
       
   238                     UNS8 Linux_slave_obj1800_Transmission_Type = 0x0;	/* 0 */
       
   239                     UNS16 Linux_slave_obj1800_Inhibit_Time = 0x0;	/* 0 */
       
   240                     UNS8 Linux_slave_obj1800_Compatibility_Entry = 0x0;	/* 0 */
       
   241                     UNS16 Linux_slave_obj1800_Event_Timer = 0x0;	/* 0 */
       
   242                     ODCallback_t Linux_slave_Index1800_callbacks[] = 
       
   243                      {
       
   244                        NULL,
       
   245                        NULL,
       
   246                        NULL,
       
   247                        NULL,
       
   248                        NULL,
       
   249                        NULL,
       
   250                      };
   381                     subindex Linux_slave_Index1800[] = 
   251                     subindex Linux_slave_Index1800[] = 
   382                       { 
   252                      {
   383                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1800.count },
   253                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1800 },
   384                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1800.cob_id },
   254                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1800_COB_ID_used_by_PDO },
   385                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1800.type },
   255                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1800_Transmission_Type },
   386                       }; 
   256                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1800_Inhibit_Time },
   387 
   257                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1800_Compatibility_Entry },
   388 /* index 0x1801 :   PDO transmit communication parameter */
   258                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1800_Event_Timer }
   389                     s_pdo_communication_parameter Linux_slave_obj1801 = 
   259                      };
   390                       { 2, // Largest subindex supported 
   260 
   391                         0x0, // Default COBID (overwritten at init for index 0x1400 to 0x1403)
   261 /* index 0x1801 :   Transmit PDO 2 Parameter. */
   392                         253 // Transmission type. See objdictdef.h 
   262                     UNS8 Linux_slave_highestSubIndex_obj1801 = 5; /* number of subindex - 1*/
   393                       };
   263                     UNS32 Linux_slave_obj1801_COB_ID_used_by_PDO = 0x280;	/* 640 */
       
   264                     UNS8 Linux_slave_obj1801_Transmission_Type = 0x0;	/* 0 */
       
   265                     UNS16 Linux_slave_obj1801_Inhibit_Time = 0x0;	/* 0 */
       
   266                     UNS8 Linux_slave_obj1801_Compatibility_Entry = 0x0;	/* 0 */
       
   267                     UNS16 Linux_slave_obj1801_Event_Timer = 0x0;	/* 0 */
       
   268                     ODCallback_t Linux_slave_Index1801_callbacks[] = 
       
   269                      {
       
   270                        NULL,
       
   271                        NULL,
       
   272                        NULL,
       
   273                        NULL,
       
   274                        NULL,
       
   275                        NULL,
       
   276                      };
   394                     subindex Linux_slave_Index1801[] = 
   277                     subindex Linux_slave_Index1801[] = 
   395                       { 
   278                      {
   396                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1801.count },
   279                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1801 },
   397                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1801.cob_id },
   280                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1801_COB_ID_used_by_PDO },
   398                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1801.type },
   281                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1801_Transmission_Type },
   399                       }; 
   282                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1801_Inhibit_Time },
   400 
   283                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_obj1801_Compatibility_Entry },
   401 /* index 0x1802 :   PDO transmit communication parameter */
   284                        { RW, uint16, sizeof (UNS16), (void*)&Linux_slave_obj1801_Event_Timer }
   402                     s_pdo_communication_parameter Linux_slave_obj1802 = 
   285                      };
   403                       { 2, // Largest subindex supported 
   286 
   404                         0x0, // Default COBID (overwritten at init for index 0x1400 to 0x1403)
   287 /* index 0x1A00 :   Transmit PDO 1 Mapping. */
   405                         253 // Transmission type. See objdictdef.h 
   288                     UNS8 Linux_slave_highestSubIndex_obj1A00 = 1; /* number of subindex - 1*/
   406                       };
   289                     UNS32 Linux_slave_obj1A00[] = 
   407                     subindex Linux_slave_Index1802[] = 
   290                     {
   408                       { 
   291                       0x0	/* 0 */
   409                         { RO, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1802.count },
   292                     };
   410                         { RW, uint8, sizeof( UNS32 ), (void*)&Linux_slave_obj1802.cob_id },
       
   411                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1802.type },
       
   412                       }; 
       
   413 
       
   414 /* index 0x1A00 :   PDO transmit mapping parameter of PDO communication index 0x1800 */
       
   415                     UNS8 Linux_slave_obj1A00_cnt = 0; // Number of mapped variables
       
   416                     UNS32 Linux_slave_obj1A00_mappedVar[] = { 
       
   417                         0x00000000,
       
   418                         0x00000000,
       
   419                         0x00000000,
       
   420                         0x00000000,
       
   421                         0x00000000,
       
   422                         0x00000000,
       
   423                         0x00000000,
       
   424                         0x00000000
       
   425                       };
       
   426                     subindex Linux_slave_Index1A00[] = 
   293                     subindex Linux_slave_Index1A00[] = 
   427                       { 
   294                      {
   428                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1A00_cnt },
   295                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1A00 },
   429                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[0]},
   296                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1A00[0] }
   430                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[1]},
   297                      };
   431                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[2]},
   298 
   432                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[3]},
   299 /* index 0x1A01 :   Transmit PDO 2 Mapping. */
   433                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[4]},
   300                     UNS8 Linux_slave_highestSubIndex_obj1A01 = 1; /* number of subindex - 1*/
   434                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[5]},
   301                     UNS32 Linux_slave_obj1A01[] = 
   435                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[6]},
   302                     {
   436                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A00_mappedVar[7]}
   303                       0x0	/* 0 */
   437                       }; 
   304                     };
   438 
       
   439 /* index 0x1A01 :   PDO transmit mapping parameter of PDO communication index 0x1801 */
       
   440                     UNS8 Linux_slave_obj1A01_cnt = 0; // Number of mapped variables
       
   441                     UNS32 Linux_slave_obj1A01_mappedVar[] = { 
       
   442                         0x00000000,
       
   443                         0x00000000,
       
   444                         0x00000000,
       
   445                         0x00000000,
       
   446                         0x00000000,
       
   447                         0x00000000,
       
   448                         0x00000000,
       
   449                         0x00000000
       
   450                       };
       
   451                     subindex Linux_slave_Index1A01[] = 
   305                     subindex Linux_slave_Index1A01[] = 
   452                       { 
   306                      {
   453                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1A01_cnt },
   307                        { RW, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj1A01 },
   454                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[0]},
   308                        { RW, uint32, sizeof (UNS32), (void*)&Linux_slave_obj1A01[0] }
   455                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[1]},
   309                      };
   456                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[2]},
   310 
   457                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[3]},
   311 /* index 0x2000 :   Mapped variable Time */
   458                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[4]},
   312                     UNS8 Linux_slave_highestSubIndex_obj2000 = 4; /* number of subindex - 1*/
   459                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[5]},
       
   460                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[6]},
       
   461                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A01_mappedVar[7]}
       
   462                       }; 
       
   463 
       
   464 /* index 0x1A02 :   PDO transmit mapping parameter of PDO communication index 0x1802 */
       
   465                     UNS8 Linux_slave_obj1A02_cnt = 0; // Number of mapped variables
       
   466                     UNS32 Linux_slave_obj1A02_mappedVar[] = { 
       
   467                         0x00000000,
       
   468                         0x00000000,
       
   469                         0x00000000,
       
   470                         0x00000000,
       
   471                         0x00000000,
       
   472                         0x00000000,
       
   473                         0x00000000,
       
   474                         0x00000000
       
   475                       };
       
   476                     subindex Linux_slave_Index1A02[] = 
       
   477                       { 
       
   478                         { RW, uint8, sizeof( UNS8  ), (void*)&Linux_slave_obj1A02_cnt },
       
   479                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[0]},
       
   480                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[1]},
       
   481                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[2]},
       
   482                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[3]},
       
   483                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[4]},
       
   484                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[5]},
       
   485                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[6]},
       
   486                         { RW, uint32, sizeof( UNS32 ), (void*)&Linux_slave_obj1A02_mappedVar[7]}
       
   487                       }; 
       
   488 
       
   489 
       
   490 /* index 0x2000 :   Mapped variable */
       
   491                     UNS8 Linux_slave_highestSubIndex_2000 = 4; // number of subindex - 1
       
   492                     subindex Linux_slave_Index2000[] = 
   313                     subindex Linux_slave_Index2000[] = 
   493                      {
   314                      {
   494                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_2000 },
   315                        { RO, uint8, sizeof (UNS8), (void*)&Linux_slave_highestSubIndex_obj2000 },
   495                        { RW, uint8, sizeof (UNS8), (void*)&seconds },
   316                        { RW, uint8, sizeof (UNS8), (void*)&Time_seconds },
   496                        { RW, uint8, sizeof (UNS8), (void*)&minutes },
   317                        { RW, uint8, sizeof (UNS8), (void*)&Time_minutes },
   497                        { RW, uint8, sizeof (UNS8), (void*)&hours },
   318                        { RW, uint8, sizeof (UNS8), (void*)&Time_hours },
   498                        { RW, uint8, sizeof (UNS8), (void*)&day }
   319                        { RW, uint8, sizeof (UNS8), (void*)&Time_days }
   499                      };
   320                      };
   500 
   321 
   501 /* index 0x6000 :   Mapped variable */
   322 /* index 0x2001 :   Mapped variable canopenErrNB */
   502                     UNS8 Linux_slave_highestSubIndex_6000 = 0; // number of subindex - 1
   323                     subindex Linux_slave_Index2001[] = 
   503                     subindex Linux_slave_Index6000[] = 
       
   504                      {
   324                      {
   505                        { RW, uint32, sizeof (UNS32), (void*)&canopenErrNB }
   325                        { RW, uint32, sizeof (UNS32), (void*)&canopenErrNB }
   506                      };
   326                      };
   507 
   327 
   508 /* index 0x6001 :   Mapped variable */
   328 /* index 0x2002 :   Mapped variable canopenErrVal */
   509                     UNS8 Linux_slave_highestSubIndex_6001 = 0; // number of subindex - 1
   329                     subindex Linux_slave_Index2002[] = 
   510                     subindex Linux_slave_Index6001[] = 
   330                      {
   511                      {
   331                        { RW, uint32, sizeof (UNS32), (void*)&canopenErrVal }
   512                        { RW, uint32, sizeof (UNS32), (void*)&canopenErrVAL }
   332                      };
   513                      };
   333 
   514 
   334 /* index 0x2003 :   Mapped variable strTest */
   515 /* index 0x6002 :   Mapped variable */
   335                     subindex Linux_slave_Index2003[] = 
   516                     UNS8 Linux_slave_highestSubIndex_6002 = 0; // number of subindex - 1
   336                      {
   517                     subindex Linux_slave_Index6002[] = 
   337                        { RW, visible_string, 0, (void*)&strTest }
   518                      {
       
   519                        { RW, visible_string, sizeof (strTest), (void*)&strTest }
       
   520                      };
   338                      };
   521 
   339 
   522 const indextable Linux_slave_objdict[] = 
   340 const indextable Linux_slave_objdict[] = 
   523 {
   341 {
   524   DeclareIndexTableEntry(Linux_slave_Index1000, 0x1000),
   342   { (subindex*)Linux_slave_Index1000,sizeof(Linux_slave_Index1000)/sizeof(Linux_slave_Index1000[0]), 0x1000},
   525   DeclareIndexTableEntry(Linux_slave_Index1001, 0x1001),
   343   { (subindex*)Linux_slave_Index1001,sizeof(Linux_slave_Index1001)/sizeof(Linux_slave_Index1001[0]), 0x1001},
   526   DeclareIndexTableEntry(Linux_slave_Index1005, 0x1005),
   344   { (subindex*)Linux_slave_Index1008,sizeof(Linux_slave_Index1008)/sizeof(Linux_slave_Index1008[0]), 0x1008},
   527   DeclareIndexTableEntry(Linux_slave_Index1006, 0x1006),
   345   { (subindex*)Linux_slave_Index1016,sizeof(Linux_slave_Index1016)/sizeof(Linux_slave_Index1016[0]), 0x1016},
   528   DeclareIndexTableEntry(Linux_slave_Index1007, 0x1007),
   346   { (subindex*)Linux_slave_Index1018,sizeof(Linux_slave_Index1018)/sizeof(Linux_slave_Index1018[0]), 0x1018},
   529   DeclareIndexTableEntry(Linux_slave_Index1008, 0x1008),
   347   { (subindex*)Linux_slave_Index1280,sizeof(Linux_slave_Index1280)/sizeof(Linux_slave_Index1280[0]), 0x1280},
   530   DeclareIndexTableEntry(Linux_slave_Index1009, 0x1009),
   348   { (subindex*)Linux_slave_Index1400,sizeof(Linux_slave_Index1400)/sizeof(Linux_slave_Index1400[0]), 0x1400},
   531   DeclareIndexTableEntry(Linux_slave_Index100A, 0x100A),
   349   { (subindex*)Linux_slave_Index1401,sizeof(Linux_slave_Index1401)/sizeof(Linux_slave_Index1401[0]), 0x1401},
   532   DeclareIndexTableEntry(Linux_slave_Index1016, 0x1016),
   350   { (subindex*)Linux_slave_Index1402,sizeof(Linux_slave_Index1402)/sizeof(Linux_slave_Index1402[0]), 0x1402},
   533   DeclareIndexTableEntry(Linux_slave_Index1017, 0x1017),
   351   { (subindex*)Linux_slave_Index1403,sizeof(Linux_slave_Index1403)/sizeof(Linux_slave_Index1403[0]), 0x1403},
   534   DeclareIndexTableEntry(Linux_slave_Index1018, 0x1018),
   352   { (subindex*)Linux_slave_Index1600,sizeof(Linux_slave_Index1600)/sizeof(Linux_slave_Index1600[0]), 0x1600},
   535   DeclareIndexTableEntry(Linux_slave_Index1200, 0x1200),
   353   { (subindex*)Linux_slave_Index1601,sizeof(Linux_slave_Index1601)/sizeof(Linux_slave_Index1601[0]), 0x1601},
   536   DeclareIndexTableEntry(Linux_slave_Index1280, 0x1280),
   354   { (subindex*)Linux_slave_Index1602,sizeof(Linux_slave_Index1602)/sizeof(Linux_slave_Index1602[0]), 0x1602},
   537   DeclareIndexTableEntry(Linux_slave_Index1400, 0x1400),
   355   { (subindex*)Linux_slave_Index1603,sizeof(Linux_slave_Index1603)/sizeof(Linux_slave_Index1603[0]), 0x1603},
   538   DeclareIndexTableEntry(Linux_slave_Index1401, 0x1401),
   356   { (subindex*)Linux_slave_Index1800,sizeof(Linux_slave_Index1800)/sizeof(Linux_slave_Index1800[0]), 0x1800},
   539   DeclareIndexTableEntry(Linux_slave_Index1402, 0x1402),
   357   { (subindex*)Linux_slave_Index1801,sizeof(Linux_slave_Index1801)/sizeof(Linux_slave_Index1801[0]), 0x1801},
   540   DeclareIndexTableEntry(Linux_slave_Index1600, 0x1600),
   358   { (subindex*)Linux_slave_Index1A00,sizeof(Linux_slave_Index1A00)/sizeof(Linux_slave_Index1A00[0]), 0x1A00},
   541   DeclareIndexTableEntry(Linux_slave_Index1601, 0x1601),
   359   { (subindex*)Linux_slave_Index1A01,sizeof(Linux_slave_Index1A01)/sizeof(Linux_slave_Index1A01[0]), 0x1A01},
   542   DeclareIndexTableEntry(Linux_slave_Index1602, 0x1602),
   360   { (subindex*)Linux_slave_Index2000,sizeof(Linux_slave_Index2000)/sizeof(Linux_slave_Index2000[0]), 0x2000},
   543   DeclareIndexTableEntry(Linux_slave_Index1800, 0x1800),
   361   { (subindex*)Linux_slave_Index2001,sizeof(Linux_slave_Index2001)/sizeof(Linux_slave_Index2001[0]), 0x2001},
   544   DeclareIndexTableEntry(Linux_slave_Index1801, 0x1801),
   362   { (subindex*)Linux_slave_Index2002,sizeof(Linux_slave_Index2002)/sizeof(Linux_slave_Index2002[0]), 0x2002},
   545   DeclareIndexTableEntry(Linux_slave_Index1802, 0x1802),
   363   { (subindex*)Linux_slave_Index2003,sizeof(Linux_slave_Index2003)/sizeof(Linux_slave_Index2003[0]), 0x2003},
   546   DeclareIndexTableEntry(Linux_slave_Index1A00, 0x1A00),
       
   547   DeclareIndexTableEntry(Linux_slave_Index1A01, 0x1A01),
       
   548   DeclareIndexTableEntry(Linux_slave_Index1A02, 0x1A02),
       
   549   DeclareIndexTableEntry(Linux_slave_Index2000, 0x2000),
       
   550   DeclareIndexTableEntry(Linux_slave_Index6000, 0x6000),
       
   551   DeclareIndexTableEntry(Linux_slave_Index6001, 0x6001),
       
   552   DeclareIndexTableEntry(Linux_slave_Index6002, 0x6002),
       
   553 };
   364 };
   554 
   365 
   555 // To count at which received SYNC a PDO must be sent.
   366 const indextable * Linux_slave_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
   556 // Even if no pdoTransmit are defined, at least one entry is computed
   367 {
   557 // for compilations issues.
   368 	int i;
   558 UNS8 Linux_slave_count_sync[1] = {0, };
   369 	*callbacks = NULL;
       
   370 	switch(wIndex){
       
   371 		case 0x1000: i = 0;break;
       
   372 		case 0x1001: i = 1;break;
       
   373 		case 0x1008: i = 2;break;
       
   374 		case 0x1016: i = 3;break;
       
   375 		case 0x1018: i = 4;break;
       
   376 		case 0x1280: i = 5;break;
       
   377 		case 0x1400: i = 6;break;
       
   378 		case 0x1401: i = 7;break;
       
   379 		case 0x1402: i = 8;break;
       
   380 		case 0x1403: i = 9;break;
       
   381 		case 0x1600: i = 10;break;
       
   382 		case 0x1601: i = 11;break;
       
   383 		case 0x1602: i = 12;break;
       
   384 		case 0x1603: i = 13;break;
       
   385 		case 0x1800: i = 14;*callbacks = Linux_slave_Index1800_callbacks; break;
       
   386 		case 0x1801: i = 15;*callbacks = Linux_slave_Index1801_callbacks; break;
       
   387 		case 0x1A00: i = 16;break;
       
   388 		case 0x1A01: i = 17;break;
       
   389 		case 0x2000: i = 18;break;
       
   390 		case 0x2001: i = 19;break;
       
   391 		case 0x2002: i = 20;break;
       
   392 		case 0x2003: i = 21;break;
       
   393 		default:
       
   394 			*errorCode = OD_NO_SUCH_OBJECT;
       
   395 			return NULL;
       
   396 	}
       
   397 	*errorCode = OD_SUCCESSFUL;
       
   398 	return &Linux_slave_objdict[i];
       
   399 }
       
   400 
       
   401 /* 
       
   402  * To count at which received SYNC a PDO must be sent.
       
   403  * Even if no pdoTransmit are defined, at least one entry is computed
       
   404  * for compilations issues.
       
   405  */
       
   406 s_PDO_status Linux_slave_PDO_status[2] = {s_PDO_staus_Initializer,s_PDO_staus_Initializer};
   559 
   407 
   560 quick_index Linux_slave_firstIndex = {
   408 quick_index Linux_slave_firstIndex = {
   561     SDO_SVR : 11,
   409   0, /* SDO_SVR */
   562     SDO_CLT : 12,
   410   5, /* SDO_CLT */
   563     PDO_RCV : 13,
   411   6, /* PDO_RCV */
   564     PDO_RCV_MAP : 16,
   412   10, /* PDO_RCV_MAP */
   565     PDO_TRS : 19,
   413   14, /* PDO_TRS */
   566     PDO_TRS_MAP : 22
   414   16 /* PDO_TRS_MAP */
   567 }
   415 };
   568 
   416 
   569 quick_index Linux_slave_lastIndex{
   417 quick_index Linux_slave_lastIndex = {
   570     SDO_SVR : 11,
   418   0, /* SDO_SVR */
   571     SDO_CLT : 12,
   419   5, /* SDO_CLT */
   572     PDO_RCV : 15,
   420   9, /* PDO_RCV */
   573     PDO_RCV_MAP : 18,
   421   13, /* PDO_RCV_MAP */
   574     PDO_TRS : 21,
   422   15, /* PDO_TRS */
   575     PDO_TRS_MAP : 24
   423   17 /* PDO_TRS_MAP */
   576 }
   424 };
   577 
   425 
   578 UNS16 Linux_slave_ObjdictSize = sizeof(Linux_slave_objdict)/sizeof(Linux_slave_objdict[0]); 
   426 UNS16 Linux_slave_ObjdictSize = sizeof(Linux_slave_objdict)/sizeof(Linux_slave_objdict[0]); 
   579 
   427 
       
   428 CO_Data Linux_slave_Data = CANOPEN_NODE_DATA_INITIALIZER(Linux_slave);
       
   429