Added fix for test bench lss not running. Changed heartbeat consumers settings

This commit is contained in:
AzureAD\AniketSaha 2025-02-24 11:51:19 +01:00
parent 52ac4f0b1c
commit 15c84db741
7 changed files with 384 additions and 557 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=10:10PM CreationTime=10:33PM
CreationDate=02-21-25 CreationDate=02-24-25
ModificationTime=10:10PM ModificationTime=10:33PM
ModificationDate=02-21-25 ModificationDate=02-24-25
CreatedBy=Aniket Saha CreatedBy=Aniket Saha
ModifiedBy=Aniket Saha ModifiedBy=Aniket Saha
@ -177,7 +177,7 @@ DefaultValue=0x0
[1016] [1016]
ParameterName=Consumer Heartbeat Time ParameterName=Consumer Heartbeat Time
ObjectType=8 ObjectType=8
SubNumber=21 SubNumber=2
[1016sub0] [1016sub0]
ParameterName=Number of entries ParameterName=Number of entries
@ -185,7 +185,7 @@ ObjectType=7
DataType=5 DataType=5
AccessType=ro AccessType=ro
PDOMapping=0 PDOMapping=0
DefaultValue=20 DefaultValue=1
[1016sub1] [1016sub1]
ParameterName=Consumer Heartbeat Time ParameterName=Consumer Heartbeat Time
@ -195,158 +195,6 @@ AccessType=rw
PDOMapping=0 PDOMapping=0
DefaultValue=1000 DefaultValue=1000
[1016sub2]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub3]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub4]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub5]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub6]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub7]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub8]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub9]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016suba]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016subb]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016subc]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016subd]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sube]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016subf]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub10]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub11]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub12]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub13]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1016sub14]
ParameterName=Consumer Heartbeat Time
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=0
DefaultValue=1000
[1017] [1017]
ParameterName=Producer Heartbeat Time ParameterName=Producer Heartbeat Time
ObjectType=7 ObjectType=7

View File

