Files

1258 lines
45 KiB
C

/*******************************************************************************
CANopen Object Dictionary definition for CANopenNode V4
This file was automatically generated by CANopenEditor v4.2.3-0-gc1071ab+c1071ab3197f9bbf718123ec5bbabf449b2f7bab
https://github.com/CANopenNode/CANopenNode
https://github.com/CANopenNode/CANopenEditor
DON'T EDIT THIS FILE MANUALLY, UNLESS YOU KNOW WHAT YOU ARE DOING !!!!
*******************************************************************************/
#define OD_DEFINITION
#include "301/CO_ODinterface.h"
#include "OD.h"
#if CO_VERSION_MAJOR < 4
#error This Object dictionary is compatible with CANopenNode V4.0 and above!
#endif
/*******************************************************************************
OD data initialization of all groups
*******************************************************************************/
OD_ATTR_PERSIST_COMM OD_PERSIST_COMM_t OD_PERSIST_COMM = {
.x1000_deviceType = 0x00000000,
.x1005_COB_ID_SYNCMessage = 0x00000080,
.x1006_communicationCyclePeriod = 0x00000000,
.x1007_synchronousWindowLength = 0x00000000,
.x1012_COB_IDTimeStampObject = 0x00000100,
.x1014_COB_ID_EMCY = 0x00000080,
.x1015_inhibitTimeEMCY = 0x0000,
.x1016_consumerHeartbeatTime_sub0 = 0x08,
.x1016_consumerHeartbeatTime = {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
.x1017_producerHeartbeatTime = 0x07D0,
.x1018_identity = {
.highestSub_indexSupported = 0x04,
.vendor_ID = 0x00000625,
.productCode = 0x00000625,
.revisionNumber = 0x00000000,
.serialNumber = 0x00000000
},
.x1019_synchronousCounterOverflowValue = 0x00,
.x1280_SDOClientParameter = {
.highestSub_indexSupported = 0x03,
.COB_IDClientToServerTx = 0x80000000,
.COB_IDServerToClientRx = 0x80000000,
.node_IDOfTheSDOServer = 0x01
},
.x1400_RPDOCommunicationParameter = {
.highestSub_indexSupported = 0x05,
.COB_IDUsedByRPDO = 0x00000200,
.transmissionType = 0xFE,
.eventTimer = 0x0000
},
.x1401_RPDOCommunicationParameter = {
.highestSub_indexSupported = 0x05,
.COB_IDUsedByRPDO = 0x00000300,
.transmissionType = 0xFE,
.eventTimer = 0x0000
},
.x1402_RPDOCommunicationParameter = {
.highestSub_indexSupported = 0x05,
.COB_IDUsedByRPDO = 0x80000400,
.transmissionType = 0xFE,
.eventTimer = 0x0000
},
.x1403_RPDOCommunicationParameter = {
.highestSub_indexSupported = 0x05,
.COB_IDUsedByRPDO = 0x80000500,
.transmissionType = 0xFE,
.eventTimer = 0x0000
},
.x1600_RPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x02,
.applicationObject1 = 0x60400010,
.applicationObject2 = 0x60600008,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1601_RPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x02,
.applicationObject1 = 0x607A0020,
.applicationObject2 = 0x60FF0020,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1602_RPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x00,
.applicationObject1 = 0x00000000,
.applicationObject2 = 0x00000000,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1603_RPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x00,
.applicationObject1 = 0x00000000,
.applicationObject2 = 0x00000000,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1800_TPDOCommunicationParameter = {
.highestSub_indexSupported = 0x06,
.COB_IDUsedByTPDO = 0x40000180,
.transmissionType = 0xFE,
.inhibitTime = 0x0000,
.eventTimer = 0x0064,
.SYNCStartValue = 0x00
},
.x1801_TPDOCommunicationParameter = {
.highestSub_indexSupported = 0x06,
.COB_IDUsedByTPDO = 0x40000280,
.transmissionType = 0xFE,
.inhibitTime = 0x0000,
.eventTimer = 0x0064,
.SYNCStartValue = 0x00
},
.x1802_TPDOCommunicationParameter = {
.highestSub_indexSupported = 0x06,
.COB_IDUsedByTPDO = 0xC0000380,
.transmissionType = 0xFE,
.inhibitTime = 0x0000,
.eventTimer = 0x03E8,
.SYNCStartValue = 0x00
},
.x1803_TPDOCommunicationParameter = {
.highestSub_indexSupported = 0x06,
.COB_IDUsedByTPDO = 0xC0000480,
.transmissionType = 0xFE,
.inhibitTime = 0x0000,
.eventTimer = 0x03E8,
.SYNCStartValue = 0x00
},
.x1A00_TPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x02,
.applicationObject1 = 0x60410010,
.applicationObject2 = 0x60610008,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1A01_TPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x02,
.applicationObject1 = 0x60640020,
.applicationObject2 = 0x606C0020,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1A02_TPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x00,
.applicationObject1 = 0x00000000,
.applicationObject2 = 0x00000000,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
},
.x1A03_TPDOMappingParameter = {
.numberOfMappedApplicationObjectsInPDO = 0x00,
.applicationObject1 = 0x00000000,
.applicationObject2 = 0x00000000,
.applicationObject3 = 0x00000000,
.applicationObject4 = 0x00000000,
.applicationObject5 = 0x00000000,
.applicationObject6 = 0x00000000,
.applicationObject7 = 0x00000000,
.applicationObject8 = 0x00000000
}
};
OD_ATTR_RAM OD_RAM_t OD_RAM = {
.x1001_errorRegister = 0x00,
.x1010_storeParameters_sub0 = 0x04,
.x1010_storeParameters = {0x00000001, 0x00000001, 0x00000001, 0x00000001},
.x1011_restoreDefaultParameters_sub0 = 0x04,
.x1011_restoreDefaultParameters = {0x00000001, 0x00000001, 0x00000001, 0x00000001},
.x1200_SDOServerParameter = {
.highestSub_indexSupported = 0x02,
.COB_IDClientToServerRx = 0x00000600,
.COB_IDServerToClientTx = 0x00000580
},
.x6040_controlword = 0x0000,
.x6041_statusword = 0x0000,
.x6060_modesOfOperation = 1,
.x6061_modesOfOperationDisplay = 0,
.x6064_positionActualValue = 0,
.x6065_followingErrorWindow = 0,
.x606C_velocityActualValue = 0,
.x607A_targetPosition = 0x00000000,
.x6083_acceleration = 0x00000064,
.x6084_deceleration = 0x00000064,
.x60F4_followingErrorActualValue = 0,
.x60FF_targetVelocity = 0
};
/*******************************************************************************
All OD objects (constant definitions)
*******************************************************************************/
typedef struct {
OD_obj_var_t o_1000_deviceType;
OD_obj_var_t o_1001_errorRegister;
OD_obj_array_t o_1003_pre_definedErrorField;
OD_obj_var_t o_1005_COB_ID_SYNCMessage;
OD_obj_var_t o_1006_communicationCyclePeriod;
OD_obj_var_t o_1007_synchronousWindowLength;
OD_obj_array_t o_1010_storeParameters;
OD_obj_array_t o_1011_restoreDefaultParameters;
OD_obj_var_t o_1012_COB_IDTimeStampObject;
OD_obj_var_t o_1014_COB_ID_EMCY;
OD_obj_var_t o_1015_inhibitTimeEMCY;
OD_obj_array_t o_1016_consumerHeartbeatTime;
OD_obj_var_t o_1017_producerHeartbeatTime;
OD_obj_record_t o_1018_identity[5];
OD_obj_var_t o_1019_synchronousCounterOverflowValue;
OD_obj_record_t o_1200_SDOServerParameter[3];
OD_obj_record_t o_1280_SDOClientParameter[4];
OD_obj_record_t o_1400_RPDOCommunicationParameter[4];
OD_obj_record_t o_1401_RPDOCommunicationParameter[4];
OD_obj_record_t o_1402_RPDOCommunicationParameter[4];
OD_obj_record_t o_1403_RPDOCommunicationParameter[4];
OD_obj_record_t o_1600_RPDOMappingParameter[9];
OD_obj_record_t o_1601_RPDOMappingParameter[9];
OD_obj_record_t o_1602_RPDOMappingParameter[9];
OD_obj_record_t o_1603_RPDOMappingParameter[9];
OD_obj_record_t o_1800_TPDOCommunicationParameter[6];
OD_obj_record_t o_1801_TPDOCommunicationParameter[6];
OD_obj_record_t o_1802_TPDOCommunicationParameter[6];
OD_obj_record_t o_1803_TPDOCommunicationParameter[6];
OD_obj_record_t o_1A00_TPDOMappingParameter[9];
OD_obj_record_t o_1A01_TPDOMappingParameter[9];
OD_obj_record_t o_1A02_TPDOMappingParameter[9];
OD_obj_record_t o_1A03_TPDOMappingParameter[9];
OD_obj_var_t o_6040_controlword;
OD_obj_var_t o_6041_statusword;
OD_obj_var_t o_6060_modesOfOperation;
OD_obj_var_t o_6061_modesOfOperationDisplay;
OD_obj_var_t o_6064_positionActualValue;
OD_obj_var_t o_6065_followingErrorWindow;
OD_obj_var_t o_606C_velocityActualValue;
OD_obj_var_t o_607A_targetPosition;
OD_obj_var_t o_6083_acceleration;
OD_obj_var_t o_6084_deceleration;
OD_obj_var_t o_60F4_followingErrorActualValue;
OD_obj_var_t o_60FF_targetVelocity;
} ODObjs_t;
static CO_PROGMEM ODObjs_t ODObjs = {
.o_1000_deviceType = {
.dataOrig = &OD_PERSIST_COMM.x1000_deviceType,
.attribute = ODA_SDO_R | ODA_MB,
.dataLength = 4
},
.o_1001_errorRegister = {
.dataOrig = &OD_RAM.x1001_errorRegister,
.attribute = ODA_SDO_R | ODA_TPDO,
.dataLength = 1
},
.o_1003_pre_definedErrorField = {
.dataOrig0 = NULL,
.dataOrig = NULL,
.attribute0 = ODA_SDO_RW,
.attribute = ODA_SDO_R | ODA_MB,
.dataElementLength = 4,
.dataElementSizeof = sizeof(uint32_t)
},
.o_1005_COB_ID_SYNCMessage = {
.dataOrig = &OD_PERSIST_COMM.x1005_COB_ID_SYNCMessage,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_1006_communicationCyclePeriod = {
.dataOrig = &OD_PERSIST_COMM.x1006_communicationCyclePeriod,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_1007_synchronousWindowLength = {
.dataOrig = &OD_PERSIST_COMM.x1007_synchronousWindowLength,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_1010_storeParameters = {
.dataOrig0 = &OD_RAM.x1010_storeParameters_sub0,
.dataOrig = &OD_RAM.x1010_storeParameters[0],
.attribute0 = ODA_SDO_R,
.attribute = ODA_SDO_RW | ODA_MB,
.dataElementLength = 4,
.dataElementSizeof = sizeof(uint32_t)
},
.o_1011_restoreDefaultParameters = {
.dataOrig0 = &OD_RAM.x1011_restoreDefaultParameters_sub0,
.dataOrig = &OD_RAM.x1011_restoreDefaultParameters[0],
.attribute0 = ODA_SDO_R,
.attribute = ODA_SDO_RW | ODA_MB,
.dataElementLength = 4,
.dataElementSizeof = sizeof(uint32_t)
},
.o_1012_COB_IDTimeStampObject = {
.dataOrig = &OD_PERSIST_COMM.x1012_COB_IDTimeStampObject,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_1014_COB_ID_EMCY = {
.dataOrig = &OD_PERSIST_COMM.x1014_COB_ID_EMCY,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_1015_inhibitTimeEMCY = {
.dataOrig = &OD_PERSIST_COMM.x1015_inhibitTimeEMCY,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
.o_1016_consumerHeartbeatTime = {
.dataOrig0 = &OD_PERSIST_COMM.x1016_consumerHeartbeatTime_sub0,
.dataOrig = &OD_PERSIST_COMM.x1016_consumerHeartbeatTime[0],
.attribute0 = ODA_SDO_R,
.attribute = ODA_SDO_RW | ODA_MB,
.dataElementLength = 4,
.dataElementSizeof = sizeof(uint32_t)
},
.o_1017_producerHeartbeatTime = {
.dataOrig = &OD_PERSIST_COMM.x1017_producerHeartbeatTime,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
.o_1018_identity = {
{
.dataOrig = &OD_PERSIST_COMM.x1018_identity.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1018_identity.vendor_ID,
.subIndex = 1,
.attribute = ODA_SDO_R | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1018_identity.productCode,
.subIndex = 2,
.attribute = ODA_SDO_R | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1018_identity.revisionNumber,
.subIndex = 3,
.attribute = ODA_SDO_R | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1018_identity.serialNumber,
.subIndex = 4,
.attribute = ODA_SDO_R | ODA_MB,
.dataLength = 4
}
},
.o_1019_synchronousCounterOverflowValue = {
.dataOrig = &OD_PERSIST_COMM.x1019_synchronousCounterOverflowValue,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
.o_1200_SDOServerParameter = {
{
.dataOrig = &OD_RAM.x1200_SDOServerParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_RAM.x1200_SDOServerParameter.COB_IDClientToServerRx,
.subIndex = 1,
.attribute = ODA_SDO_R | ODA_TPDO | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_RAM.x1200_SDOServerParameter.COB_IDServerToClientTx,
.subIndex = 2,
.attribute = ODA_SDO_R | ODA_TPDO | ODA_MB,
.dataLength = 4
}
},
.o_1280_SDOClientParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1280_SDOClientParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1280_SDOClientParameter.COB_IDClientToServerTx,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_TRPDO | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1280_SDOClientParameter.COB_IDServerToClientRx,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_TRPDO | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1280_SDOClientParameter.node_IDOfTheSDOServer,
.subIndex = 3,
.attribute = ODA_SDO_RW,
.dataLength = 1
}
},
.o_1400_RPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1400_RPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1400_RPDOCommunicationParameter.COB_IDUsedByRPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1400_RPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1400_RPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
}
},
.o_1401_RPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1401_RPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1401_RPDOCommunicationParameter.COB_IDUsedByRPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1401_RPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1401_RPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
}
},
.o_1402_RPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1402_RPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1402_RPDOCommunicationParameter.COB_IDUsedByRPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1402_RPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1402_RPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
}
},
.o_1403_RPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1403_RPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1403_RPDOCommunicationParameter.COB_IDUsedByRPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1403_RPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1403_RPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
}
},
.o_1600_RPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1600_RPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1601_RPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1601_RPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1602_RPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1602_RPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1603_RPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1603_RPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1800_TPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1800_TPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1800_TPDOCommunicationParameter.COB_IDUsedByTPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1800_TPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1800_TPDOCommunicationParameter.inhibitTime,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1800_TPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1800_TPDOCommunicationParameter.SYNCStartValue,
.subIndex = 6,
.attribute = ODA_SDO_RW,
.dataLength = 1
}
},
.o_1801_TPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1801_TPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1801_TPDOCommunicationParameter.COB_IDUsedByTPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1801_TPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1801_TPDOCommunicationParameter.inhibitTime,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1801_TPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1801_TPDOCommunicationParameter.SYNCStartValue,
.subIndex = 6,
.attribute = ODA_SDO_RW,
.dataLength = 1
}
},
.o_1802_TPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1802_TPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1802_TPDOCommunicationParameter.COB_IDUsedByTPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1802_TPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1802_TPDOCommunicationParameter.inhibitTime,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1802_TPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1802_TPDOCommunicationParameter.SYNCStartValue,
.subIndex = 6,
.attribute = ODA_SDO_RW,
.dataLength = 1
}
},
.o_1803_TPDOCommunicationParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1803_TPDOCommunicationParameter.highestSub_indexSupported,
.subIndex = 0,
.attribute = ODA_SDO_R,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1803_TPDOCommunicationParameter.COB_IDUsedByTPDO,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1803_TPDOCommunicationParameter.transmissionType,
.subIndex = 2,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1803_TPDOCommunicationParameter.inhibitTime,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1803_TPDOCommunicationParameter.eventTimer,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 2
},
{
.dataOrig = &OD_PERSIST_COMM.x1803_TPDOCommunicationParameter.SYNCStartValue,
.subIndex = 6,
.attribute = ODA_SDO_RW,
.dataLength = 1
}
},
.o_1A00_TPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A00_TPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1A01_TPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A01_TPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1A02_TPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A02_TPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_1A03_TPDOMappingParameter = {
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.numberOfMappedApplicationObjectsInPDO,
.subIndex = 0,
.attribute = ODA_SDO_RW,
.dataLength = 1
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject1,
.subIndex = 1,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject2,
.subIndex = 2,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject3,
.subIndex = 3,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject4,
.subIndex = 4,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject5,
.subIndex = 5,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject6,
.subIndex = 6,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject7,
.subIndex = 7,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
{
.dataOrig = &OD_PERSIST_COMM.x1A03_TPDOMappingParameter.applicationObject8,
.subIndex = 8,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
}
},
.o_6040_controlword = {
.dataOrig = &OD_RAM.x6040_controlword,
.attribute = ODA_SDO_RW | ODA_TRPDO | ODA_MB,
.dataLength = 2
},
.o_6041_statusword = {
.dataOrig = &OD_RAM.x6041_statusword,
.attribute = ODA_SDO_R | ODA_TPDO | ODA_MB,
.dataLength = 2
},
.o_6060_modesOfOperation = {
.dataOrig = &OD_RAM.x6060_modesOfOperation,
.attribute = ODA_SDO_RW | ODA_RPDO,
.dataLength = 1
},
.o_6061_modesOfOperationDisplay = {
.dataOrig = &OD_RAM.x6061_modesOfOperationDisplay,
.attribute = ODA_SDO_R | ODA_TPDO,
.dataLength = 1
},
.o_6064_positionActualValue = {
.dataOrig = &OD_RAM.x6064_positionActualValue,
.attribute = ODA_SDO_R | ODA_TPDO | ODA_MB,
.dataLength = 4
},
.o_6065_followingErrorWindow = {
.dataOrig = &OD_RAM.x6065_followingErrorWindow,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_606C_velocityActualValue = {
.dataOrig = &OD_RAM.x606C_velocityActualValue,
.attribute = ODA_SDO_R | ODA_TPDO | ODA_MB,
.dataLength = 4
},
.o_607A_targetPosition = {
.dataOrig = &OD_RAM.x607A_targetPosition,
.attribute = ODA_SDO_RW | ODA_RPDO | ODA_MB,
.dataLength = 4
},
.o_6083_acceleration = {
.dataOrig = &OD_RAM.x6083_acceleration,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_6084_deceleration = {
.dataOrig = &OD_RAM.x6084_deceleration,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_60F4_followingErrorActualValue = {
.dataOrig = &OD_RAM.x60F4_followingErrorActualValue,
.attribute = ODA_SDO_RW | ODA_MB,
.dataLength = 4
},
.o_60FF_targetVelocity = {
.dataOrig = &OD_RAM.x60FF_targetVelocity,
.attribute = ODA_SDO_RW | ODA_RPDO | ODA_MB,
.dataLength = 4
}
};
/*******************************************************************************
Object dictionary
*******************************************************************************/
static OD_ATTR_OD OD_entry_t ODList[] = {
{0x1000, 0x01, ODT_VAR, &ODObjs.o_1000_deviceType, NULL},
{0x1001, 0x01, ODT_VAR, &ODObjs.o_1001_errorRegister, NULL},
{0x1003, 0x11, ODT_ARR, &ODObjs.o_1003_pre_definedErrorField, NULL},
{0x1005, 0x01, ODT_VAR, &ODObjs.o_1005_COB_ID_SYNCMessage, NULL},
{0x1006, 0x01, ODT_VAR, &ODObjs.o_1006_communicationCyclePeriod, NULL},
{0x1007, 0x01, ODT_VAR, &ODObjs.o_1007_synchronousWindowLength, NULL},
{0x1010, 0x05, ODT_ARR, &ODObjs.o_1010_storeParameters, NULL},
{0x1011, 0x05, ODT_ARR, &ODObjs.o_1011_restoreDefaultParameters, NULL},
{0x1012, 0x01, ODT_VAR, &ODObjs.o_1012_COB_IDTimeStampObject, NULL},
{0x1014, 0x01, ODT_VAR, &ODObjs.o_1014_COB_ID_EMCY, NULL},
{0x1015, 0x01, ODT_VAR, &ODObjs.o_1015_inhibitTimeEMCY, NULL},
{0x1016, 0x09, ODT_ARR, &ODObjs.o_1016_consumerHeartbeatTime, NULL},
{0x1017, 0x01, ODT_VAR, &ODObjs.o_1017_producerHeartbeatTime, NULL},
{0x1018, 0x05, ODT_REC, &ODObjs.o_1018_identity, NULL},
{0x1019, 0x01, ODT_VAR, &ODObjs.o_1019_synchronousCounterOverflowValue, NULL},
{0x1200, 0x03, ODT_REC, &ODObjs.o_1200_SDOServerParameter, NULL},
{0x1280, 0x04, ODT_REC, &ODObjs.o_1280_SDOClientParameter, NULL},
{0x1400, 0x04, ODT_REC, &ODObjs.o_1400_RPDOCommunicationParameter, NULL},
{0x1401, 0x04, ODT_REC, &ODObjs.o_1401_RPDOCommunicationParameter, NULL},
{0x1402, 0x04, ODT_REC, &ODObjs.o_1402_RPDOCommunicationParameter, NULL},
{0x1403, 0x04, ODT_REC, &ODObjs.o_1403_RPDOCommunicationParameter, NULL},
{0x1600, 0x09, ODT_REC, &ODObjs.o_1600_RPDOMappingParameter, NULL},
{0x1601, 0x09, ODT_REC, &ODObjs.o_1601_RPDOMappingParameter, NULL},
{0x1602, 0x09, ODT_REC, &ODObjs.o_1602_RPDOMappingParameter, NULL},
{0x1603, 0x09, ODT_REC, &ODObjs.o_1603_RPDOMappingParameter, NULL},
{0x1800, 0x06, ODT_REC, &ODObjs.o_1800_TPDOCommunicationParameter, NULL},
{0x1801, 0x06, ODT_REC, &ODObjs.o_1801_TPDOCommunicationParameter, NULL},
{0x1802, 0x06, ODT_REC, &ODObjs.o_1802_TPDOCommunicationParameter, NULL},
{0x1803, 0x06, ODT_REC, &ODObjs.o_1803_TPDOCommunicationParameter, NULL},
{0x1A00, 0x09, ODT_REC, &ODObjs.o_1A00_TPDOMappingParameter, NULL},
{0x1A01, 0x09, ODT_REC, &ODObjs.o_1A01_TPDOMappingParameter, NULL},
{0x1A02, 0x09, ODT_REC, &ODObjs.o_1A02_TPDOMappingParameter, NULL},
{0x1A03, 0x09, ODT_REC, &ODObjs.o_1A03_TPDOMappingParameter, NULL},
{0x6040, 0x01, ODT_VAR, &ODObjs.o_6040_controlword, NULL},
{0x6041, 0x01, ODT_VAR, &ODObjs.o_6041_statusword, NULL},
{0x6060, 0x01, ODT_VAR, &ODObjs.o_6060_modesOfOperation, NULL},
{0x6061, 0x01, ODT_VAR, &ODObjs.o_6061_modesOfOperationDisplay, NULL},
{0x6064, 0x01, ODT_VAR, &ODObjs.o_6064_positionActualValue, NULL},
{0x6065, 0x01, ODT_VAR, &ODObjs.o_6065_followingErrorWindow, NULL},
{0x606C, 0x01, ODT_VAR, &ODObjs.o_606C_velocityActualValue, NULL},
{0x607A, 0x01, ODT_VAR, &ODObjs.o_607A_targetPosition, NULL},
{0x6083, 0x01, ODT_VAR, &ODObjs.o_6083_acceleration, NULL},
{0x6084, 0x01, ODT_VAR, &ODObjs.o_6084_deceleration, NULL},
{0x60F4, 0x01, ODT_VAR, &ODObjs.o_60F4_followingErrorActualValue, NULL},
{0x60FF, 0x01, ODT_VAR, &ODObjs.o_60FF_targetVelocity, NULL},
{0x0000, 0x00, 0, NULL, NULL}
};
static OD_t _OD = {
(sizeof(ODList) / sizeof(ODList[0])) - 1,
&ODList[0]
};
OD_t *OD = &_OD;