414 lines
17 KiB
C
414 lines
17 KiB
C
/*******************************************************************************
|
|
|
|
File: CO_OD.h
|
|
CANopen Object Dictionary.
|
|
|
|
Copyright (C) 2004-2008 Janez Paternoster
|
|
|
|
License: GNU Lesser General Public License (LGPL).
|
|
|
|
<http://canopennode.sourceforge.net>
|
|
|
|
(For more information see <CO_SDO.h>.)
|
|
*/
|
|
/*
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation, either version 2.1 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
Author: Janez Paternoster
|
|
|
|
|
|
This file was automatically generated with CANopenNode Object
|
|
Dictionary Editor. DON'T EDIT THIS FILE MANUALLY !!!!
|
|
|
|
*******************************************************************************/
|
|
|
|
#ifndef CO_OD_H
|
|
#define CO_OD_H
|
|
|
|
|
|
/*******************************************************************************
|
|
CANopen DATA DYPES
|
|
*******************************************************************************/
|
|
typedef uint8_t UNSIGNED8;
|
|
typedef uint16_t UNSIGNED16;
|
|
typedef uint32_t UNSIGNED32;
|
|
typedef uint64_t UNSIGNED64;
|
|
typedef int8_t INTEGER8;
|
|
typedef int16_t INTEGER16;
|
|
typedef int32_t INTEGER32;
|
|
typedef int64_t INTEGER64;
|
|
typedef float32_t REAL32;
|
|
typedef float64_t REAL64;
|
|
typedef char_t VISIBLE_STRING;
|
|
typedef oChar_t OCTET_STRING;
|
|
typedef domain_t DOMAIN;
|
|
|
|
|
|
/*******************************************************************************
|
|
FILE INFO:
|
|
FileName: iMaxeon
|
|
FileVersion: 3
|
|
CreationTime: 08:47:43
|
|
CreationDate: 2014-09-02
|
|
CreatedBy: AH
|
|
*******************************************************************************/
|
|
|
|
|
|
/*******************************************************************************
|
|
DEVICE INFO:
|
|
VendorName: Paternoster
|
|
VendorNumber: 0
|
|
ProductName: CANopenNode
|
|
ProductNumber: 0
|
|
*******************************************************************************/
|
|
|
|
|
|
/*******************************************************************************
|
|
FEATURES
|
|
*******************************************************************************/
|
|
#define CO_NO_SYNC 1 //Associated objects: 1005, 1006, 1007, 2103, 2104
|
|
#define CO_NO_EMERGENCY 1 //Associated objects: 1014, 1015
|
|
#define CO_NO_SDO_SERVER 1 //Associated objects: 1200
|
|
#define CO_NO_SDO_CLIENT 1 //Associated objects: 1280
|
|
#define CO_NO_RPDO 4 //Associated objects: 1400, 1401, 1402, 1403, 1600, 1601, 1602, 1603
|
|
#define CO_NO_TPDO 4 //Associated objects: 1800, 1801, 1802, 1803, 1A00, 1A01, 1A02, 1A03
|
|
#define CO_NO_NMT_MASTER 0
|
|
|
|
|
|
/*******************************************************************************
|
|
OBJECT DICTIONARY
|
|
*******************************************************************************/
|
|
#define CO_OD_NoOfElements 57
|
|
|
|
|
|
/*******************************************************************************
|
|
TYPE DEFINITIONS FOR RECORDS
|
|
*******************************************************************************/
|
|
/*1018 */ typedef struct{
|
|
UNSIGNED8 maxSubIndex;
|
|
UNSIGNED32 vendorID;
|
|
UNSIGNED32 productCode;
|
|
UNSIGNED32 revisionNumber;
|
|
UNSIGNED32 serialNumber;
|
|
} OD_identity_t;
|
|
|
|
/*1200[1] */ typedef struct{
|
|
UNSIGNED8 maxSubIndex;
|
|
UNSIGNED32 COB_IDClientToServer;
|
|
UNSIGNED32 COB_IDServerToClient;
|
|
} OD_SDOServerParameter_t;
|
|
|
|
/*1280[1] */ typedef struct{
|
|
UNSIGNED8 maxSubIndex;
|
|
UNSIGNED32 COB_IDClientToServer;
|
|
UNSIGNED32 COB_IDServerToClient;
|
|
UNSIGNED8 nodeIDOfTheSDOServer;
|
|
} OD_SDOClientParameter_t;
|
|
|
|
/*1400[4] */ typedef struct{
|
|
UNSIGNED8 maxSubIndex;
|
|
UNSIGNED32 COB_IDUsedByRPDO;
|
|
UNSIGNED8 transmissionType;
|
|
} OD_RPDOCommunicationParameter_t;
|
|
|
|
/*1600[4] */ typedef struct{
|
|
UNSIGNED8 numberOfMappedObjects;
|
|
UNSIGNED32 mappedObject1;
|
|
UNSIGNED32 mappedObject2;
|
|
UNSIGNED32 mappedObject3;
|
|
UNSIGNED32 mappedObject4;
|
|
UNSIGNED32 mappedObject5;
|
|
UNSIGNED32 mappedObject6;
|
|
UNSIGNED32 mappedObject7;
|
|
UNSIGNED32 mappedObject8;
|
|
} OD_RPDOMappingParameter_t;
|
|
|
|
/*1800[4] */ typedef struct{
|
|
UNSIGNED8 maxSubIndex;
|
|
UNSIGNED32 COB_IDUsedByTPDO;
|
|
UNSIGNED8 transmissionType;
|
|
UNSIGNED16 inhibitTime;
|
|
UNSIGNED8 compatibilityEntry;
|
|
UNSIGNED16 eventTimer;
|
|
UNSIGNED8 SYNCStartValue;
|
|
} OD_TPDOCommunicationParameter_t;
|
|
|
|
/*1A00[4] */ typedef struct{
|
|
UNSIGNED8 numberOfMappedObjects;
|
|
UNSIGNED32 mappedObject1;
|
|
UNSIGNED32 mappedObject2;
|
|
UNSIGNED32 mappedObject3;
|
|
UNSIGNED32 mappedObject4;
|
|
UNSIGNED32 mappedObject5;
|
|
UNSIGNED32 mappedObject6;
|
|
UNSIGNED32 mappedObject7;
|
|
UNSIGNED32 mappedObject8;
|
|
} OD_TPDOMappingParameter_t;
|
|
|
|
|
|
/*******************************************************************************
|
|
STRUCTURES FOR VARIABLES IN DIFFERENT MEMORY LOCATIONS
|
|
*******************************************************************************/
|
|
#define CO_OD_FIRST_LAST_WORD 0x55 //Any value from 0x01 to 0xFE. If changed, EEPROM will be reinitialized.
|
|
|
|
/***** Structure for RAM variables ********************************************/
|
|
struct sCO_OD_RAM{
|
|
UNSIGNED32 FirstWord;
|
|
|
|
/*1001 */ UNSIGNED8 errorRegister;
|
|
/*1002 */ UNSIGNED32 manufacturerStatusRegister;
|
|
/*1003 */ UNSIGNED32 preDefinedErrorField[8];
|
|
/*1010 */ UNSIGNED32 storeParameters[1];
|
|
/*1011 */ UNSIGNED32 restoreDefaultParameters[1];
|
|
/*1280[1] */ OD_SDOClientParameter_t SDOClientParameter[1];
|
|
/*2100 */ OCTET_STRING errorStatusBits[10];
|
|
/*2103 */ UNSIGNED16 SYNCCounter;
|
|
/*2104 */ UNSIGNED16 SYNCTime;
|
|
/*6000 */ UNSIGNED32 controlWord;
|
|
/*6001 */ UNSIGNED32 statusWord;
|
|
/*6002 */ UNSIGNED8 injectionMode;
|
|
/*6003 */ UNSIGNED8 setDateAndTime[6];
|
|
/*6006 */ UNSIGNED8 communicationLost;
|
|
/*6007 */ UNSIGNED32 functionsSupported;
|
|
/*6008 */ UNSIGNED16 globalAttributesSupport[2];
|
|
/*6009 */ UNSIGNED16 currentInjectedTotalVolume;
|
|
/*600A */ UNSIGNED16 currentPressure;
|
|
/*600B */ UNSIGNED16 currentTotalFlowRate;
|
|
/*600C */ UNSIGNED16 currentVolumeRemaining[8];
|
|
/*6070 */ UNSIGNED32 medicalDiagnosticDeviceIdentity[4];
|
|
/*6073 */ UNSIGNED32 profileVersion;
|
|
|
|
UNSIGNED32 LastWord;
|
|
};
|
|
|
|
/***** Structure for EEPROM variables *****************************************/
|
|
struct sCO_OD_EEPROM{
|
|
UNSIGNED32 FirstWord;
|
|
|
|
/*2106 */ UNSIGNED32 powerOnCounter;
|
|
|
|
UNSIGNED32 LastWord;
|
|
};
|
|
|
|
|
|
/***** Structure for ROM variables ********************************************/
|
|
struct sCO_OD_ROM{
|
|
UNSIGNED32 FirstWord;
|
|
|
|
/*1000 */ UNSIGNED32 deviceType;
|
|
/*1005 */ UNSIGNED32 COB_ID_SYNCMessage;
|
|
/*1006 */ UNSIGNED32 communicationCyclePeriod;
|
|
/*1007 */ UNSIGNED32 synchronousWindowLength;
|
|
/*1008 */ VISIBLE_STRING manufacturerDeviceName[11];
|
|
/*1009 */ VISIBLE_STRING manufacturerHardwareVersion[4];
|
|
/*100A */ VISIBLE_STRING manufacturerSoftwareVersion[4];
|
|
/*1014 */ UNSIGNED32 COB_ID_EMCY;
|
|
/*1015 */ UNSIGNED16 inhibitTimeEMCY;
|
|
/*1016 */ UNSIGNED32 consumerHeartbeatTime[1];
|
|
/*1017 */ UNSIGNED16 producerHeartbeatTime;
|
|
/*1018 */ OD_identity_t identity;
|
|
/*1019 */ UNSIGNED8 synchronousCounterOverflowValue;
|
|
/*1029 */ UNSIGNED8 errorBehavior[2];
|
|
/*1200[1] */ OD_SDOServerParameter_t SDOServerParameter[1];
|
|
/*1400[4] */ OD_RPDOCommunicationParameter_t RPDOCommunicationParameter[4];
|
|
/*1600[4] */ OD_RPDOMappingParameter_t RPDOMappingParameter[4];
|
|
/*1800[4] */ OD_TPDOCommunicationParameter_t TPDOCommunicationParameter[4];
|
|
/*1A00[4] */ OD_TPDOMappingParameter_t TPDOMappingParameter[4];
|
|
/*1F80 */ UNSIGNED32 NMTStartup;
|
|
/*2101 */ UNSIGNED8 CANNodeID;
|
|
/*2102 */ UNSIGNED16 CANBitRate;
|
|
|
|
UNSIGNED32 LastWord;
|
|
};
|
|
|
|
|
|
/***** Declaration of Object Dictionary variables *****************************/
|
|
extern struct sCO_OD_RAM CO_OD_RAM;
|
|
|
|
extern struct sCO_OD_EEPROM CO_OD_EEPROM;
|
|
|
|
extern struct sCO_OD_ROM CO_OD_ROM;
|
|
|
|
|
|
/*******************************************************************************
|
|
ALIASES FOR OBJECT DICTIONARY VARIABLES
|
|
*******************************************************************************/
|
|
/*1000, Data Type: UNSIGNED32 */
|
|
#define OD_deviceType CO_OD_ROM.deviceType
|
|
|
|
/*1001, Data Type: UNSIGNED8 */
|
|
#define OD_errorRegister CO_OD_RAM.errorRegister
|
|
|
|
/*1002, Data Type: UNSIGNED32 */
|
|
#define OD_manufacturerStatusRegister CO_OD_RAM.manufacturerStatusRegister
|
|
|
|
/*1003, Data Type: UNSIGNED32, Array[8] */
|
|
#define OD_preDefinedErrorField CO_OD_RAM.preDefinedErrorField
|
|
#define ODL_preDefinedErrorField_arrayLength 8
|
|
|
|
/*1005, Data Type: UNSIGNED32 */
|
|
#define OD_COB_ID_SYNCMessage CO_OD_ROM.COB_ID_SYNCMessage
|
|
|
|
/*1006, Data Type: UNSIGNED32 */
|
|
#define OD_communicationCyclePeriod CO_OD_ROM.communicationCyclePeriod
|
|
|
|
/*1007, Data Type: UNSIGNED32 */
|
|
#define OD_synchronousWindowLength CO_OD_ROM.synchronousWindowLength
|
|
|
|
/*1008, Data Type: VISIBLE_STRING, Array[11] */
|
|
#define OD_manufacturerDeviceName CO_OD_ROM.manufacturerDeviceName
|
|
#define ODL_manufacturerDeviceName_stringLength 11
|
|
|
|
/*1009, Data Type: VISIBLE_STRING, Array[4] */
|
|
#define OD_manufacturerHardwareVersion CO_OD_ROM.manufacturerHardwareVersion
|
|
#define ODL_manufacturerHardwareVersion_stringLength 4
|
|
|
|
/*100A, Data Type: VISIBLE_STRING, Array[4] */
|
|
#define OD_manufacturerSoftwareVersion CO_OD_ROM.manufacturerSoftwareVersion
|
|
#define ODL_manufacturerSoftwareVersion_stringLength 4
|
|
|
|
/*1010, Data Type: UNSIGNED32, Array[1] */
|
|
#define OD_storeParameters CO_OD_RAM.storeParameters
|
|
#define ODL_storeParameters_arrayLength 1
|
|
#define ODA_storeParameters_saveAllParameters 0
|
|
|
|
/*1011, Data Type: UNSIGNED32, Array[1] */
|
|
#define OD_restoreDefaultParameters CO_OD_RAM.restoreDefaultParameters
|
|
#define ODL_restoreDefaultParameters_arrayLength 1
|
|
#define ODA_restoreDefaultParameters_restoreAllDefaultParameters 0
|
|
|
|
/*1014, Data Type: UNSIGNED32 */
|
|
#define OD_COB_ID_EMCY CO_OD_ROM.COB_ID_EMCY
|
|
|
|
/*1015, Data Type: UNSIGNED16 */
|
|
#define OD_inhibitTimeEMCY CO_OD_ROM.inhibitTimeEMCY
|
|
|
|
/*1016, Data Type: UNSIGNED32, Array[1] */
|
|
#define OD_consumerHeartbeatTime CO_OD_ROM.consumerHeartbeatTime
|
|
#define ODL_consumerHeartbeatTime_arrayLength 1
|
|
#define ODA_consumerHeartbeatTime_consumerHeartbeatTime 0
|
|
|
|
/*1017, Data Type: UNSIGNED16 */
|
|
#define OD_producerHeartbeatTime CO_OD_ROM.producerHeartbeatTime
|
|
|
|
/*1018, Data Type: OD_identity_t */
|
|
#define OD_identity CO_OD_ROM.identity
|
|
|
|
/*1019, Data Type: UNSIGNED8 */
|
|
#define OD_synchronousCounterOverflowValue CO_OD_ROM.synchronousCounterOverflowValue
|
|
|
|
/*1029, Data Type: UNSIGNED8, Array[2] */
|
|
#define OD_errorBehavior CO_OD_ROM.errorBehavior
|
|
#define ODL_errorBehavior_arrayLength 2
|
|
#define ODA_errorBehavior_communication 0
|
|
#define ODA_errorBehavior_communicationOther 1
|
|
|
|
/*1200[1], Data Type: OD_SDOServerParameter_t, Array[1] */
|
|
#define OD_SDOServerParameter CO_OD_ROM.SDOServerParameter
|
|
|
|
/*1280[1], Data Type: OD_SDOClientParameter_t, Array[1] */
|
|
#define OD_SDOClientParameter CO_OD_RAM.SDOClientParameter
|
|
|
|
/*1400[4], Data Type: OD_RPDOCommunicationParameter_t, Array[4] */
|
|
#define OD_RPDOCommunicationParameter CO_OD_ROM.RPDOCommunicationParameter
|
|
|
|
/*1600[4], Data Type: OD_RPDOMappingParameter_t, Array[4] */
|
|
#define OD_RPDOMappingParameter CO_OD_ROM.RPDOMappingParameter
|
|
|
|
/*1800[4], Data Type: OD_TPDOCommunicationParameter_t, Array[4] */
|
|
#define OD_TPDOCommunicationParameter CO_OD_ROM.TPDOCommunicationParameter
|
|
|
|
/*1A00[4], Data Type: OD_TPDOMappingParameter_t, Array[4] */
|
|
#define OD_TPDOMappingParameter CO_OD_ROM.TPDOMappingParameter
|
|
|
|
/*1F80, Data Type: UNSIGNED32 */
|
|
#define OD_NMTStartup CO_OD_ROM.NMTStartup
|
|
|
|
/*2100, Data Type: OCTET_STRING, Array[10] */
|
|
#define OD_errorStatusBits CO_OD_RAM.errorStatusBits
|
|
#define ODL_errorStatusBits_stringLength 10
|
|
|
|
/*2101, Data Type: UNSIGNED8 */
|
|
#define OD_CANNodeID CO_OD_ROM.CANNodeID
|
|
|
|
/*2102, Data Type: UNSIGNED16 */
|
|
#define OD_CANBitRate CO_OD_ROM.CANBitRate
|
|
|
|
/*2103, Data Type: UNSIGNED16 */
|
|
#define OD_SYNCCounter CO_OD_RAM.SYNCCounter
|
|
|
|
/*2104, Data Type: UNSIGNED16 */
|
|
#define OD_SYNCTime CO_OD_RAM.SYNCTime
|
|
|
|
/*2106, Data Type: UNSIGNED32 */
|
|
#define OD_powerOnCounter CO_OD_EEPROM.powerOnCounter
|
|
|
|
/*6000, Data Type: UNSIGNED32 */
|
|
#define OD_controlWord CO_OD_RAM.controlWord
|
|
|
|
/*6001, Data Type: UNSIGNED32 */
|
|
#define OD_statusWord CO_OD_RAM.statusWord
|
|
|
|
/*6002, Data Type: UNSIGNED8 */
|
|
#define OD_injectionMode CO_OD_RAM.injectionMode
|
|
|
|
/*6003, Data Type: UNSIGNED8, Array[6] */
|
|
#define OD_setDateAndTime CO_OD_RAM.setDateAndTime
|
|
#define ODL_setDateAndTime_arrayLength 6
|
|
#define ODA_setDateAndTime_year 0
|
|
#define ODA_setDateAndTime_day 1
|
|
#define ODA_setDateAndTime_month 2
|
|
#define ODA_setDateAndTime_hour 3
|
|
#define ODA_setDateAndTime_minute 4
|
|
#define ODA_setDateAndTime_second 5
|
|
|
|
/*6006, Data Type: UNSIGNED8 */
|
|
#define OD_communicationLost CO_OD_RAM.communicationLost
|
|
|
|
/*6007, Data Type: UNSIGNED32 */
|
|
#define OD_functionsSupported CO_OD_RAM.functionsSupported
|
|
|
|
/*6008, Data Type: UNSIGNED16, Array[2] */
|
|
#define OD_globalAttributesSupport CO_OD_RAM.globalAttributesSupport
|
|
#define ODL_globalAttributesSupport_arrayLength 2
|
|
#define ODA_globalAttributesSupport_attributes_implemented 0
|
|
#define ODA_globalAttributesSupport_support_attributes 1
|
|
|
|
/*6009, Data Type: UNSIGNED16 */
|
|
#define OD_currentInjectedTotalVolume CO_OD_RAM.currentInjectedTotalVolume
|
|
|
|
/*600A, Data Type: UNSIGNED16 */
|
|
#define OD_currentPressure CO_OD_RAM.currentPressure
|
|
|
|
/*600B, Data Type: UNSIGNED16 */
|
|
#define OD_currentTotalFlowRate CO_OD_RAM.currentTotalFlowRate
|
|
|
|
/*600C, Data Type: UNSIGNED16, Array[8] */
|
|
#define OD_currentVolumeRemaining CO_OD_RAM.currentVolumeRemaining
|
|
#define ODL_currentVolumeRemaining_arrayLength 8
|
|
|
|
/*6070, Data Type: UNSIGNED32, Array[4] */
|
|
#define OD_medicalDiagnosticDeviceIdentity CO_OD_RAM.medicalDiagnosticDeviceIdentity
|
|
#define ODL_medicalDiagnosticDeviceIdentity_arrayLength 4
|
|
#define ODA_medicalDiagnosticDeviceIdentity_vendorId 0
|
|
#define ODA_medicalDiagnosticDeviceIdentity_productCode 1
|
|
#define ODA_medicalDiagnosticDeviceIdentity_revisionNumber 2
|
|
#define ODA_medicalDiagnosticDeviceIdentity_serialNumber 3
|
|
|
|
/*6073, Data Type: UNSIGNED32 */
|
|
#define OD_profileVersion CO_OD_RAM.profileVersion
|
|
|
|
|
|
#endif
|