@ -21,7 +21,7 @@
/* Number of objects per line */ /* Number of objects per line */
#define CO_OBJECTS_LINE_0_CNT 56u #define CO_OBJECTS_LINE_0_CNT 56u
#define CO_OBJECT_COUNTS 56u #define CO_OBJECT_COUNTS 56u
#define CO_COB_COUNTS 75u #define CO_COB_COUNTS 56u
#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
@ -29,7 +29,7 @@
#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 20u #define CO_ERR_CTRL_COUNTS 1u
#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
@ -45,7 +45,7 @@
#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 20u #define CO_HB_CONSUMER_CNT 1u
#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
@ -55,7 +55,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 75u #define CO_COB_CNT 56u
/* Definition of number of call-back functions for each service*/ /* Definition of number of call-back functions for each service*/

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
* Fri Feb 21 10:10:40 2025 * Mon Feb 24 10:33:31 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
* Fri Feb 21 10:10:40 2025 * Mon Feb 24 10:33:31 2025
*/ */
/* protect against multiple inclusion of the file */ /* protect against multiple inclusion of the file */

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
* Fri Feb 21 10:10:40 2025 * Mon Feb 24 10:33:31 2025
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -32,7 +32,7 @@
/* number of objects */ /* number of objects */
#define CO_OD_ASSIGN_CNT 56u #define CO_OD_ASSIGN_CNT 56u
#define CO_OBJ_DESC_CNT 231u #define CO_OBJ_DESC_CNT 212u
/* definition of managed variables */ /* definition of managed variables */
static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= { static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= {
@ -86,21 +86,21 @@ static REAL32 CO_STORAGE_CLASS od_r32[8]= {
(REAL32)0.0000000f /* 0x6005:4 */}; (REAL32)0.0000000f /* 0x6005:4 */};
/* definition of constants */ /* definition of constants */
static CO_CONST UNSIGNED8 CO_CONST_STORAGE_CLASS od_const_u8[10] = { static CO_CONST UNSIGNED8 CO_CONST_STORAGE_CLASS od_const_u8[9] = {
(UNSIGNED8)0u, (UNSIGNED8)0u,
(UNSIGNED8)20u, (UNSIGNED8)1u,
(UNSIGNED8)4u, (UNSIGNED8)4u,
(UNSIGNED8)2u, (UNSIGNED8)2u,
(UNSIGNED8)1u,
(UNSIGNED8)3u, (UNSIGNED8)3u,
(UNSIGNED8)254u, (UNSIGNED8)254u,
(UNSIGNED8)5u, (UNSIGNED8)5u,
(UNSIGNED8)6u, (UNSIGNED8)6u,
(UNSIGNED8)8u}; (UNSIGNED8)8u};
static CO_CONST UNSIGNED16 CO_CONST_STORAGE_CLASS od_const_u16[3] = { static CO_CONST UNSIGNED16 CO_CONST_STORAGE_CLASS od_const_u16[4] = {
(UNSIGNED16)0u, (UNSIGNED16)0u,
(UNSIGNED16)500u, (UNSIGNED16)1500u,
(UNSIGNED16)10u}; (UNSIGNED16)10u,
(UNSIGNED16)500u};
static CO_CONST UNSIGNED32 CO_CONST_STORAGE_CLASS od_const_u32[28] = { static CO_CONST UNSIGNED32 CO_CONST_STORAGE_CLASS od_const_u32[28] = {
(UNSIGNED32)0UL, (UNSIGNED32)0UL,
(UNSIGNED32)128UL, (UNSIGNED32)128UL,
@ -155,25 +155,6 @@ 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)2u},/* 0x1016:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:6*/
{ (UNSIGNED8)7u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:7*/
{ (UNSIGNED8)8u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:8*/
{ (UNSIGNED8)9u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:9*/
{ (UNSIGNED8)10u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:10*/
{ (UNSIGNED8)11u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:11*/
{ (UNSIGNED8)12u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:12*/
{ (UNSIGNED8)13u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:13*/
{ (UNSIGNED8)14u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:14*/
{ (UNSIGNED8)15u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:15*/
{ (UNSIGNED8)16u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:16*/
{ (UNSIGNED8)17u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:17*/
{ (UNSIGNED8)18u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:18*/
{ (UNSIGNED8)19u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:19*/
{ (UNSIGNED8)20u, CO_DTYPE_U32_ERRCTRL, (UNSIGNED16)4118u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)2u},/* 0x1016:20*/
{ (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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1018:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1018:1*/
@ -181,101 +162,101 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)3u, CO_DTYPE_U32_CONST, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1018:3*/ { (UNSIGNED8)3u, CO_DTYPE_U32_CONST, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 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)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)4u},/* 0x1029:1*/ { (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)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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1200:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1200:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1200:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1200:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_SERVER, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1200:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1280:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1280:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1280:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1280:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1280:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1280:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1280:3*/ { (UNSIGNED8)3u, CO_DTYPE_U8_SDO_CLIENT, (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE, (UNSIGNED16)0u},/* 0x1280:3*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1281:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1281:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1281:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1281:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1281:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1282:0*/ { (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)8u},/* 0x1282:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1282:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1282:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1283:0*/ { (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)8u},/* 0x1283:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1283:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1283:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1284:0*/ { (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)8u},/* 0x1284:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1284:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1284:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1285:0*/ { (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)8u},/* 0x1285:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1285:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1285:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1286:0*/ { (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)8u},/* 0x1286:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1286:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1286:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1287:0*/ { (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)8u},/* 0x1287:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1287:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1287:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1288:0*/ { (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)8u},/* 0x1288:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1288:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1288:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1289:0*/ { (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)8u},/* 0x1289:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1289:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1289:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x128a:0*/ { (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)8u},/* 0x128a:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128a:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128a:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x128b:0*/ { (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)8u},/* 0x128b:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128b:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128b:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x128c:0*/ { (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)8u},/* 0x128c:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128c:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128c:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x128d:0*/ { (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)8u},/* 0x128d:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128d:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128d:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x128e:0*/ { (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)8u},/* 0x128e:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128e:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128e:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x128f:0*/ { (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)8u},/* 0x128f:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128f:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x128f:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1290:0*/ { (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)8u},/* 0x1290:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1290:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1290:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1291:0*/ { (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)8u},/* 0x1291:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)18u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1291:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)18u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1291:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)18u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1292:0*/ { (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)8u},/* 0x1292:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1292:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1292:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)19u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1293:0*/ { (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)8u},/* 0x1293:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1293:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1293:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_SDO_CLIENT, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 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)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)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)9u},/* 0x1400:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1400:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1401:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1401:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1401:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1402:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1402:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x1402:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_RPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1600:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)10u},/* 0x1600:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)10u},/* 0x1600:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)11u},/* 0x1600:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)11u},/* 0x1600:2*/
@ -285,39 +266,39 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1602:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)14u},/* 0x1602:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)14u},/* 0x1602:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)15u},/* 0x1602:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)15u},/* 0x1602:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1800:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1800:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)16u},/* 0x1800:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)16u},/* 0x1800:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1800:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1800:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1800:3*/ { (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1800:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1800:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1800:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1800:5*/ { (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)1u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1800:5*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1801:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1801:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)17u},/* 0x1801:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)17u},/* 0x1801:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1801:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1801:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1801:3*/ { (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1801:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1801:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1801:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1801:5*/ { (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1801:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1801:6*/ { (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)2u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1801:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1802:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1802:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)18u},/* 0x1802:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)18u},/* 0x1802:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1802:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1802:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1802:3*/ { (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1802:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1802:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1802:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1802:5*/ { (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1802:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1802:6*/ { (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1802:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1803:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1803:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)19u},/* 0x1803:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)19u},/* 0x1803:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1803:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1803:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1803:3*/ { (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1803:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1803:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1803:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)1u},/* 0x1803:5*/ { (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1803:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1803:6*/ { (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1803:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1804:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x1804:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1804:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)5u},/* 0x1804:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:3*/ { (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:3*/
{ (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)1u},/* 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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a00:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)20u},/* 0x1a00:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)20u},/* 0x1a00:1*/
@ -338,27 +319,27 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (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)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 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)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x6000:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x6000:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U8_VAR , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:1*/ { (UNSIGNED8)1u, CO_DTYPE_U8_VAR , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_VAR , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:2*/ { (UNSIGNED8)2u, CO_DTYPE_U8_VAR , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U8_VAR , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:3*/ { (UNSIGNED8)3u, CO_DTYPE_U8_VAR , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_VAR , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_VAR , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U8_VAR , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:5*/ { (UNSIGNED8)5u, CO_DTYPE_U8_VAR , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6000:5*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x6001:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x6001:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_VAR , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_VAR , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_VAR , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_VAR , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U32_VAR , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:3*/ { (UNSIGNED8)3u, CO_DTYPE_U32_VAR , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U32_VAR , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:4*/ { (UNSIGNED8)4u, CO_DTYPE_U32_VAR , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U32_VAR , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:5*/ { (UNSIGNED8)5u, CO_DTYPE_U32_VAR , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U32_VAR , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:6*/ { (UNSIGNED8)6u, CO_DTYPE_U32_VAR , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6001:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x6002:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)7u},/* 0x6002:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_VAR , (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_VAR , (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_VAR , (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_VAR , (UNSIGNED16)10u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U32_VAR , (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:3*/ { (UNSIGNED8)3u, CO_DTYPE_U32_VAR , (UNSIGNED16)11u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U32_VAR , (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:4*/ { (UNSIGNED8)4u, CO_DTYPE_U32_VAR , (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U32_VAR , (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:5*/ { (UNSIGNED8)5u, CO_DTYPE_U32_VAR , (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U32_VAR , (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:6*/ { (UNSIGNED8)6u, CO_DTYPE_U32_VAR , (UNSIGNED16)14u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6002:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)9u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)9u},/* 0x6003:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x6003:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_VAR , (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6003:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_VAR , (UNSIGNED16)15u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6003:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_VAR , (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6003:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_VAR , (UNSIGNED16)16u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6003:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U32_VAR , (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6003:3*/ { (UNSIGNED8)3u, CO_DTYPE_U32_VAR , (UNSIGNED16)17u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6003:3*/
@ -387,56 +368,56 @@ 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, 21u, 20u, CO_ODTYPE_ARRAY, 7u }, { 0x1016u, 2u, 1u, CO_ODTYPE_ARRAY, 7u },
{ 0x1017u, 1u, 0u, CO_ODTYPE_VAR, 28u }, { 0x1017u, 1u, 0u, CO_ODTYPE_VAR, 9u },
{ 0x1018u, 5u, 4u, CO_ODTYPE_STRUCT, 29u }, { 0x1018u, 5u, 4u, CO_ODTYPE_STRUCT, 10u },
{ 0x1029u, 3u, 2u, CO_ODTYPE_ARRAY, 34u }, { 0x1029u, 3u, 2u, CO_ODTYPE_ARRAY, 15u },
{ 0x102au, 1u, 0u, CO_ODTYPE_VAR, 37u }, { 0x102au, 1u, 0u, CO_ODTYPE_VAR, 18u },
{ 0x1200u, 3u, 2u, CO_ODTYPE_STRUCT, 38u }, { 0x1200u, 3u, 2u, CO_ODTYPE_STRUCT, 19u },
{ 0x1280u, 4u, 3u, CO_ODTYPE_STRUCT, 41u }, { 0x1280u, 4u, 3u, CO_ODTYPE_STRUCT, 22u },
{ 0x1281u, 4u, 3u, CO_ODTYPE_STRUCT, 45u }, { 0x1281u, 4u, 3u, CO_ODTYPE_STRUCT, 26u },
{ 0x1282u, 4u, 3u, CO_ODTYPE_STRUCT, 49u }, { 0x1282u, 4u, 3u, CO_ODTYPE_STRUCT, 30u },
{ 0x1283u, 4u, 3u, CO_ODTYPE_STRUCT, 53u }, { 0x1283u, 4u, 3u, CO_ODTYPE_STRUCT, 34u },
{ 0x1284u, 4u, 3u, CO_ODTYPE_STRUCT, 57u }, { 0x1284u, 4u, 3u, CO_ODTYPE_STRUCT, 38u },
{ 0x1285u, 4u, 3u, CO_ODTYPE_STRUCT, 61u }, { 0x1285u, 4u, 3u, CO_ODTYPE_STRUCT, 42u },
{ 0x1286u, 4u, 3u, CO_ODTYPE_STRUCT, 65u }, { 0x1286u, 4u, 3u, CO_ODTYPE_STRUCT, 46u },
{ 0x1287u, 4u, 3u, CO_ODTYPE_STRUCT, 69u }, { 0x1287u, 4u, 3u, CO_ODTYPE_STRUCT, 50u },
{ 0x1288u, 4u, 3u, CO_ODTYPE_STRUCT, 73u }, { 0x1288u, 4u, 3u, CO_ODTYPE_STRUCT, 54u },
{ 0x1289u, 4u, 3u, CO_ODTYPE_STRUCT, 77u }, { 0x1289u, 4u, 3u, CO_ODTYPE_STRUCT, 58u },
{ 0x128au, 4u, 3u, CO_ODTYPE_STRUCT, 81u }, { 0x128au, 4u, 3u, CO_ODTYPE_STRUCT, 62u },
{ 0x128bu, 4u, 3u, CO_ODTYPE_STRUCT, 85u }, { 0x128bu, 4u, 3u, CO_ODTYPE_STRUCT, 66u },
{ 0x128cu, 4u, 3u, CO_ODTYPE_STRUCT, 89u }, { 0x128cu, 4u, 3u, CO_ODTYPE_STRUCT, 70u },
{ 0x128du, 4u, 3u, CO_ODTYPE_STRUCT, 93u }, { 0x128du, 4u, 3u, CO_ODTYPE_STRUCT, 74u },
{ 0x128eu, 4u, 3u, CO_ODTYPE_STRUCT, 97u }, { 0x128eu, 4u, 3u, CO_ODTYPE_STRUCT, 78u },
{ 0x128fu, 4u, 3u, CO_ODTYPE_STRUCT, 101u }, { 0x128fu, 4u, 3u, CO_ODTYPE_STRUCT, 82u },
{ 0x1290u, 4u, 3u, CO_ODTYPE_STRUCT, 105u }, { 0x1290u, 4u, 3u, CO_ODTYPE_STRUCT, 86u },
{ 0x1291u, 4u, 3u, CO_ODTYPE_STRUCT, 109u }, { 0x1291u, 4u, 3u, CO_ODTYPE_STRUCT, 90u },
{ 0x1292u, 4u, 3u, CO_ODTYPE_STRUCT, 113u }, { 0x1292u, 4u, 3u, CO_ODTYPE_STRUCT, 94u },
{ 0x1293u, 4u, 3u, CO_ODTYPE_STRUCT, 117u }, { 0x1293u, 4u, 3u, CO_ODTYPE_STRUCT, 98u },
{ 0x1400u, 3u, 2u, CO_ODTYPE_STRUCT, 121u }, { 0x1400u, 3u, 2u, CO_ODTYPE_STRUCT, 102u },
{ 0x1401u, 3u, 2u, CO_ODTYPE_STRUCT, 124u }, { 0x1401u, 3u, 2u, CO_ODTYPE_STRUCT, 105u },
{ 0x1402u, 3u, 2u, CO_ODTYPE_STRUCT, 127u }, { 0x1402u, 3u, 2u, CO_ODTYPE_STRUCT, 108u },
{ 0x1600u, 3u, 2u, CO_ODTYPE_STRUCT, 130u }, { 0x1600u, 3u, 2u, CO_ODTYPE_STRUCT, 111u },
{ 0x1601u, 3u, 2u, CO_ODTYPE_STRUCT, 133u }, { 0x1601u, 3u, 2u, CO_ODTYPE_STRUCT, 114u },
{ 0x1602u, 3u, 2u, CO_ODTYPE_STRUCT, 136u }, { 0x1602u, 3u, 2u, CO_ODTYPE_STRUCT, 117u },
{ 0x1800u, 6u, 5u, CO_ODTYPE_STRUCT, 139u }, { 0x1800u, 6u, 5u, CO_ODTYPE_STRUCT, 120u },
{ 0x1801u, 7u, 6u, CO_ODTYPE_STRUCT, 145u }, { 0x1801u, 7u, 6u, CO_ODTYPE_STRUCT, 126u },
{ 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 152u }, { 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 133u },
{ 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 159u }, { 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 140u },
{ 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 166u }, { 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 147u },
{ 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 173u }, { 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 154u },
{ 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 176u }, { 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 157u },
{ 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 179u }, { 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 160u },
{ 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 182u }, { 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 163u },
{ 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 185u }, { 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 166u },
{ 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 188u }, { 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 169u },
{ 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 189u }, { 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 170u },
{ 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 192u }, { 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 173u },
{ 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 198u }, { 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 179u },
{ 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 205u }, { 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 186u },
{ 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 212u }, { 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 193u },
{ 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 221u }, { 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 202u },
{ 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 226u }, { 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 207u },
}; };
/* static PDO mapping tables */ /* static PDO mapping tables */
@ -733,7 +714,7 @@ CO_COMMON_INIT_VAL_T commonInitVars = {
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize error control */ /* initialize error control */
retVal = coErrorCtrlInit(od_const_u16[1], 20u); retVal = coErrorCtrlInit(od_const_u16[1], 1u);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
@ -745,49 +726,49 @@ CO_COMMON_INIT_VAL_T commonInitVars = {
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize TPDO 1 */ /* initialize TPDO 1 */
retVal = coPdoTransmitInit(1u, od_const_u8[6], od_const_u16[0], od_const_u16[1], 0u, &mapTableTPDO1); retVal = coPdoTransmitInit(1u, od_const_u8[5], od_const_u16[0], od_const_u16[3], 0u, &mapTableTPDO1);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize TPDO 2 */ /* initialize TPDO 2 */
retVal = coPdoTransmitInit(2u, od_const_u8[6], od_const_u16[0], od_const_u16[1], od_const_u8[0], &mapTableTPDO2); retVal = coPdoTransmitInit(2u, od_const_u8[5], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO2);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize TPDO 3 */ /* initialize TPDO 3 */
retVal = coPdoTransmitInit(3u, od_const_u8[6], od_const_u16[0], od_const_u16[1], od_const_u8[0], &mapTableTPDO3); retVal = coPdoTransmitInit(3u, od_const_u8[5], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO3);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize TPDO 4 */ /* initialize TPDO 4 */
retVal = coPdoTransmitInit(4u, od_const_u8[6], od_const_u16[0], od_const_u16[1], od_const_u8[0], &mapTableTPDO4); retVal = coPdoTransmitInit(4u, od_const_u8[5], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO4);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize TPDO 5 */ /* initialize TPDO 5 */
retVal = coPdoTransmitInit(5u, od_const_u8[6], od_const_u16[0], od_const_u16[1], od_const_u8[0], &mapTableTPDO5); retVal = coPdoTransmitInit(5u, od_const_u8[5], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO5);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize RPDO 1 */ /* initialize RPDO 1 */
retVal = coPdoReceiveInit(1u, od_const_u8[6], 0u, 0u, &mapTableRPDO0); retVal = coPdoReceiveInit(1u, od_const_u8[5], 0u, 0u, &mapTableRPDO0);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize RPDO 2 */ /* initialize RPDO 2 */
retVal = coPdoReceiveInit(2u, od_const_u8[6], 0u, 0u, &mapTableRPDO1); retVal = coPdoReceiveInit(2u, od_const_u8[5], 0u, 0u, &mapTableRPDO1);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize RPDO 3 */ /* initialize RPDO 3 */
retVal = coPdoReceiveInit(3u, od_const_u8[6], 0u, 0u, &mapTableRPDO2); retVal = coPdoReceiveInit(3u, od_const_u8[5], 0u, 0u, &mapTableRPDO2);
if (retVal != RET_OK) { if (retVal != RET_OK) {
return(retVal); return(retVal);
} }

View File

@ -166,7 +166,7 @@ void SdlRun(void)
static void SdlInitCanopen(void) static void SdlInitCanopen(void)
{ {
RET_T retval; RET_T retval;
//HalSystemInit(); HalSystemInit();
codrvHardwareInit(); codrvHardwareInit();
retval = codrvCanInit(SDL_CANOPEN_BITRATE); retval = codrvCanInit(SDL_CANOPEN_BITRATE);
retval = codrvTimerSetup(CO_TIMER_INTERVAL); retval = codrvTimerSetup(CO_TIMER_INTERVAL);
@ -304,7 +304,6 @@ 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;
/* Get the node ID from the lookup table using the index passed */ /* 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;
@ -339,6 +338,267 @@ static uint32 SdlLssConfigureNode(uint8 arrIndex_u8)
} }
/**
* @brief This function configures a SDO client for the
* given node ID and SDO number.
*
* @param sdoNr_u8 Sdo number
* nodeId_u8 Node id of the node.
*
* @return Error state.
*
*/
static RET_T SdlLssSetSdoCobID(uint8 sdoNr_u8, uint8 nodeId_u8)
{
uint16 cobIndex_u16;
uint32 newCobId_u32;
RET_T retVal_en = RET_INTERNAL_ERROR;
/* get od index of sdoNr */
cobIndex_u16 = SDL_SDO_CLIENT_COB + sdoNr_u8 - 1u; /* SDO starts from 1280 index */
/* set cobID for client to server direction (request) */
newCobId_u32 = SDL_SDO_CLIENT_TO_SERVER_COB + nodeId_u8;
retVal_en = coOdSetCobid(cobIndex_u16, 1u, newCobId_u32);
if (retVal_en == RET_OK)
{
/* set cobID for server to client direction (response) */
newCobId_u32 = SDL_SDO_SERVER_TO_CLIENT_COB + nodeId_u8;
retVal_en = coOdSetCobid(cobIndex_u16, 2u, newCobId_u32);
}
/* print failed setup details */
if (retVal_en != RET_OK)
{
/* ERROR */
}
return retVal_en;
}
/**
* @brief This is the main function that runs the endurance
* test bench.
*
* @return void
*
*/
void SdlEnduranceTestBenchRun(void)
{
static uint64 startTime_u64 = 0uLL;
static uint8 alternate_u8 = 0u;
static uint8 batchCompleted_u8 = 1u; /* Indicates if we need to populate a new batch */
static uint8 retries_u8 = 0u;
uint64 currentTime_u64;
HalSystemGetRunTimeMs(&currentTime_u64);
if (startTime_u64 == 0uLL)
{
HalSystemGetRunTimeMs(&startTime_u64);
testBenchState_en = TEST_BENCH_STARTUP;
}
switch (testBenchState_en)
{
case TEST_BENCH_STARTUP:
{
uint8 max_u8 = NMS_UINT8_MAX; /* Fully open (255) */
uint8 min_u8 = 0u; /* Fully closed (0) */
if ((currentTime_u64 - startTime_u64) < 5000uLL)
{
/* First 5 seconds: First 10 open, rest closed */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT / 2; i_u8++)
{
targetPositions_gau8[i_u8] = (i_u8 < 10u) ? max_u8 : min_u8;
}
}
else if ((currentTime_u64 - startTime_u64) < 10000uLL)
{
/* Next 5 seconds: First 10 closed, rest open */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT; i_u8++)
{
targetPositions_gau8[i_u8] = (i_u8 < 10) ? min_u8 : max_u8;
}
}
else
{
/* After 10 seconds, move to endurance test */
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
currentNode_gu8 = 0u;
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
break;
case TEST_BENCH_IDLE:
{
if (batchCompleted_u8)
{
batchCompleted_u8 = 0u; /* Lock batch update until all nodes confirm their positions */
uint8 max_u8 = NMS_UINT8_MAX; /* Fully open (255) */
uint8 min_u8 = 0u; /* Fully closed (0) */
uint8 currentGroup_u8 = alternate_u8 % 2; /* Alternates between two patterns */
/* Check if it's a random cycle */
if ((alternate_u8 % 2) == 1)
{
/* Randomized cycle */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT; i_u8++)
{
targetPositions_gau8[i_u8] = (uint8)(rand() % 256); /* Assign random value between 0-255 */
}
}
else
{
/* Normal alternating open-close cycle */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT; i_u8++)
{
if (((i_u8 / 5) % 2) == currentGroup_u8)
{
targetPositions_gau8[i_u8] = max_u8; /* Fully open */
}
else
{
targetPositions_gau8[i_u8] = min_u8; /* Fully closed */
}
}
}
alternate_u8++; /* Switch to the next cycle pattern */
currentNode_gu8 = 0u;
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
break;
case TEST_BENCH_WRITE_REQUEST:
{
if (currentNode_gu8 < TEST_BENCH_LSS_NODE_COUNT)
{
RET_T retVal_en = coSdoWrite((currentNode_gu8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
&targetPositions_gau8[currentNode_gu8], sizeof(targetPositions_gau8[currentNode_gu8]),
CO_FALSE, TEST_BENCH_TIMEOUT);
if (retVal_en == RET_OK)
{
retries_u8 = 0u;
testBenchState_en = TEST_BENCH_WAIT_FOR_FEEDBACK;
}
else if (retVal_en == RET_SERVICE_BUSY)
{
retries_u8++;
if (retries_u8 < 5u)
{
printf("SDO Busy for node %d, retrying...\n", currentNode_gu8 + 1);
}
else
{
currentNode_gu8++; /* Skip this node */
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
else
{
currentNode_gu8++; /* Skip this node */
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
else
{
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
}
break;
case TEST_BENCH_WAIT_FOR_FEEDBACK:
{
uint8 readPos_u8 = 0u;
RET_T retVal_en = coSdoRead((currentNode_gu8 + 1), TEST_BENCH_POSITION_FEEDBACK_INDEX, TEST_BENCH_POSITION_FEEDBACK_SUB_INDEX,
&readPos_u8, sizeof(readPos_u8), CO_FALSE, TEST_BENCH_TIMEOUT);
if (retVal_en == RET_OK)
{
if (readPos_u8 == targetPositions_gau8[currentNode_gu8])
{
printf("Node %d reached target position %d\n", currentNode_gu8 + 1, readPos_u8);
currentNode_gu8++;
retries_u8 = 0u; /* Reset retries */
if (currentNode_gu8 < TEST_BENCH_LSS_NODE_COUNT)
{
HalSystemGetRunTimeMs(&startTime_u64); /* Store time before sending the next command */
testBenchState_en = TEST_BENCH_DELAY_BEFORE_NEXT;
}
else
{
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
}
}
else
{
retries_u8++;
if (retries_u8 >= TEST_BENCH_MAX_RETRY_CNT)
{
currentNode_gu8++;
if (currentNode_gu8 < TEST_BENCH_LSS_NODE_COUNT)
{
HalSystemGetRunTimeMs(&startTime_u64);
testBenchState_en = TEST_BENCH_DELAY_BEFORE_NEXT;
}
else
{
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
}
}
}
break;
case TEST_BENCH_DELAY_BEFORE_NEXT:
{
HalSystemGetRunTimeMs(&currentTime_u64);
if ((currentTime_u64 - startTime_u64) >= TEST_BENCH_TIMEOUT)
{
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
break;
}
}
/**
* @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;
}
/****************************************************************************** /******************************************************************************
* Callback Function Definitions * Callback Function Definitions
******************************************************************************/ ******************************************************************************/
@ -502,265 +762,3 @@ static void SdlLssResetNodesCallback(void *pData_pv)
} }
} }
/**
* @brief This function configures a SDO client for the
* given node ID and SDO number.
*
* @param sdoNr_u8 Sdo number
* nodeId_u8 Node id of the node.
*
* @return Error state.
*
*/
static RET_T SdlLssSetSdoCobID(uint8 sdoNr_u8, uint8 nodeId_u8)
{
uint16 cobIndex_u16;
uint32 newCobId_u32;
RET_T retVal_en = RET_INTERNAL_ERROR;
/* get od index of sdoNr */
cobIndex_u16 = SDL_SDO_CLIENT_COB + sdoNr_u8 - 1u; /* SDO starts from 1280 index */
/* set cobID for client to server direction (request) */
newCobId_u32 = SDL_SDO_CLIENT_TO_SERVER_COB + nodeId_u8;
retVal_en = coOdSetCobid(cobIndex_u16, 1u, newCobId_u32);
if (retVal_en == RET_OK)
{
/* set cobID for server to client direction (response) */
newCobId_u32 = SDL_SDO_SERVER_TO_CLIENT_COB + nodeId_u8;
retVal_en = coOdSetCobid(cobIndex_u16, 2u, newCobId_u32);
}
/* print failed setup details */
if (retVal_en != RET_OK)
{
/* ERROR */
}
return retVal_en;
}
/**
* @brief This is the main function that runs the endurance
* test bench.
*
* @return void
*
*/
void SdlEnduranceTestBenchRun(void)
{
static uint64 startTime_u64 = 0uLL;
static uint8 alternate_u8 = 0u;
static uint8 batchCompleted_u8 = 1u; /* Indicates if we need to populate a new batch */
static uint8 retries_u8 = 0u;
uint64 currentTime_u64;
HalSystemGetRunTimeMs(&currentTime_u64);
if (startTime_u64 == 0uLL)
{
HalSystemGetRunTimeMs(&startTime_u64);
testBenchState_en = TEST_BENCH_STARTUP;
}
switch (testBenchState_en)
{
case TEST_BENCH_STARTUP:
{
uint8 max_u8 = NMS_UINT8_MAX; /* Fully open (255) */
uint8 min_u8 = 0u; /* Fully closed (0) */
if ((currentTime_u64 - startTime_u64) < 5000uLL)
{
/* First 5 seconds: First 10 open, rest closed */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT / 2; i_u8++)
{
targetPositions_gau8[i_u8] = (i_u8 < 10u) ? max_u8 : min_u8;
}
}
else if ((currentTime_u64 - startTime_u64) > 5000uLL)
{
/* Next 5 seconds: First 10 closed, rest open */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT; i_u8++)
{
targetPositions_gau8[i_u8] = (i_u8 < 10) ? min_u8 : max_u8;
}
}
else
{
/* After 10 seconds, move to endurance test */
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
currentNode_gu8 = 0u;
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
break;
case TEST_BENCH_IDLE:
{
if (batchCompleted_u8)
{
batchCompleted_u8 = 0u; /* Lock batch update until all nodes confirm their positions */
uint8 max_u8 = NMS_UINT8_MAX; /* Fully open (255) */
uint8 min_u8 = 0u; /* Fully closed (0) */
uint8 currentGroup_u8 = alternate_u8 % 2; /* Alternates between two patterns */
/* Check if it's a random cycle */
if ((alternate_u8 % 2) == 1)
{
/* Randomized cycle */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT; i_u8++)
{
targetPositions_gau8[i_u8] = (uint8)(rand() % 256); /* Assign random value between 0-255 */
}
}
else
{
/* Normal alternating open-close cycle */
for (uint8 i_u8 = 0u; i_u8 < TEST_BENCH_LSS_NODE_COUNT; i_u8++)
{
if (((i_u8 / 5) % 2) == currentGroup_u8)
{
targetPositions_gau8[i_u8] = max_u8; /* Fully open */
}
else
{
targetPositions_gau8[i_u8] = min_u8; /* Fully closed */
}
}
}
alternate_u8++; /* Switch to the next cycle pattern */
currentNode_gu8 = 0u;
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
break;
case TEST_BENCH_WRITE_REQUEST:
{
if (currentNode_gu8 < TEST_BENCH_LSS_NODE_COUNT)
{
RET_T retVal_en = coSdoWrite((currentNode_gu8 + 1), SDL_POSITION_SETPOINT_INDEX, SDL_POSITION_SETPOINT_SUB_INDEX,
&targetPositions_gau8[currentNode_gu8], sizeof(targetPositions_gau8[currentNode_gu8]),
CO_FALSE, TEST_BENCH_TIMEOUT);
if (retVal_en == RET_OK)
{
retries_u8 = 0;
testBenchState_en = TEST_BENCH_WAIT_FOR_FEEDBACK;
}
else if (retVal_en == RET_SERVICE_BUSY)
{
retries_u8++;
if (retries_u8 < 5u)
{
printf("SDO Busy for node %d, retrying...\n", currentNode_gu8 + 1);
}
else
{
currentNode_gu8++; /* Skip this node */
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
else
{
currentNode_gu8++; /* Skip this node */
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
else
{
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
}
break;
case TEST_BENCH_WAIT_FOR_FEEDBACK:
{
uint8 readPos_u8 = 0u;
RET_T retVal_en = coSdoRead((currentNode_gu8 + 1), TEST_BENCH_POSITION_FEEDBACK_INDEX, TEST_BENCH_POSITION_FEEDBACK_SUB_INDEX,
&readPos_u8, sizeof(readPos_u8), CO_FALSE, TEST_BENCH_TIMEOUT);
if (retVal_en == RET_OK)
{
if (readPos_u8 == targetPositions_gau8[currentNode_gu8])
{
printf("Node %d reached target position %d\n", currentNode_gu8 + 1, readPos_u8);
currentNode_gu8++;
retries_u8 = 0u; /* Reset retries */
if (currentNode_gu8 < TEST_BENCH_LSS_NODE_COUNT)
{
HalSystemGetRunTimeMs(&startTime_u64); // Store time before sending the next command
testBenchState_en = TEST_BENCH_DELAY_BEFORE_NEXT;
}
else
{
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
}
}
else
{
retries_u8++;
if (retries_u8 >= TEST_BENCH_MAX_RETRY_CNT)
{
currentNode_gu8++;
if (currentNode_gu8 < TEST_BENCH_LSS_NODE_COUNT)
{
HalSystemGetRunTimeMs(&startTime_u64);
testBenchState_en = TEST_BENCH_DELAY_BEFORE_NEXT;
}
else
{
batchCompleted_u8 = 1u;
testBenchState_en = TEST_BENCH_IDLE;
}
}
}
}
break;
case TEST_BENCH_DELAY_BEFORE_NEXT:
{
HalSystemGetRunTimeMs(&currentTime_u64);
if ((currentTime_u64 - startTime_u64) >= TEST_BENCH_TIMEOUT)
{
testBenchState_en = TEST_BENCH_WRITE_REQUEST;
}
}
break;
}
}
/**
* @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;
}