Updated code for endurance test bench to run lss slaves

This commit is contained in:
AzureAD\AniketSaha 2025-02-14 19:23:52 +01:00
parent b29a376904
commit 10992a0b2a
7 changed files with 214 additions and 1178 deletions

View File

@ -5,10 +5,10 @@ FileVersion=1.0
FileRevision=1.0 FileRevision=1.0
EDSVersion=4.0 EDSVersion=4.0
Description=EDS Description=EDS
CreationTime=13:50PM CreationTime=15:45PM
CreationDate=02-11-25 CreationDate=02-14-25
ModificationTime=13:50PM ModificationTime=15:45PM
ModificationDate=02-11-25 ModificationDate=02-14-25
CreatedBy=Aniket Saha CreatedBy=Aniket Saha
ModifiedBy=Aniket Saha ModifiedBy=Aniket Saha
@ -61,7 +61,7 @@ SupportedObjects=2
2=0x3000 2=0x3000
[OptionalObjects] [OptionalObjects]
SupportedObjects=51 SupportedObjects=33
1=0x1003 1=0x1003
2=0x1008 2=0x1008
3=0x1014 3=0x1014
@ -73,46 +73,28 @@ SupportedObjects=51
9=0x1200 9=0x1200
10=0x1280 10=0x1280
11=0x1281 11=0x1281
12=0x1282 12=0x1400
13=0x1283 13=0x1401
14=0x1284 14=0x1402
15=0x1285 15=0x1600
16=0x1286 16=0x1601
17=0x1287 17=0x1602
18=0x1288 18=0x1800
19=0x1289 19=0x1801
20=0x128a 20=0x1802
21=0x128b 21=0x1803
22=0x128c 22=0x1804
23=0x128d 23=0x1a00
24=0x128e 24=0x1a01
25=0x128f 25=0x1a02
26=0x1290 26=0x1a03
27=0x1291 27=0x1a04
28=0x1292 28=0x6000
29=0x1293 29=0x6001
30=0x1400 30=0x6002
31=0x1401 31=0x6003
32=0x1402 32=0x6004
33=0x1600 33=0x6005
34=0x1601
35=0x1602
36=0x1800
37=0x1801
38=0x1802
39=0x1803
40=0x1804
41=0x1a00
42=0x1a01
43=0x1a02
44=0x1a03
45=0x1a04
46=0x6000
47=0x6001
48=0x6002
49=0x6003
50=0x6004
51=0x6005
[1000] [1000]
ParameterName=Device Type ParameterName=Device Type
@ -177,7 +159,7 @@ DefaultValue=0x0
[1016] [1016]
ParameterName=Consumer Heartbeat Time ParameterName=Consumer Heartbeat Time
ObjectType=8 ObjectType=8
SubNumber=2 SubNumber=3
[1016sub0] [1016sub0]
ParameterName=Number of entries ParameterName=Number of entries
@ -185,7 +167,7 @@ ObjectType=7
DataType=5 DataType=5
AccessType=ro AccessType=ro
PDOMapping=0 PDOMapping=0
DefaultValue=1 DefaultValue=2
[1016sub1] [1016sub1]
ParameterName=Consumer Heartbeat Time ParameterName=Consumer Heartbeat Time
@ -195,6 +177,14 @@ AccessType=rw
PDOMapping=0 PDOMapping=0
DefaultValue=0x0000 DefaultValue=0x0000
[1016sub2]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x0000
[1017] [1017]
ParameterName=Producer Heartbeat Time ParameterName=Producer Heartbeat Time
ObjectType=7 ObjectType=7
@ -389,672 +379,6 @@ DataType=5
AccessType=rw AccessType=rw
PDOMapping=0 PDOMapping=0
[1282]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1282sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1282sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1282sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1282sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1283]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1283sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1283sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1283sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1283sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1284]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1284sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1284sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1284sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1284sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1285]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1285sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1285sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1285sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1285sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1286]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1286sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1286sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1286sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1286sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1287]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1287sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1287sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1287sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1287sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1288]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1288sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1288sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1288sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1288sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1289]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1289sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1289sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1289sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1289sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[128a]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[128asub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[128asub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128asub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128asub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[128b]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[128bsub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[128bsub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128bsub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128bsub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[128c]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[128csub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[128csub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128csub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128csub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[128d]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[128dsub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[128dsub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128dsub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128dsub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[128e]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[128esub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[128esub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128esub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128esub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[128f]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[128fsub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[128fsub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128fsub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[128fsub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1290]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1290sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1290sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1290sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1290sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1291]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1291sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1291sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1291sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1291sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1292]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1292sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1292sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1292sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1292sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1293]
ParameterName=SDO client parameter
ObjectType=9
SubNumber=4
;;This objects contains the parameters for the SDO for which the CANopen device is the SDO client.
[1293sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=3
[1293sub1]
ParameterName=COB-ID client -> server
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1293sub2]
ParameterName=COB-ID server -> client
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=0x80000000
[1293sub3]
ParameterName=Node-ID of the SDO server
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1400] [1400]
ParameterName=Receive PDO Communication Parameter ParameterName=Receive PDO Communication Parameter
ObjectType=9 ObjectType=9

View File

@ -19,17 +19,17 @@
#define CO_REC_BUFFER_COUNTS 10u #define CO_REC_BUFFER_COUNTS 10u
#define CO_TR_BUFFER_COUNTS 20u #define CO_TR_BUFFER_COUNTS 20u
/* Number of objects per line */ /* Number of objects per line */
#define CO_OBJECTS_LINE_0_CNT 56u #define CO_OBJECTS_LINE_0_CNT 38u
#define CO_OBJECT_COUNTS 56u #define CO_OBJECT_COUNTS 38u
#define CO_COB_COUNTS 56u #define CO_COB_COUNTS 21u
#define CO_TXPDO_COUNTS 5u #define CO_TXPDO_COUNTS 5u
#define CO_RXPDO_COUNTS 3u #define CO_RXPDO_COUNTS 3u
#define CO_SSDO_COUNTS 1u #define CO_SSDO_COUNTS 1u
#define CO_CSDO_COUNTS 20u #define CO_CSDO_COUNTS 2u
#define CO_ASSIGN_COUNTS 0u #define CO_ASSIGN_COUNTS 0u
#define CO_MAX_ASSIGN_COUNTS 0u #define CO_MAX_ASSIGN_COUNTS 0u
#define CO_GUARDING_COUNTS CO_MAX_ASSIGN_COUNTS #define CO_GUARDING_COUNTS CO_MAX_ASSIGN_COUNTS
#define CO_ERR_CTRL_COUNTS 1u #define CO_ERR_CTRL_COUNTS 2u
#define CO_ERR_HIST_COUNTS 1u #define CO_ERR_HIST_COUNTS 1u
#define CO_ACT_ERR_HIST_COUNTS 0u #define CO_ACT_ERR_HIST_COUNTS 0u
#define CO_EMCY_CONS_COUNTS 0u #define CO_EMCY_CONS_COUNTS 0u
@ -40,11 +40,11 @@
#define CO_NMT_MASTER 1u #define CO_NMT_MASTER 1u
#define CO_LSS_MASTER_SUPPORTED 1u #define CO_LSS_MASTER_SUPPORTED 1u
#define CO_SDO_SERVER_CNT 1u #define CO_SDO_SERVER_CNT 1u
#define CO_SDO_CLIENT_CNT 20u #define CO_SDO_CLIENT_CNT 2u
#define CO_PDO_TRANSMIT_CNT 5u #define CO_PDO_TRANSMIT_CNT 5u
#define CO_PDO_RECEIVE_CNT 3u #define CO_PDO_RECEIVE_CNT 3u
#define CO_MAX_MAP_ENTRIES 2u #define CO_MAX_MAP_ENTRIES 2u
#define CO_HB_CONSUMER_CNT 1u #define CO_HB_CONSUMER_CNT 2u
#define CO_EMCY_PRODUCER 1u #define CO_EMCY_PRODUCER 1u
#define CO_EMCY_ERROR_HISTORY 1u #define CO_EMCY_ERROR_HISTORY 1u
#define CO_SDO_BLOCK 1u #define CO_SDO_BLOCK 1u
@ -54,7 +54,7 @@
#define CO_SDO_QUEUE_LEN 0u #define CO_SDO_QUEUE_LEN 0u
#define CO_INHIBIT_SUPPORTED 1u #define CO_INHIBIT_SUPPORTED 1u
/* number of used COB objects */ /* number of used COB objects */
#define CO_COB_CNT 56u #define CO_COB_CNT 21u
/* Definition of number of call-back functions for each service*/ /* Definition of number of call-back functions for each service*/
@ -95,7 +95,7 @@
#define CO_LSS_INQUIRY_SERVICES 1 #define CO_LSS_INQUIRY_SERVICES 1
#define CODRV_MCAN_STM32_G4 #define CODRV_MCAN_STM32_G4
#define CONFIG_MCAN0 #define CONFIG_MCAN1
#define CUBE_MX_GENERATION #define CUBE_MX_GENERATION
#define NO_PRINTF #define NO_PRINTF

View File

@ -1,6 +1,6 @@
/* /*
* static indication definitions for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * static indication definitions for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* Tue Feb 11 13:50:12 2025 * Fri Feb 14 15:45:52 2025
*/ */
/* protect against multiple inclusion of the file */ /* protect against multiple inclusion of the file */

View File

@ -1,6 +1,6 @@
/* /*
* CO index/J1939 PGN/raw CAN-ID defines for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * CO index/J1939 PGN/raw CAN-ID defines for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* Tue Feb 11 13:50:11 2025 * Fri Feb 14 15:45:51 2025
*/ */
/* protect against multiple inclusion of the file */ /* protect against multiple inclusion of the file */
@ -34,24 +34,6 @@
#define S_COB_ID_SERVER_CLIENT 0x2u #define S_COB_ID_SERVER_CLIENT 0x2u
#define S_NODE_ID_OF_THE_SDO_SERVER 0x3u #define S_NODE_ID_OF_THE_SDO_SERVER 0x3u
#define I_SDO_CLIENT_PARAMETER1 0x1281u #define I_SDO_CLIENT_PARAMETER1 0x1281u
#define I_SDO_CLIENT_PARAMETER2 0x1282u
#define I_SDO_CLIENT_PARAMETER3 0x1283u
#define I_SDO_CLIENT_PARAMETER4 0x1284u
#define I_SDO_CLIENT_PARAMETER5 0x1285u
#define I_SDO_CLIENT_PARAMETER6 0x1286u
#define I_SDO_CLIENT_PARAMETER7 0x1287u
#define I_SDO_CLIENT_PARAMETER8 0x1288u
#define I_SDO_CLIENT_PARAMETER9 0x1289u
#define I_SDO_CLIENT_PARAMETER10 0x128au
#define I_SDO_CLIENT_PARAMETER11 0x128bu
#define I_SDO_CLIENT_PARAMETER12 0x128cu
#define I_SDO_CLIENT_PARAMETER13 0x128du
#define I_SDO_CLIENT_PARAMETER14 0x128eu
#define I_SDO_CLIENT_PARAMETER15 0x128fu
#define I_SDO_CLIENT_PARAMETER16 0x1290u
#define I_SDO_CLIENT_PARAMETER17 0x1291u
#define I_SDO_CLIENT_PARAMETER18 0x1292u
#define I_SDO_CLIENT_PARAMETER19 0x1293u
#define I_RECEIVE_PDO_COMMUNICATION_PARAMETER 0x1400u #define I_RECEIVE_PDO_COMMUNICATION_PARAMETER 0x1400u
#define S_COB_ID 0x1u #define S_COB_ID 0x1u
#define S_TRANSMISSION_TYPE 0x2u #define S_TRANSMISSION_TYPE 0x2u

View File

@ -1,6 +1,6 @@
/* /*
* object dictionary for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * object dictionary for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* Tue Feb 11 13:50:11 2025 * Fri Feb 14 15:45:52 2025
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -31,8 +31,8 @@
/* definition of static indication function pointers */ /* definition of static indication function pointers */
/* number of objects */ /* number of objects */
#define CO_OD_ASSIGN_CNT 56u #define CO_OD_ASSIGN_CNT 38u
#define CO_OBJ_DESC_CNT 212u #define CO_OBJ_DESC_CNT 141u
/* definition of managed variables */ /* definition of managed variables */
static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= { static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= {
@ -88,9 +88,9 @@ static REAL32 CO_STORAGE_CLASS od_r32[8]= {
/* definition of constants */ /* definition of constants */
static CO_CONST UNSIGNED8 CO_CONST_STORAGE_CLASS od_const_u8[9] = { static CO_CONST UNSIGNED8 CO_CONST_STORAGE_CLASS od_const_u8[9] = {
(UNSIGNED8)0u, (UNSIGNED8)0u,
(UNSIGNED8)1u,
(UNSIGNED8)4u,
(UNSIGNED8)2u, (UNSIGNED8)2u,
(UNSIGNED8)4u,
(UNSIGNED8)1u,
(UNSIGNED8)3u, (UNSIGNED8)3u,
(UNSIGNED8)254u, (UNSIGNED8)254u,
(UNSIGNED8)5u, (UNSIGNED8)5u,
@ -154,17 +154,18 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)0u, CO_DTYPE_U16_EMCY , (UNSIGNED16)4117u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1015:0*/ { (UNSIGNED8)0u, CO_DTYPE_U16_EMCY , (UNSIGNED16)4117u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1015:0*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1016:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1016:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1016:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1016:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1016:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U16_ERRCTRL, (UNSIGNED16)4119u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)1u},/* 0x1017:0*/ { (UNSIGNED8)0u, CO_DTYPE_U16_ERRCTRL, (UNSIGNED16)4119u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)1u},/* 0x1017:0*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1018:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1018:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1018:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1018:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1018:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1018:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U32_CONST, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1018:3*/ { (UNSIGNED8)3u, CO_DTYPE_U32_CONST, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1018:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U32_VAR , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1018:4*/ { (UNSIGNED8)4u, CO_DTYPE_U32_VAR , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1018:4*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1029:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1029:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U8_ERRCTRL, (UNSIGNED16)4137u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1029:1*/ { (UNSIGNED8)1u, CO_DTYPE_U8_ERRCTRL, (UNSIGNED16)4137u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1029:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_VAR , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1029:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_VAR , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1029:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U16_NMT , (UNSIGNED16)4138u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x102a:0*/ { (UNSIGNED8)0u, CO_DTYPE_U16_NMT , (UNSIGNED16)4138u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x102a:0*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1200:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1200:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1200:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1200:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1200:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1200:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1280:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1280:0*/
@ -175,94 +176,22 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1281:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1281:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1281:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1281:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1281:3*/ { (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1281:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1282:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1400:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1282:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1282:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1282:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1283:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1283:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1283:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1283:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1284:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1284:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1284:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1284:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1285:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1285:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1285:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1285:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1286:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1286:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1286:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1286:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1287:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1287:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1287:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1287:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1288:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1288:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1288:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1288:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1289:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1289:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1289:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1289:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x128a:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128a:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128a:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x128a:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x128b:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128b:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128b:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x128b:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x128c:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128c:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128c:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x128c:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x128d:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128d:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128d:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x128d:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x128e:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128e:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128e:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x128e:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x128f:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128f:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x128f:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x128f:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1290:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1290:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1290:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1290:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1291:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)18u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1291:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)18u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1291:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)18u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1291:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1292:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1292:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1292:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1292:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1293:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1293:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1293:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1293:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1400:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1400:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1400:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1400:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1400:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1401:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1401:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1401:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1401:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1401:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1401:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1402:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1402:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1402:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1402:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1402:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1402:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1600:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1600:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1600:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1600:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)10u},/* 0x1600:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)10u},/* 0x1600:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1601:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1601:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)11u},/* 0x1601:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)11u},/* 0x1601:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)12u},/* 0x1601:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)12u},/* 0x1601:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1602:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1602:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)13u},/* 0x1602:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)13u},/* 0x1602:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)14u},/* 0x1602:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)14u},/* 0x1602:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1800:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1800:0*/
@ -299,23 +228,23 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1804:5*/ { (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1804:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:6*/ { (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a00:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1a00:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)19u},/* 0x1a00:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)19u},/* 0x1a00:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)20u},/* 0x1a00:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)20u},/* 0x1a00:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a01:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1a01:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)21u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)21u},/* 0x1a01:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)21u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)21u},/* 0x1a01:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)22u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)22u},/* 0x1a01:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)22u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)22u},/* 0x1a01:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a02:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1a02:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)23u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)23u},/* 0x1a02:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)23u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)23u},/* 0x1a02:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)24u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)24u},/* 0x1a02:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)24u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)24u},/* 0x1a02:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a03:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1a03:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)25u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)25u},/* 0x1a03:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)25u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)25u},/* 0x1a03:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)26u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)26u},/* 0x1a03:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)26u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)26u},/* 0x1a03:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a04:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1a04:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)11u},/* 0x1a04:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)11u},/* 0x1a04:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)12u},/* 0x1a04:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)12u},/* 0x1a04:2*/
{ (UNSIGNED8)0u, CO_DTYPE_I32_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC, (UNSIGNED16)0u},/* 0x2001:0*/ { (UNSIGNED8)0u, CO_DTYPE_I32_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC, (UNSIGNED16)0u},/* 0x2001:0*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x3000:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x3000:0*/
{ (UNSIGNED8)1u, CO_DTYPE_I16_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR, (UNSIGNED16)0u},/* 0x3000:1*/ { (UNSIGNED8)1u, CO_DTYPE_I16_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR, (UNSIGNED16)0u},/* 0x3000:1*/
{ (UNSIGNED8)2u, CO_DTYPE_I16_VAR , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC, (UNSIGNED16)1u},/* 0x3000:2*/ { (UNSIGNED8)2u, CO_DTYPE_I16_VAR , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC, (UNSIGNED16)1u},/* 0x3000:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x6000:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x6000:0*/
@ -367,56 +296,38 @@ CO_CONST CO_OD_ASSIGN_T CO_CONST_STORAGE_CLASS od_assign[CO_OD_ASSIGN_CNT] = {
{ 0x1008u, 1u, 0u, CO_ODTYPE_VAR, 4u }, { 0x1008u, 1u, 0u, CO_ODTYPE_VAR, 4u },
{ 0x1014u, 1u, 0u, CO_ODTYPE_VAR, 5u }, { 0x1014u, 1u, 0u, CO_ODTYPE_VAR, 5u },
{ 0x1015u, 1u, 0u, CO_ODTYPE_VAR, 6u }, { 0x1015u, 1u, 0u, CO_ODTYPE_VAR, 6u },
{ 0x1016u, 2u, 1u, CO_ODTYPE_ARRAY, 7u }, { 0x1016u, 3u, 2u, CO_ODTYPE_ARRAY, 7u },
{ 0x1017u, 1u, 0u, CO_ODTYPE_VAR, 9u }, { 0x1017u, 1u, 0u, CO_ODTYPE_VAR, 10u },
{ 0x1018u, 5u, 4u, CO_ODTYPE_STRUCT, 10u }, { 0x1018u, 5u, 4u, CO_ODTYPE_STRUCT, 11u },
{ 0x1029u, 3u, 2u, CO_ODTYPE_ARRAY, 15u }, { 0x1029u, 3u, 2u, CO_ODTYPE_ARRAY, 16u },
{ 0x102au, 1u, 0u, CO_ODTYPE_VAR, 18u }, { 0x102au, 1u, 0u, CO_ODTYPE_VAR, 19u },
{ 0x1200u, 3u, 2u, CO_ODTYPE_STRUCT, 19u }, { 0x1200u, 3u, 2u, CO_ODTYPE_STRUCT, 20u },
{ 0x1280u, 4u, 3u, CO_ODTYPE_STRUCT, 22u }, { 0x1280u, 4u, 3u, CO_ODTYPE_STRUCT, 23u },
{ 0x1281u, 4u, 3u, CO_ODTYPE_STRUCT, 26u }, { 0x1281u, 4u, 3u, CO_ODTYPE_STRUCT, 27u },
{ 0x1282u, 4u, 3u, CO_ODTYPE_STRUCT, 30u }, { 0x1400u, 3u, 2u, CO_ODTYPE_STRUCT, 31u },
{ 0x1283u, 4u, 3u, CO_ODTYPE_STRUCT, 34u }, { 0x1401u, 3u, 2u, CO_ODTYPE_STRUCT, 34u },
{ 0x1284u, 4u, 3u, CO_ODTYPE_STRUCT, 38u }, { 0x1402u, 3u, 2u, CO_ODTYPE_STRUCT, 37u },
{ 0x1285u, 4u, 3u, CO_ODTYPE_STRUCT, 42u }, { 0x1600u, 3u, 2u, CO_ODTYPE_STRUCT, 40u },
{ 0x1286u, 4u, 3u, CO_ODTYPE_STRUCT, 46u }, { 0x1601u, 3u, 2u, CO_ODTYPE_STRUCT, 43u },
{ 0x1287u, 4u, 3u, CO_ODTYPE_STRUCT, 50u }, { 0x1602u, 3u, 2u, CO_ODTYPE_STRUCT, 46u },
{ 0x1288u, 4u, 3u, CO_ODTYPE_STRUCT, 54u }, { 0x1800u, 6u, 5u, CO_ODTYPE_STRUCT, 49u },
{ 0x1289u, 4u, 3u, CO_ODTYPE_STRUCT, 58u }, { 0x1801u, 7u, 6u, CO_ODTYPE_STRUCT, 55u },
{ 0x128au, 4u, 3u, CO_ODTYPE_STRUCT, 62u }, { 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 62u },
{ 0x128bu, 4u, 3u, CO_ODTYPE_STRUCT, 66u }, { 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 69u },
{ 0x128cu, 4u, 3u, CO_ODTYPE_STRUCT, 70u }, { 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 76u },
{ 0x128du, 4u, 3u, CO_ODTYPE_STRUCT, 74u }, { 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 83u },
{ 0x128eu, 4u, 3u, CO_ODTYPE_STRUCT, 78u }, { 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 86u },
{ 0x128fu, 4u, 3u, CO_ODTYPE_STRUCT, 82u }, { 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 89u },
{ 0x1290u, 4u, 3u, CO_ODTYPE_STRUCT, 86u }, { 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 92u },
{ 0x1291u, 4u, 3u, CO_ODTYPE_STRUCT, 90u }, { 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 95u },
{ 0x1292u, 4u, 3u, CO_ODTYPE_STRUCT, 94u }, { 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 98u },
{ 0x1293u, 4u, 3u, CO_ODTYPE_STRUCT, 98u }, { 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 99u },
{ 0x1400u, 3u, 2u, CO_ODTYPE_STRUCT, 102u }, { 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 102u },
{ 0x1401u, 3u, 2u, CO_ODTYPE_STRUCT, 105u }, { 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 108u },
{ 0x1402u, 3u, 2u, CO_ODTYPE_STRUCT, 108u }, { 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 115u },
{ 0x1600u, 3u, 2u, CO_ODTYPE_STRUCT, 111u }, { 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 122u },
{ 0x1601u, 3u, 2u, CO_ODTYPE_STRUCT, 114u }, { 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 131u },
{ 0x1602u, 3u, 2u, CO_ODTYPE_STRUCT, 117u }, { 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 136u },
{ 0x1800u, 6u, 5u, CO_ODTYPE_STRUCT, 120u },
{ 0x1801u, 7u, 6u, CO_ODTYPE_STRUCT, 126u },
{ 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 133u },
{ 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 140u },
{ 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 147u },
{ 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 154u },
{ 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 157u },
{ 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 160u },
{ 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 163u },
{ 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 166u },
{ 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 169u },
{ 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 170u },
{ 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 173u },
{ 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 179u },
{ 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 186u },
{ 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 193u },
{ 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 202u },
{ 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 207u },
}; };
/* static PDO mapping tables */ /* static PDO mapping tables */
@ -622,98 +533,8 @@ CO_COMMON_INIT_VAL_T commonInitVars = {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(3u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(4u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(5u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(6u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(7u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(8u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(9u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(10u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(11u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(12u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(13u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(14u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(15u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(16u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(17u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(18u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(19u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
retVal = coSdoClientInit(20u);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
/* initialize error control */ /* initialize error control */
retVal = coErrorCtrlInit(od_const_u16[1], 1u); retVal = coErrorCtrlInit(od_const_u16[1], 2u);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
@ -827,150 +648,6 @@ RET_T userOverwriteCobIdSettings(void)
if (ret == RET_OK) { if (ret == RET_OK) {
ret = coOdSetCobid(0x1281, 2, cobId); ret = coOdSetCobid(0x1281, 2, cobId);
} }
ret = coOdGetDefaultVal_u32(0x1282, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1282, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1282, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1282, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1283, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1283, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1283, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1283, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1284, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1284, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1284, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1284, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1285, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1285, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1285, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1285, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1286, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1286, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1286, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1286, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1287, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1287, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1287, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1287, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1288, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1288, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1288, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1288, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1289, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1289, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1289, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1289, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x128a, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128a, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x128a, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128a, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x128b, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128b, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x128b, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128b, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x128c, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128c, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x128c, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128c, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x128d, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128d, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x128d, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128d, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x128e, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128e, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x128e, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128e, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x128f, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128f, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x128f, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x128f, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1290, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1290, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1290, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1290, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1291, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1291, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1291, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1291, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1292, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1292, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1292, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1292, 2, cobId);
}
ret = coOdGetDefaultVal_u32(0x1293, 1, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1293, 1, cobId);
}
ret = coOdGetDefaultVal_u32(0x1293, 2, &cobId);
if (ret == RET_OK) {
ret = coOdSetCobid(0x1293, 2, cobId);
}
/* RxPDO COB IDs */ /* RxPDO COB IDs */
cobId = nodeId + 0x200; cobId = nodeId + 0x200;

View File

@ -40,10 +40,17 @@
#define SDL_LSS_NODE_HB_MS 1000uL #define SDL_LSS_NODE_HB_MS 1000uL
#define SDL_LSS_NODE_STATE_RESET_INTERVAL 3u #define SDL_LSS_NODE_STATE_RESET_INTERVAL 3u
#define SDL_TEST_BENCH_SDO_TIMEOUT 1000u
#define SDL_TEST_BENCH_STARTUP_TIMEOUT 10000uLL
#define SDL_POSITION_SETPOINT_INDEX 0x6002 #define SDL_POSITION_SETPOINT_INDEX 0x6002
#define SDL_POSITION_SETPOINT_SUB_INDEX 0x0 #define SDL_POSITION_SETPOINT_SUB_INDEX 0x0
#define SDL_POSITION_FEEDBACK_INDEX 0x6004 #define SDL_POSITION_FEEDBACK_INDEX 0x6004
#define SDL_POSITION_FEEDBACK_SUB_INDEX 0x0 #define SDL_POSITION_FEEDBACK_SUB_INDEX 0x0
#define SDL_SDO_CLIENT_COB 0x1280
#define SDL_SDO_CLIENT_TO_SERVER_COB 0x600
#define SDL_SDO_SERVER_TO_CLIENT_COB 0x580
/****************************************************************************** /******************************************************************************
* Type Declarations * Type Declarations
******************************************************************************/ ******************************************************************************/
@ -65,13 +72,26 @@ static bool monitorSleep_gb = CO_FALSE; /**< sleep flag */
static bool masterStarted_gb; /**< master started flag */ static bool masterStarted_gb; /**< master started flag */
static const SdlLssNodeInfo_t nodeLookupTable_gast[SDL_LSS_NODE_COUNT] = static const SdlLssNodeInfo_t nodeLookupTable_gast[SDL_LSS_NODE_COUNT] =
{ {
{0x319, 0x0, 0x0, 0x0, 0x12}, {0x319, 0x4d2, 0x1, 0x01, 0x5} ,
{0x319, 0x0, 0x3, 0x0, 0x6}, {0x319, 0x4d2, 0x1, 0x02, 0x6} ,
{0x319, 0x2, 0x0, 0x0, 0x7}, {0x319, 0x4d2, 0x1, 0x03, 0x7} ,
{0x319, 0x4d2, 0x1, 0x0, 0x18}, {0x319, 0x4d2, 0x1, 0x04, 0x8} ,
{0x31, 0x4d2, 0x5, 0x0, 0x9}, {0x319, 0x4d2, 0x1, 0x05, 0x9} ,
{0x3, 0x4d2, 0x6, 0x0, 0x10}, {0x319, 0x4d2, 0x1, 0x06, 0xA} ,
{0x1, 0x4d2, 0x7, 0x0, 0x11} {0x319, 0x4d2, 0x1, 0x07, 0xB} ,
{0x319, 0x4d2, 0x1, 0x08, 0xC} ,
{0x319, 0x4d2, 0x1, 0x09, 0xD} ,
{0x319, 0x4d2, 0x1, 0x0A, 0xE} ,
{0x319, 0x4d2, 0x1, 0x0B, 0xF} ,
{0x319, 0x4d2, 0x1, 0x0C, 0x10},
{0x319, 0x4d2, 0x1, 0x0D, 0x11},
{0x319, 0x4d2, 0x1, 0x0E, 0x12},
{0x319, 0x4d2, 0x1, 0x0F, 0x13},
{0x319, 0x4d2, 0x1, 0x10, 0x14},
{0x319, 0x4d2, 0x1, 0x11, 0x15},
{0x319, 0x4d2, 0x1, 0x12, 0x16},
{0x319, 0x4d2, 0x1, 0x13, 0x17},
{0x319, 0x4d2, 0x1, 0x14, 0x18}
}; };
static CO_NMT_STATE_T nodeNMTState_gaen[SDL_LSS_NODE_COUNT]; static CO_NMT_STATE_T nodeNMTState_gaen[SDL_LSS_NODE_COUNT];
/****************************************************************************** /******************************************************************************
@ -92,7 +112,7 @@ static RET_T SdlLssSetSdoCobID(uint8 sdoNr_u8, uint8 nodeId_u8);
* Need this function for overwriting the manual COB ids * Need this function for overwriting the manual COB ids
* for the TPDO. */ * for the TPDO. */
extern void userOverwriteCobIdSettings(void); extern void userOverwriteCobIdSettings(void);
static bool SdlAreAllNodesOperational(void);
static void SdlEnduranceTestBenchRun(void); static void SdlEnduranceTestBenchRun(void);
/****************************************************************************** /******************************************************************************
* Public Function Definitions * Public Function Definitions
@ -107,6 +127,10 @@ void SdlRun(void)
{ {
SdlRunCanopen(); SdlRunCanopen();
SdlLssNodeHandlerRun(); SdlLssNodeHandlerRun();
if (SdlAreAllNodesOperational())
{
SdlEnduranceTestBenchRun();
}
} }
@ -119,21 +143,22 @@ void SdlRun(void)
*/ */
static void SdlInitCanopen(void) static void SdlInitCanopen(void)
{ {
RET_T retval;
HalSystemInit(); HalSystemInit();
codrvHardwareInit(); codrvHardwareInit();
codrvCanInit(SDL_CANOPEN_BITRATE); retval = codrvCanInit(SDL_CANOPEN_BITRATE);
codrvTimerSetup(CO_TIMER_INTERVAL); retval = codrvTimerSetup(CO_TIMER_INTERVAL);
/* CANopen Initialization */ /* CANopen Initialization */
coCanOpenStackInit(SdlOverwriteLoadIndication); retval = coCanOpenStackInit(SdlOverwriteLoadIndication);
coEventRegister_LSS_MASTER(SdlLssIndCallback); retval = coEventRegister_LSS_MASTER(SdlLssIndCallback);
coEventRegister_ERRCTRL(SdlLssHbMonitorCallback); retval = coEventRegister_ERRCTRL(SdlLssHbMonitorCallback);
/* enable CAN communication */ /* enable CAN communication */
codrvCanEnable(); retval = codrvCanEnable();
coTimerStart(&monitorTimer_gst, SDL_APPL_TIMER_TIME, SdlLssToggleMonitorFlag, NULL, CO_TIMER_ATTR_ROUNDUP_CYCLIC); retval = coTimerStart(&monitorTimer_gst, SDL_APPL_TIMER_TIME, SdlLssToggleMonitorFlag, NULL, CO_TIMER_ATTR_ROUNDUP_CYCLIC);
coTimerStart(&nodeResetTimer_gst, (SDL_LSS_NODE_STATE_RESET_INTERVAL * 1000000uLL), SdlLssResetNodesCallback, NULL, CO_TIMER_ATTR_ROUNDUP_CYCLIC); retval = coTimerStart(&nodeResetTimer_gst, (SDL_LSS_NODE_STATE_RESET_INTERVAL * 1000000uLL), SdlLssResetNodesCallback, NULL, CO_TIMER_ATTR_ROUNDUP_CYCLIC);
coNmtStateReq(SDL_PU_MASTER_NODE_ID, CO_NMT_STATE_OPERATIONAL, CO_TRUE); retval = coNmtStateReq(SDL_PU_MASTER_NODE_ID, CO_NMT_STATE_OPERATIONAL, CO_TRUE);
coLssIdentifyNonConfiguredSlaves(SDL_LSS_CONFIG_TIMEOUT, SDL_LSS_CONFIG_INTERVAL); coLssIdentifyNonConfiguredSlaves(SDL_LSS_CONFIG_TIMEOUT, SDL_LSS_CONFIG_INTERVAL);
} }
@ -147,7 +172,6 @@ static void SdlRunCanopen(void)
{ {
coCommTask(); coCommTask();
SdlLssNodeHandlerRun(); SdlLssNodeHandlerRun();
SdlEnduranceTestBenchRun();
} }
@ -259,20 +283,19 @@ static uint32 SdlLssConfigureNode(uint8 arrIndex_u8)
uint32 error_u32 = SDL_DEFAULT_ERROR; uint32 error_u32 = SDL_DEFAULT_ERROR;
RET_T retVal_en = RET_INTERNAL_ERROR; RET_T retVal_en = RET_INTERNAL_ERROR;
uint16 hb_u16 = 500u; uint16 hb_u16 = 500u;
/* Get the node ID from the lookup table using arrIndex_u8 */
/* Get the node ID from the lookup table using the index passed */
uint8 nodeId_u8 = nodeLookupTable_gast[arrIndex_u8].nodeId_u8; uint8 nodeId_u8 = nodeLookupTable_gast[arrIndex_u8].nodeId_u8;
/* Add node to hb consumers with +25% tolerance /* Add node to heartbeat consumers with +25% tolerance
* Rationale - Allows some flexibility in detecting timeouts due to minor clock drifts, * Rationale - Allows some flexibility in detecting timeouts due to minor clock drifts,
* bus delays, or transmission issues.*/ * bus delays, or transmission issues.*/
retVal_en = coHbConsumerSet(nodeId_u8, retVal_en = coHbConsumerSet(nodeId_u8,
((SDL_LSS_NODE_HB_MS / 100 * 25) + SDL_LSS_NODE_HB_MS)); ((SDL_LSS_NODE_HB_MS / 100u * 25u) + SDL_LSS_NODE_HB_MS));
retVal_en = coHbConsumerStart(nodeId_u8); retVal_en = coHbConsumerStart(nodeId_u8);
/* setup SDO channel */ /* setup SDO channel */
retVal_en = SdlLssSetSdoCobID((arrIndex_u8 + 1), nodeLookupTable_gast[arrIndex_u8].nodeId_u8); retVal_en = SdlLssSetSdoCobID((arrIndex_u8 + 1u), nodeLookupTable_gast[arrIndex_u8].nodeId_u8);
retVal_en = coSdoWrite((arrIndex_u8 + 1), 0x1017u, 0u, (uint8*)(&hb_u16), 2u, CO_FALSE, 1000u);
/* start node */ /* start node */
retVal_en = coNmtStateReq(nodeId_u8, CO_NMT_STATE_OPERATIONAL, CO_FALSE); retVal_en = coNmtStateReq(nodeId_u8, CO_NMT_STATE_OPERATIONAL, CO_FALSE);
@ -339,10 +362,10 @@ static void SdlLssIndCallback(CO_LSS_MASTER_SERVICE_T service_en, uint16 errorCo
case CO_LSS_MASTER_SERVICE_FASTSCAN: case CO_LSS_MASTER_SERVICE_FASTSCAN:
/* Match detected node with lookup table */ /* Match detected node with lookup table */
for (uint8 i_u8 = 0; i_u8 < SDL_LSS_NODE_COUNT; i_u8++) for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++)
{ {
if (pIdentity_pu32[0] == nodeLookupTable_gast[i_u8].vendorId_u32 && if (pIdentity_pu32[0] == nodeLookupTable_gast[i_u8].vendorId_u32 &&
pIdentity_pu32[1] == nodeLookupTable_gast[i_u8].productId_u32 && pIdentity_pu32[1] == nodeLookupTable_gast[i_u8].productId_u32 &&
pIdentity_pu32[2] == nodeLookupTable_gast[i_u8].versionNbr_u32 && pIdentity_pu32[2] == nodeLookupTable_gast[i_u8].versionNbr_u32 &&
pIdentity_pu32[3] == nodeLookupTable_gast[i_u8].serialNbr_u32) pIdentity_pu32[3] == nodeLookupTable_gast[i_u8].serialNbr_u32)
{ {
@ -446,7 +469,7 @@ static void SdlLssResetNodesCallback(void *pData_pv)
(void)pData_pv; (void)pData_pv;
/* reset defined nodes without known state */ /* reset defined nodes without known state */
for (arrIndex_u8 = 0u; arrIndex_u8 < 3; arrIndex_u8++) for (arrIndex_u8 = 0u; arrIndex_u8 < SDL_LSS_NODE_COUNT; arrIndex_u8++)
{ {
if ((nodeNMTState_gaen[arrIndex_u8] != CO_NMT_STATE_PREOP) && if ((nodeNMTState_gaen[arrIndex_u8] != CO_NMT_STATE_PREOP) &&
(nodeNMTState_gaen[arrIndex_u8] != CO_NMT_STATE_OPERATIONAL)) (nodeNMTState_gaen[arrIndex_u8] != CO_NMT_STATE_OPERATIONAL))
@ -472,95 +495,106 @@ static RET_T SdlLssSetSdoCobID(uint8 sdoNr_u8, uint8 nodeId_u8)
{ {
uint16 cobIndex_u16; uint16 cobIndex_u16;
uint32 newCobId_u32; uint32 newCobId_u32;
RET_T retVal = RET_INTERNAL_ERROR; RET_T retVal_en = RET_INTERNAL_ERROR;
/* get od index of sdoNr */ /* get od index of sdoNr */
cobIndex_u16 = 0x1280u + sdoNr_u8 - 1u; cobIndex_u16 = SDL_SDO_CLIENT_COB + sdoNr_u8 - 1u; /* SDO starts from 1280 index */
/* set cobID for client to server direction (request) */ /* set cobID for client to server direction (request) */
newCobId_u32 = 0x600u + nodeId_u8; newCobId_u32 = SDL_SDO_CLIENT_TO_SERVER_COB + nodeId_u8;
retVal = coOdSetCobid(cobIndex_u16, 1u, newCobId_u32); retVal_en = coOdSetCobid(cobIndex_u16, 1u, newCobId_u32);
if (retVal == RET_OK) if (retVal_en == RET_OK)
{ {
/* set cobID for server to client direction (response) */ /* set cobID for server to client direction (response) */
newCobId_u32 = 0x580u + nodeId_u8; newCobId_u32 = SDL_SDO_SERVER_TO_CLIENT_COB + nodeId_u8;
retVal = coOdSetCobid(cobIndex_u16, 2u, newCobId_u32); retVal_en = coOdSetCobid(cobIndex_u16, 2u, newCobId_u32);
} }
/* print failed setup details */ /* print failed setup details */
if (retVal != RET_OK) if (retVal_en != RET_OK)
{ {
/* ERROR */ /* ERROR */
} }
return retVal; return retVal_en;
} }
/**
* @brief This is the main function that runs the endurance
* test bench.
*
* @return void
*
*/
static void SdlEnduranceTestBenchRun(void) static void SdlEnduranceTestBenchRun(void)
{ {
RET_T retVal_en = RET_INTERNAL_ERROR; RET_T retVal_en;
uint16 max_u16 = NMS_UINT8_MAX; uint8 max_u8 = NMS_UINT8_MAX;
uint16 min_u16 = 0u; uint8 min_u8 = 0u;
static uint64 startTime_u64 = 0uLL; static uint64 startTime_u64 = 0uLL;
uint8 alternate_u8 = 0u; uint8 alternate_u8 = 0u;
uint64 currentTime_u64; uint64 currentTime_u64;
if(startTime_u64 == 0uLL) if(startTime_u64 == 0uLL)
{ {
HalSystemGetRunTimeMs(&startTime_u64); HalSystemGetRunTimeMs(&startTime_u64);
srand(startTime_u64); srand(startTime_u64);
} }
HalSystemGetRunTimeMs(&currentTime_u64); HalSystemGetRunTimeMs(&currentTime_u64);
if(currentTime_u64 - startTime_u64 <= 10000uLL) if(currentTime_u64 - startTime_u64 <= SDL_TEST_BENCH_STARTUP_TIMEOUT)
{ {
if(alternate_u8 == 0u) if(alternate_u8 == 0u)
{ {
for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT/2; i_u8++) for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT / 2; i_u8++)
{ {
retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX, (uint8*)(&max_u16), 2u, CO_FALSE, 1000u); retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
(uint8*)(&max_u8), sizeof(max_u8), CO_FALSE, SDL_TEST_BENCH_SDO_TIMEOUT);
} }
for (uint8 i_u8 = 10u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++) for (uint8 i_u8 = 10u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++)
{ {
retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX, (uint8*)(&min_u16), 2u, CO_FALSE, 1000u); retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
(uint8*)(&min_u8), sizeof(min_u8), CO_FALSE, SDL_TEST_BENCH_SDO_TIMEOUT);
} }
} }
else else
{ {
for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT/2; i_u8++) for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT / 2; i_u8++)
{ {
retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX, (uint8*)(&min_u16), 2u, CO_FALSE, 1000u); retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
(uint8*)(&min_u8), sizeof(min_u8), CO_FALSE, SDL_TEST_BENCH_SDO_TIMEOUT);
} }
for (uint8 i_u8 = 10u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++) for (uint8 i_u8 = 10u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++)
{ {
retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX, (uint8*)(&max_u16), 2u, CO_FALSE, 1000u); retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
(uint8*)(&max_u8), sizeof(max_u8), CO_FALSE, SDL_TEST_BENCH_SDO_TIMEOUT);
} }
} }
uint16 readPos_u16 = 0u; uint8 readPos_u8 = 0u;
bool allMotorsReached_b = false; bool allMotorsReached_b = false;
while (!allMotorsReached_b) while (!allMotorsReached_b)
{ {
allMotorsReached_b = true; // Assume all motors have reached the position allMotorsReached_b = true; /* Assume all motors have reached the position */
for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++) for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++)
{ {
retVal_en = coSdoRead((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX, (uint8*)(&readPos_u16), 2u, CO_FALSE, 1000u); retVal_en = coSdoRead((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
(uint8*)(&readPos_u8), sizeof(readPos_u8), CO_FALSE, SDL_TEST_BENCH_SDO_TIMEOUT);
if (alternate_u8 == 0u) if (alternate_u8 == 0u)
{ {
if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u16 != max_u16) || if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u8 != max_u8) ||
(i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u16 != min_u16)) (i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u8 != min_u8))
{ {
allMotorsReached_b = false; // Keep waiting allMotorsReached_b = false; /* Keep waiting */
} }
} }
else else
{ {
if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u16 != min_u16) || if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u8 != min_u8) ||
(i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u16 != max_u16)) (i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u8 != max_u8))
{ {
allMotorsReached_b = false; // Keep waiting allMotorsReached_b = false; /* Keep waiting */
} }
} }
} }
@ -571,9 +605,28 @@ static void SdlEnduranceTestBenchRun(void)
{ {
for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++) for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++)
{ {
uint16 randomPos_u16 = (uint16)(rand() % (NMS_UINT8_MAX + 1)); uint8 randomPos_u8 = (rand() % (NMS_UINT8_MAX + 1));
retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX, (uint8*)(&randomPos_u16), 2u, CO_FALSE, 1000u); retVal_en = coSdoWrite((i_u8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
(uint8*)(&randomPos_u8), sizeof(randomPos_u8), CO_FALSE, SDL_TEST_BENCH_SDO_TIMEOUT);
} }
} }
} }
/**
* @brief Checks if all nodes are in OPERATIONAL state.
*
* @return CO_TRUE if all nodes are OPERATIONAL, CO_FALSE otherwise.
*/
static bool SdlAreAllNodesOperational(void)
{
for (uint8 i_u8 = 0u; i_u8 < SDL_LSS_NODE_COUNT; i_u8++)
{
if (nodeNMTState_gaen[i_u8] != CO_NMT_STATE_OPERATIONAL)
{
return CO_FALSE; /* If any node is not in OPERATIONAL, return false */
}
}
return CO_TRUE;
}