diff --git a/EnduranceTestBench/coappl/enduranceTestBench.cddp b/EnduranceTestBench/coappl/enduranceTestBench.cddp index 7298264..11d0663 100644 Binary files a/EnduranceTestBench/coappl/enduranceTestBench.cddp and b/EnduranceTestBench/coappl/enduranceTestBench.cddp differ diff --git a/EnduranceTestBench/coappl/enduranceTestBench.eds b/EnduranceTestBench/coappl/enduranceTestBench.eds index f39b661..a6839ae 100644 --- a/EnduranceTestBench/coappl/enduranceTestBench.eds +++ b/EnduranceTestBench/coappl/enduranceTestBench.eds @@ -5,10 +5,10 @@ FileVersion=1.0 FileRevision=1.0 EDSVersion=4.0 Description=EDS -CreationTime=13:50PM -CreationDate=02-11-25 -ModificationTime=13:50PM -ModificationDate=02-11-25 +CreationTime=15:45PM +CreationDate=02-14-25 +ModificationTime=15:45PM +ModificationDate=02-14-25 CreatedBy=Aniket Saha ModifiedBy=Aniket Saha @@ -61,7 +61,7 @@ SupportedObjects=2 2=0x3000 [OptionalObjects] -SupportedObjects=51 +SupportedObjects=33 1=0x1003 2=0x1008 3=0x1014 @@ -73,46 +73,28 @@ SupportedObjects=51 9=0x1200 10=0x1280 11=0x1281 -12=0x1282 -13=0x1283 -14=0x1284 -15=0x1285 -16=0x1286 -17=0x1287 -18=0x1288 -19=0x1289 -20=0x128a -21=0x128b -22=0x128c -23=0x128d -24=0x128e -25=0x128f -26=0x1290 -27=0x1291 -28=0x1292 -29=0x1293 -30=0x1400 -31=0x1401 -32=0x1402 -33=0x1600 -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 +12=0x1400 +13=0x1401 +14=0x1402 +15=0x1600 +16=0x1601 +17=0x1602 +18=0x1800 +19=0x1801 +20=0x1802 +21=0x1803 +22=0x1804 +23=0x1a00 +24=0x1a01 +25=0x1a02 +26=0x1a03 +27=0x1a04 +28=0x6000 +29=0x6001 +30=0x6002 +31=0x6003 +32=0x6004 +33=0x6005 [1000] ParameterName=Device Type @@ -177,7 +159,7 @@ DefaultValue=0x0 [1016] ParameterName=Consumer Heartbeat Time ObjectType=8 -SubNumber=2 +SubNumber=3 [1016sub0] ParameterName=Number of entries @@ -185,7 +167,7 @@ ObjectType=7 DataType=5 AccessType=ro PDOMapping=0 -DefaultValue=1 +DefaultValue=2 [1016sub1] ParameterName=Consumer Heartbeat Time @@ -195,6 +177,14 @@ AccessType=rw PDOMapping=0 DefaultValue=0x0000 +[1016sub2] +ParameterName=Consumer Heartbeat Time +ObjectType=7 +DataType=7 +AccessType=rw +PDOMapping=0 +DefaultValue=0x0000 + [1017] ParameterName=Producer Heartbeat Time ObjectType=7 @@ -389,672 +379,6 @@ DataType=5 AccessType=rw 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] ParameterName=Receive PDO Communication Parameter ObjectType=9 diff --git a/EnduranceTestBench/coappl/gen_define.h b/EnduranceTestBench/coappl/gen_define.h index b58c0c1..f069b6b 100644 --- a/EnduranceTestBench/coappl/gen_define.h +++ b/EnduranceTestBench/coappl/gen_define.h @@ -19,17 +19,17 @@ #define CO_REC_BUFFER_COUNTS 10u #define CO_TR_BUFFER_COUNTS 20u /* Number of objects per line */ -#define CO_OBJECTS_LINE_0_CNT 56u -#define CO_OBJECT_COUNTS 56u -#define CO_COB_COUNTS 56u +#define CO_OBJECTS_LINE_0_CNT 38u +#define CO_OBJECT_COUNTS 38u +#define CO_COB_COUNTS 21u #define CO_TXPDO_COUNTS 5u #define CO_RXPDO_COUNTS 3u #define CO_SSDO_COUNTS 1u -#define CO_CSDO_COUNTS 20u +#define CO_CSDO_COUNTS 2u #define CO_ASSIGN_COUNTS 0u #define CO_MAX_ASSIGN_COUNTS 0u #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_ACT_ERR_HIST_COUNTS 0u #define CO_EMCY_CONS_COUNTS 0u @@ -40,11 +40,11 @@ #define CO_NMT_MASTER 1u #define CO_LSS_MASTER_SUPPORTED 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_RECEIVE_CNT 3u #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_ERROR_HISTORY 1u #define CO_SDO_BLOCK 1u @@ -54,7 +54,7 @@ #define CO_SDO_QUEUE_LEN 0u #define CO_INHIBIT_SUPPORTED 1u /* 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*/ @@ -95,7 +95,7 @@ #define CO_LSS_INQUIRY_SERVICES 1 #define CODRV_MCAN_STM32_G4 -#define CONFIG_MCAN0 +#define CONFIG_MCAN1 #define CUBE_MX_GENERATION #define NO_PRINTF diff --git a/EnduranceTestBench/coappl/gen_indication.h b/EnduranceTestBench/coappl/gen_indication.h index e88a322..e68178f 100644 --- a/EnduranceTestBench/coappl/gen_indication.h +++ b/EnduranceTestBench/coappl/gen_indication.h @@ -1,6 +1,6 @@ /* * 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 */ diff --git a/EnduranceTestBench/coappl/gen_indices.h b/EnduranceTestBench/coappl/gen_indices.h index c148adf..7de5f8e 100644 --- a/EnduranceTestBench/coappl/gen_indices.h +++ b/EnduranceTestBench/coappl/gen_indices.h @@ -1,6 +1,6 @@ /* * 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 */ @@ -34,24 +34,6 @@ #define S_COB_ID_SERVER_CLIENT 0x2u #define S_NODE_ID_OF_THE_SDO_SERVER 0x3u #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 S_COB_ID 0x1u #define S_TRANSMISSION_TYPE 0x2u diff --git a/EnduranceTestBench/coappl/gen_objdict.c b/EnduranceTestBench/coappl/gen_objdict.c index 2bc3029..0ec0758 100644 --- a/EnduranceTestBench/coappl/gen_objdict.c +++ b/EnduranceTestBench/coappl/gen_objdict.c @@ -1,6 +1,6 @@ /* * 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 @@ -31,8 +31,8 @@ /* definition of static indication function pointers */ /* number of objects */ -#define CO_OD_ASSIGN_CNT 56u -#define CO_OBJ_DESC_CNT 212u +#define CO_OD_ASSIGN_CNT 38u +#define CO_OBJ_DESC_CNT 141u /* definition of managed variables */ static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= { @@ -88,9 +88,9 @@ static REAL32 CO_STORAGE_CLASS od_r32[8]= { /* definition of constants */ static CO_CONST UNSIGNED8 CO_CONST_STORAGE_CLASS od_const_u8[9] = { (UNSIGNED8)0u, - (UNSIGNED8)1u, - (UNSIGNED8)4u, (UNSIGNED8)2u, + (UNSIGNED8)4u, + (UNSIGNED8)1u, (UNSIGNED8)3u, (UNSIGNED8)254u, (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_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)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_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)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)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)1u, CO_DTYPE_U8_ERRCTRL, (UNSIGNED16)4137u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1029:1*/ + { (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)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)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)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*/ @@ -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)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)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1282: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)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_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)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)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)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)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)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)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*/ @@ -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)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)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)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)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)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)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)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_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)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*/ @@ -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 }, { 0x1014u, 1u, 0u, CO_ODTYPE_VAR, 5u }, { 0x1015u, 1u, 0u, CO_ODTYPE_VAR, 6u }, - { 0x1016u, 2u, 1u, CO_ODTYPE_ARRAY, 7u }, - { 0x1017u, 1u, 0u, CO_ODTYPE_VAR, 9u }, - { 0x1018u, 5u, 4u, CO_ODTYPE_STRUCT, 10u }, - { 0x1029u, 3u, 2u, CO_ODTYPE_ARRAY, 15u }, - { 0x102au, 1u, 0u, CO_ODTYPE_VAR, 18u }, - { 0x1200u, 3u, 2u, CO_ODTYPE_STRUCT, 19u }, - { 0x1280u, 4u, 3u, CO_ODTYPE_STRUCT, 22u }, - { 0x1281u, 4u, 3u, CO_ODTYPE_STRUCT, 26u }, - { 0x1282u, 4u, 3u, CO_ODTYPE_STRUCT, 30u }, - { 0x1283u, 4u, 3u, CO_ODTYPE_STRUCT, 34u }, - { 0x1284u, 4u, 3u, CO_ODTYPE_STRUCT, 38u }, - { 0x1285u, 4u, 3u, CO_ODTYPE_STRUCT, 42u }, - { 0x1286u, 4u, 3u, CO_ODTYPE_STRUCT, 46u }, - { 0x1287u, 4u, 3u, CO_ODTYPE_STRUCT, 50u }, - { 0x1288u, 4u, 3u, CO_ODTYPE_STRUCT, 54u }, - { 0x1289u, 4u, 3u, CO_ODTYPE_STRUCT, 58u }, - { 0x128au, 4u, 3u, CO_ODTYPE_STRUCT, 62u }, - { 0x128bu, 4u, 3u, CO_ODTYPE_STRUCT, 66u }, - { 0x128cu, 4u, 3u, CO_ODTYPE_STRUCT, 70u }, - { 0x128du, 4u, 3u, CO_ODTYPE_STRUCT, 74u }, - { 0x128eu, 4u, 3u, CO_ODTYPE_STRUCT, 78u }, - { 0x128fu, 4u, 3u, CO_ODTYPE_STRUCT, 82u }, - { 0x1290u, 4u, 3u, CO_ODTYPE_STRUCT, 86u }, - { 0x1291u, 4u, 3u, CO_ODTYPE_STRUCT, 90u }, - { 0x1292u, 4u, 3u, CO_ODTYPE_STRUCT, 94u }, - { 0x1293u, 4u, 3u, CO_ODTYPE_STRUCT, 98u }, - { 0x1400u, 3u, 2u, CO_ODTYPE_STRUCT, 102u }, - { 0x1401u, 3u, 2u, CO_ODTYPE_STRUCT, 105u }, - { 0x1402u, 3u, 2u, CO_ODTYPE_STRUCT, 108u }, - { 0x1600u, 3u, 2u, CO_ODTYPE_STRUCT, 111u }, - { 0x1601u, 3u, 2u, CO_ODTYPE_STRUCT, 114u }, - { 0x1602u, 3u, 2u, CO_ODTYPE_STRUCT, 117u }, - { 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 }, + { 0x1016u, 3u, 2u, CO_ODTYPE_ARRAY, 7u }, + { 0x1017u, 1u, 0u, CO_ODTYPE_VAR, 10u }, + { 0x1018u, 5u, 4u, CO_ODTYPE_STRUCT, 11u }, + { 0x1029u, 3u, 2u, CO_ODTYPE_ARRAY, 16u }, + { 0x102au, 1u, 0u, CO_ODTYPE_VAR, 19u }, + { 0x1200u, 3u, 2u, CO_ODTYPE_STRUCT, 20u }, + { 0x1280u, 4u, 3u, CO_ODTYPE_STRUCT, 23u }, + { 0x1281u, 4u, 3u, CO_ODTYPE_STRUCT, 27u }, + { 0x1400u, 3u, 2u, CO_ODTYPE_STRUCT, 31u }, + { 0x1401u, 3u, 2u, CO_ODTYPE_STRUCT, 34u }, + { 0x1402u, 3u, 2u, CO_ODTYPE_STRUCT, 37u }, + { 0x1600u, 3u, 2u, CO_ODTYPE_STRUCT, 40u }, + { 0x1601u, 3u, 2u, CO_ODTYPE_STRUCT, 43u }, + { 0x1602u, 3u, 2u, CO_ODTYPE_STRUCT, 46u }, + { 0x1800u, 6u, 5u, CO_ODTYPE_STRUCT, 49u }, + { 0x1801u, 7u, 6u, CO_ODTYPE_STRUCT, 55u }, + { 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 62u }, + { 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 69u }, + { 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 76u }, + { 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 83u }, + { 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 86u }, + { 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 89u }, + { 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 92u }, + { 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 95u }, + { 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 98u }, + { 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 99u }, + { 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 102u }, + { 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 108u }, + { 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 115u }, + { 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 122u }, + { 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 131u }, + { 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 136u }, }; /* static PDO mapping tables */ @@ -622,98 +533,8 @@ CO_COMMON_INIT_VAL_T commonInitVars = { return(retVal); } 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 */ - retVal = coErrorCtrlInit(od_const_u16[1], 1u); + retVal = coErrorCtrlInit(od_const_u16[1], 2u); if (retVal != RET_OK) { return(retVal); } @@ -827,150 +648,6 @@ RET_T userOverwriteCobIdSettings(void) if (ret == RET_OK) { 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 */ cobId = nodeId + 0x200; diff --git a/EnduranceTestBench/scheduler/sdl.c b/EnduranceTestBench/scheduler/sdl.c index cc9ccb2..86ef737 100644 --- a/EnduranceTestBench/scheduler/sdl.c +++ b/EnduranceTestBench/scheduler/sdl.c @@ -40,10 +40,17 @@ #define SDL_LSS_NODE_HB_MS 1000uL #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_SUB_INDEX 0x0 #define SDL_POSITION_FEEDBACK_INDEX 0x6004 #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 ******************************************************************************/ @@ -65,13 +72,26 @@ static bool monitorSleep_gb = CO_FALSE; /**< sleep flag */ static bool masterStarted_gb; /**< master started flag */ static const SdlLssNodeInfo_t nodeLookupTable_gast[SDL_LSS_NODE_COUNT] = { - {0x319, 0x0, 0x0, 0x0, 0x12}, - {0x319, 0x0, 0x3, 0x0, 0x6}, - {0x319, 0x2, 0x0, 0x0, 0x7}, - {0x319, 0x4d2, 0x1, 0x0, 0x18}, - {0x31, 0x4d2, 0x5, 0x0, 0x9}, - {0x3, 0x4d2, 0x6, 0x0, 0x10}, - {0x1, 0x4d2, 0x7, 0x0, 0x11} + {0x319, 0x4d2, 0x1, 0x01, 0x5} , + {0x319, 0x4d2, 0x1, 0x02, 0x6} , + {0x319, 0x4d2, 0x1, 0x03, 0x7} , + {0x319, 0x4d2, 0x1, 0x04, 0x8} , + {0x319, 0x4d2, 0x1, 0x05, 0x9} , + {0x319, 0x4d2, 0x1, 0x06, 0xA} , + {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]; /****************************************************************************** @@ -92,7 +112,7 @@ static RET_T SdlLssSetSdoCobID(uint8 sdoNr_u8, uint8 nodeId_u8); * Need this function for overwriting the manual COB ids * for the TPDO. */ extern void userOverwriteCobIdSettings(void); - +static bool SdlAreAllNodesOperational(void); static void SdlEnduranceTestBenchRun(void); /****************************************************************************** * Public Function Definitions @@ -107,6 +127,10 @@ void SdlRun(void) { SdlRunCanopen(); SdlLssNodeHandlerRun(); + if (SdlAreAllNodesOperational()) + { + SdlEnduranceTestBenchRun(); + } } @@ -119,21 +143,22 @@ void SdlRun(void) */ static void SdlInitCanopen(void) { + RET_T retval; HalSystemInit(); codrvHardwareInit(); - codrvCanInit(SDL_CANOPEN_BITRATE); - codrvTimerSetup(CO_TIMER_INTERVAL); + retval = codrvCanInit(SDL_CANOPEN_BITRATE); + retval = codrvTimerSetup(CO_TIMER_INTERVAL); /* CANopen Initialization */ - coCanOpenStackInit(SdlOverwriteLoadIndication); - coEventRegister_LSS_MASTER(SdlLssIndCallback); - coEventRegister_ERRCTRL(SdlLssHbMonitorCallback); + retval = coCanOpenStackInit(SdlOverwriteLoadIndication); + retval = coEventRegister_LSS_MASTER(SdlLssIndCallback); + retval = coEventRegister_ERRCTRL(SdlLssHbMonitorCallback); /* enable CAN communication */ - codrvCanEnable(); - 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); - coNmtStateReq(SDL_PU_MASTER_NODE_ID, CO_NMT_STATE_OPERATIONAL, CO_TRUE); + retval = codrvCanEnable(); + retval = coTimerStart(&monitorTimer_gst, SDL_APPL_TIMER_TIME, SdlLssToggleMonitorFlag, NULL, CO_TIMER_ATTR_ROUNDUP_CYCLIC); + retval = coTimerStart(&nodeResetTimer_gst, (SDL_LSS_NODE_STATE_RESET_INTERVAL * 1000000uLL), SdlLssResetNodesCallback, NULL, CO_TIMER_ATTR_ROUNDUP_CYCLIC); + retval = coNmtStateReq(SDL_PU_MASTER_NODE_ID, CO_NMT_STATE_OPERATIONAL, CO_TRUE); coLssIdentifyNonConfiguredSlaves(SDL_LSS_CONFIG_TIMEOUT, SDL_LSS_CONFIG_INTERVAL); } @@ -147,7 +172,6 @@ static void SdlRunCanopen(void) { coCommTask(); SdlLssNodeHandlerRun(); - SdlEnduranceTestBenchRun(); } @@ -259,20 +283,19 @@ static uint32 SdlLssConfigureNode(uint8 arrIndex_u8) uint32 error_u32 = SDL_DEFAULT_ERROR; RET_T retVal_en = RET_INTERNAL_ERROR; 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; - /* 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, * bus delays, or transmission issues.*/ 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); /* setup SDO channel */ - retVal_en = SdlLssSetSdoCobID((arrIndex_u8 + 1), nodeLookupTable_gast[arrIndex_u8].nodeId_u8); - - retVal_en = coSdoWrite((arrIndex_u8 + 1), 0x1017u, 0u, (uint8*)(&hb_u16), 2u, CO_FALSE, 1000u); + retVal_en = SdlLssSetSdoCobID((arrIndex_u8 + 1u), nodeLookupTable_gast[arrIndex_u8].nodeId_u8); /* start node */ 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: /* 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 && - pIdentity_pu32[1] == nodeLookupTable_gast[i_u8].productId_u32 && + if (pIdentity_pu32[0] == nodeLookupTable_gast[i_u8].vendorId_u32 && + pIdentity_pu32[1] == nodeLookupTable_gast[i_u8].productId_u32 && pIdentity_pu32[2] == nodeLookupTable_gast[i_u8].versionNbr_u32 && pIdentity_pu32[3] == nodeLookupTable_gast[i_u8].serialNbr_u32) { @@ -446,7 +469,7 @@ static void SdlLssResetNodesCallback(void *pData_pv) (void)pData_pv; /* 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) && (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; uint32 newCobId_u32; - RET_T retVal = RET_INTERNAL_ERROR; + RET_T retVal_en = RET_INTERNAL_ERROR; /* 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) */ - newCobId_u32 = 0x600u + nodeId_u8; - retVal = coOdSetCobid(cobIndex_u16, 1u, newCobId_u32); + newCobId_u32 = SDL_SDO_CLIENT_TO_SERVER_COB + nodeId_u8; + 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) */ - newCobId_u32 = 0x580u + nodeId_u8; - retVal = coOdSetCobid(cobIndex_u16, 2u, newCobId_u32); + newCobId_u32 = SDL_SDO_SERVER_TO_CLIENT_COB + nodeId_u8; + retVal_en = coOdSetCobid(cobIndex_u16, 2u, newCobId_u32); } /* print failed setup details */ - if (retVal != RET_OK) + if (retVal_en != RET_OK) { /* ERROR */ } - return retVal; + return retVal_en; } +/** +* @brief This is the main function that runs the endurance +* test bench. +* +* @return void +* +*/ static void SdlEnduranceTestBenchRun(void) { - RET_T retVal_en = RET_INTERNAL_ERROR; - uint16 max_u16 = NMS_UINT8_MAX; - uint16 min_u16 = 0u; + RET_T retVal_en; + uint8 max_u8 = NMS_UINT8_MAX; + uint8 min_u8 = 0u; static uint64 startTime_u64 = 0uLL; uint8 alternate_u8 = 0u; uint64 currentTime_u64; - if(startTime_u64 == 0uLL) { HalSystemGetRunTimeMs(&startTime_u64); srand(startTime_u64); } HalSystemGetRunTimeMs(¤tTime_u64); - if(currentTime_u64 - startTime_u64 <= 10000uLL) + if(currentTime_u64 - startTime_u64 <= SDL_TEST_BENCH_STARTUP_TIMEOUT) { 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++) { - 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 { - 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++) { - 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; 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++) { - 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 ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u16 != max_u16) || - (i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u16 != min_u16)) + if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u8 != max_u8) || + (i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u8 != min_u8)) { - allMotorsReached_b = false; // Keep waiting + allMotorsReached_b = false; /* Keep waiting */ } } else { - if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u16 != min_u16) || - (i_u8 >= SDL_LSS_NODE_COUNT / 2 && readPos_u16 != max_u16)) + if ((i_u8 < SDL_LSS_NODE_COUNT / 2 && readPos_u8 != min_u8) || + (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++) { - uint16 randomPos_u16 = (uint16)(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); + 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_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; +}