39#define OD_CNT_SYNC_PROD 1
40#define OD_CNT_STORAGE 1
42#define OD_CNT_EM_PROD 1
43#define OD_CNT_HB_CONS 1
44#define OD_CNT_HB_PROD 1
45#define OD_CNT_SDO_SRV 1
53#define OD_CNT_ARR_1003 16
54#define OD_CNT_ARR_1010 6
55#define OD_CNT_ARR_1011 6
56#define OD_CNT_ARR_1016 8
57#define OD_CNT_ARR_2110 16
58#define OD_CNT_ARR_2111 16
59#define OD_CNT_ARR_2112 16
60#define OD_CNT_ARR_6000 8
61#define OD_CNT_ARR_6200 8
62#define OD_CNT_ARR_6401 16
63#define OD_CNT_ARR_6411 8
72 uint32_t x1006_communicationCyclePeriod;
73 uint32_t x1007_synchronousWindowLength;
74 uint32_t x1012_COB_IDTimeStampObject;
77 uint8_t x1016_consumerHeartbeatTime_sub0;
78 uint32_t x1016_consumerHeartbeatTime[OD_CNT_ARR_1016];
79 uint16_t x1017_producerHeartbeatTime;
81 uint8_t highestSub_indexSupported;
87 uint8_t x1019_synchronousCounterOverflowValue;
89 uint8_t highestSub_indexSupported;
93 } x1400_RPDOCommunicationParameter;
95 uint8_t highestSub_indexSupported;
99 } x1401_RPDOCommunicationParameter;
101 uint8_t highestSub_indexSupported;
105 } x1402_RPDOCommunicationParameter;
107 uint8_t highestSub_indexSupported;
111 } x1403_RPDOCommunicationParameter;
113 uint8_t numberOfMappedApplicationObjectsInPDO;
122 } x1600_RPDOMappingParameter;
124 uint8_t numberOfMappedApplicationObjectsInPDO;
133 } x1601_RPDOMappingParameter;
135 uint8_t numberOfMappedApplicationObjectsInPDO;
144 } x1602_RPDOMappingParameter;
146 uint8_t numberOfMappedApplicationObjectsInPDO;
155 } x1603_RPDOMappingParameter;
157 uint8_t highestSub_indexSupported;
163 } x1800_TPDOCommunicationParameter;
165 uint8_t highestSub_indexSupported;
171 } x1801_TPDOCommunicationParameter;
173 uint8_t highestSub_indexSupported;
179 } x1802_TPDOCommunicationParameter;
181 uint8_t highestSub_indexSupported;
187 } x1803_TPDOCommunicationParameter;
189 uint8_t numberOfMappedApplicationObjectsInPDO;
198 } x1A00_TPDOMappingParameter;
200 uint8_t numberOfMappedApplicationObjectsInPDO;
209 } x1A01_TPDOMappingParameter;
211 uint8_t numberOfMappedApplicationObjectsInPDO;
220 } x1A02_TPDOMappingParameter;
222 uint8_t numberOfMappedApplicationObjectsInPDO;
231 } x1A03_TPDOMappingParameter;
236 uint8_t x1010_storeParameters_sub0;
237 uint32_t x1010_storeParameters[OD_CNT_ARR_1010];
238 uint8_t x1011_restoreDefaultParameters_sub0;
239 uint32_t x1011_restoreDefaultParameters[OD_CNT_ARR_1011];
241 uint8_t highestSub_indexSupported;
244 } x1200_SDOServerParameter;
245 uint8_t x2100_errorStatusBits[10];
246 uint8_t x2110_variableInt32_sub0;
247 int32_t x2110_variableInt32[OD_CNT_ARR_2110];
248 uint8_t x6000_readDigitalInput8_bit_sub0;
249 uint8_t x6000_readDigitalInput8_bit[OD_CNT_ARR_6000];
250 uint8_t x6200_writeDigitalOutput8_bit_sub0;
251 uint8_t x6200_writeDigitalOutput8_bit[OD_CNT_ARR_6200];
252 uint8_t x6401_readAnalogInput16_bit_sub0;
253 int16_t x6401_readAnalogInput16_bit[OD_CNT_ARR_6401];
254 uint8_t x6411_writeAnalogOutput16_bit_sub0;
255 int16_t x6411_writeAnalogOutput16_bit[OD_CNT_ARR_6411];
260 uint8_t x2112_variableNV_Int32AutoSave_sub0;
261 int32_t x2112_variableNV_Int32AutoSave[OD_CNT_ARR_2112];
262} OD_PERSIST_APP_AUTO_t;
265 uint8_t x2111_variableInt32Save_sub0;
266 int32_t x2111_variableInt32Save[OD_CNT_ARR_2111];
268 uint8_t highestSub_indexSupported;
276 uint8_t highestSub_indexSupported;
278 char stringLong[1001];
283#ifndef OD_ATTR_PERSIST_COMM
284#define OD_ATTR_PERSIST_COMM
286extern OD_ATTR_PERSIST_COMM OD_PERSIST_COMM_t OD_PERSIST_COMM;
291extern OD_ATTR_RAM OD_RAM_t OD_RAM;
293#ifndef OD_ATTR_PERSIST_APP_AUTO
294#define OD_ATTR_PERSIST_APP_AUTO
296extern OD_ATTR_PERSIST_APP_AUTO OD_PERSIST_APP_AUTO_t OD_PERSIST_APP_AUTO;
298#ifndef OD_ATTR_PERSIST_APP
299#define OD_ATTR_PERSIST_APP
301extern OD_ATTR_PERSIST_APP OD_PERSIST_APP_t OD_PERSIST_APP;
306extern OD_ATTR_OD
OD_t *OD;
312#define OD_ENTRY_H1000 &OD->list[0]
313#define OD_ENTRY_H1001 &OD->list[1]
314#define OD_ENTRY_H1003 &OD->list[2]
315#define OD_ENTRY_H1005 &OD->list[3]
316#define OD_ENTRY_H1006 &OD->list[4]
317#define OD_ENTRY_H1007 &OD->list[5]
318#define OD_ENTRY_H1008 &OD->list[6]
319#define OD_ENTRY_H1009 &OD->list[7]
320#define OD_ENTRY_H100A &OD->list[8]
321#define OD_ENTRY_H1010 &OD->list[9]
322#define OD_ENTRY_H1011 &OD->list[10]
323#define OD_ENTRY_H1012 &OD->list[11]
324#define OD_ENTRY_H1014 &OD->list[12]
325#define OD_ENTRY_H1015 &OD->list[13]
326#define OD_ENTRY_H1016 &OD->list[14]
327#define OD_ENTRY_H1017 &OD->list[15]
328#define OD_ENTRY_H1018 &OD->list[16]
329#define OD_ENTRY_H1019 &OD->list[17]
330#define OD_ENTRY_H1200 &OD->list[18]
331#define OD_ENTRY_H1400 &OD->list[19]
332#define OD_ENTRY_H1401 &OD->list[20]
333#define OD_ENTRY_H1402 &OD->list[21]
334#define OD_ENTRY_H1403 &OD->list[22]
335#define OD_ENTRY_H1600 &OD->list[23]
336#define OD_ENTRY_H1601 &OD->list[24]
337#define OD_ENTRY_H1602 &OD->list[25]
338#define OD_ENTRY_H1603 &OD->list[26]
339#define OD_ENTRY_H1800 &OD->list[27]
340#define OD_ENTRY_H1801 &OD->list[28]
341#define OD_ENTRY_H1802 &OD->list[29]
342#define OD_ENTRY_H1803 &OD->list[30]
343#define OD_ENTRY_H1A00 &OD->list[31]
344#define OD_ENTRY_H1A01 &OD->list[32]
345#define OD_ENTRY_H1A02 &OD->list[33]
346#define OD_ENTRY_H1A03 &OD->list[34]
347#define OD_ENTRY_H2100 &OD->list[35]
348#define OD_ENTRY_H2106 &OD->list[36]
349#define OD_ENTRY_H2110 &OD->list[37]
350#define OD_ENTRY_H2111 &OD->list[38]
351#define OD_ENTRY_H2112 &OD->list[39]
352#define OD_ENTRY_H2120 &OD->list[40]
353#define OD_ENTRY_H2121 &OD->list[41]
354#define OD_ENTRY_H2122 &OD->list[42]
355#define OD_ENTRY_H6000 &OD->list[43]
356#define OD_ENTRY_H6200 &OD->list[44]
357#define OD_ENTRY_H6401 &OD->list[45]
358#define OD_ENTRY_H6411 &OD->list[46]
364#define OD_ENTRY_H1000_deviceType &OD->list[0]
365#define OD_ENTRY_H1001_errorRegister &OD->list[1]
366#define OD_ENTRY_H1003_pre_definedErrorField &OD->list[2]
367#define OD_ENTRY_H1005_COB_ID_SYNCMessage &OD->list[3]
368#define OD_ENTRY_H1006_communicationCyclePeriod &OD->list[4]
369#define OD_ENTRY_H1007_synchronousWindowLength &OD->list[5]
370#define OD_ENTRY_H1008_manufacturerDeviceName &OD->list[6]
371#define OD_ENTRY_H1009_manufacturerHardwareVersion &OD->list[7]
372#define OD_ENTRY_H100A_manufacturerSoftwareVersion &OD->list[8]
373#define OD_ENTRY_H1010_storeParameters &OD->list[9]
374#define OD_ENTRY_H1011_restoreDefaultParameters &OD->list[10]
375#define OD_ENTRY_H1012_COB_IDTimeStampObject &OD->list[11]
376#define OD_ENTRY_H1014_COB_ID_EMCY &OD->list[12]
377#define OD_ENTRY_H1015_inhibitTimeEMCY &OD->list[13]
378#define OD_ENTRY_H1016_consumerHeartbeatTime &OD->list[14]
379#define OD_ENTRY_H1017_producerHeartbeatTime &OD->list[15]
380#define OD_ENTRY_H1018_identity &OD->list[16]
381#define OD_ENTRY_H1019_synchronousCounterOverflowValue &OD->list[17]
382#define OD_ENTRY_H1200_SDOServerParameter &OD->list[18]
383#define OD_ENTRY_H1400_RPDOCommunicationParameter &OD->list[19]
384#define OD_ENTRY_H1401_RPDOCommunicationParameter &OD->list[20]
385#define OD_ENTRY_H1402_RPDOCommunicationParameter &OD->list[21]
386#define OD_ENTRY_H1403_RPDOCommunicationParameter &OD->list[22]
387#define OD_ENTRY_H1600_RPDOMappingParameter &OD->list[23]
388#define OD_ENTRY_H1601_RPDOMappingParameter &OD->list[24]
389#define OD_ENTRY_H1602_RPDOMappingParameter &OD->list[25]
390#define OD_ENTRY_H1603_RPDOMappingParameter &OD->list[26]
391#define OD_ENTRY_H1800_TPDOCommunicationParameter &OD->list[27]
392#define OD_ENTRY_H1801_TPDOCommunicationParameter &OD->list[28]
393#define OD_ENTRY_H1802_TPDOCommunicationParameter &OD->list[29]
394#define OD_ENTRY_H1803_TPDOCommunicationParameter &OD->list[30]
395#define OD_ENTRY_H1A00_TPDOMappingParameter &OD->list[31]
396#define OD_ENTRY_H1A01_TPDOMappingParameter &OD->list[32]
397#define OD_ENTRY_H1A02_TPDOMappingParameter &OD->list[33]
398#define OD_ENTRY_H1A03_TPDOMappingParameter &OD->list[34]
399#define OD_ENTRY_H2100_errorStatusBits &OD->list[35]
400#define OD_ENTRY_H2106_power_onCounter &OD->list[36]
401#define OD_ENTRY_H2110_variableInt32 &OD->list[37]
402#define OD_ENTRY_H2111_variableInt32Save &OD->list[38]
403#define OD_ENTRY_H2112_variableNV_Int32AutoSave &OD->list[39]
404#define OD_ENTRY_H2120_demoRecord &OD->list[40]
405#define OD_ENTRY_H2121_demoStrings &OD->list[41]
406#define OD_ENTRY_H2122_demoDomain &OD->list[42]
407#define OD_ENTRY_H6000_readDigitalInput8_bit &OD->list[43]
408#define OD_ENTRY_H6200_writeDigitalOutput8_bit &OD->list[44]
409#define OD_ENTRY_H6401_readAnalogInput16_bit &OD->list[45]
410#define OD_ENTRY_H6411_writeAnalogOutput16_bit &OD->list[46]
417#define OD_INIT_CONFIG(config) {\
418 (config).CNT_NMT = OD_CNT_NMT;\
419 (config).ENTRY_H1017 = OD_ENTRY_H1017;\
420 (config).CNT_HB_CONS = OD_CNT_HB_CONS;\
421 (config).CNT_ARR_1016 = OD_CNT_ARR_1016;\
422 (config).ENTRY_H1016 = OD_ENTRY_H1016;\
423 (config).CNT_EM = OD_CNT_EM;\
424 (config).ENTRY_H1001 = OD_ENTRY_H1001;\
425 (config).ENTRY_H1014 = OD_ENTRY_H1014;\
426 (config).ENTRY_H1015 = OD_ENTRY_H1015;\
427 (config).CNT_ARR_1003 = OD_CNT_ARR_1003;\
428 (config).ENTRY_H1003 = OD_ENTRY_H1003;\
429 (config).CNT_SDO_SRV = OD_CNT_SDO_SRV;\
430 (config).ENTRY_H1200 = OD_ENTRY_H1200;\
431 (config).CNT_SDO_CLI = 0;\
432 (config).ENTRY_H1280 = OD_ENTRY_H1280;\
433 (config).CNT_TIME = OD_CNT_TIME;\
434 (config).ENTRY_H1012 = OD_ENTRY_H1012;\
435 (config).CNT_SYNC = OD_CNT_SYNC;\
436 (config).ENTRY_H1005 = OD_ENTRY_H1005;\
437 (config).ENTRY_H1006 = OD_ENTRY_H1006;\
438 (config).ENTRY_H1007 = OD_ENTRY_H1007;\
439 (config).ENTRY_H1019 = OD_ENTRY_H1019;\
440 (config).CNT_RPDO = OD_CNT_RPDO;\
441 (config).ENTRY_H1400 = OD_ENTRY_H1400;\
442 (config).ENTRY_H1600 = OD_ENTRY_H1600;\
443 (config).CNT_TPDO = OD_CNT_TPDO;\
444 (config).ENTRY_H1800 = OD_ENTRY_H1800;\
445 (config).ENTRY_H1A00 = OD_ENTRY_H1A00;\
446 (config).CNT_LEDS = 0;\
447 (config).CNT_GFC = 0;\
448 (config).ENTRY_H1300 = NULL;\
449 (config).CNT_SRDO = 0;\
450 (config).ENTRY_H1301 = NULL;\
451 (config).ENTRY_H1381 = NULL;\
452 (config).ENTRY_H13FE = NULL;\
453 (config).ENTRY_H13FF = NULL;\
454 (config).CNT_LSS_SLV = 0;\
455 (config).CNT_LSS_MST = 0;\
456 (config).CNT_GTWA = 0;\
457 (config).CNT_TRACE = 0;\
unsigned long int uint32_t
signed long long int int64_t
unsigned long long int uint64_t