-
Notifications
You must be signed in to change notification settings - Fork 580
/
CO_OD.h
676 lines (536 loc) · 26.8 KB
/
CO_OD.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
/*
* Copyright (c) 2019 Vestas Wind Systems A/S
*
* SPDX-License-Identifier: Apache-2.0
*/
/*******************************************************************************
File - CO_OD.c/CO_OD.h
CANopen Object Dictionary.
This file was automatically generated with libedssharp Object
Dictionary Editor v0.8-7-g2e53bbc DON'T EDIT THIS FILE MANUALLY !!!!
*******************************************************************************/
#ifndef CO_OD_H_
#define CO_OD_H_
/*******************************************************************************
CANopen DATA TYPES
*******************************************************************************/
typedef bool_t BOOLEAN;
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;
#ifdef DOMAIN
#undef DOMAIN
#endif
typedef domain_t DOMAIN;
#ifndef timeOfDay_t
typedef union {
unsigned long long ullValue;
struct {
unsigned long ms : 28;
unsigned reserved : 4;
unsigned days : 16;
unsigned reserved2 : 16;
};
} timeOfDay_t;
#endif
typedef timeOfDay_t TIME_OF_DAY;
typedef timeOfDay_t TIME_DIFFERENCE;
/*******************************************************************************
FILE INFO:
FileName: objdict.eds
FileVersion: 1
CreationTime: 2:52PM
CreationDate: 09-18-2019
CreatedBy:
******************************************************************************/
/*******************************************************************************
DEVICE INFO:
VendorName:
VendorNumber 0
ProductName: Zephyr RTOS CANopen sample
ProductNumber: 0
******************************************************************************/
/*******************************************************************************
FEATURES
*******************************************************************************/
#define CO_NO_SYNC 1 /* Associated objects: 1005-1007 */
#define CO_NO_EMERGENCY 1 /* Associated objects: 1014, 1015 */
#define CO_NO_TIME 1 /* Associated objects: 1012, 1013 */
#define CO_NO_SDO_SERVER 1 /* Associated objects: 1200-127F */
#define CO_NO_SDO_CLIENT 0 /* Associated objects: 1280-12FF */
#define CO_NO_LSS_SERVER 0 /* LSS Slave */
#define CO_NO_LSS_CLIENT 0 /* LSS Master */
#define CO_NO_RPDO 4 /* Associated objects: 14xx, 16xx */
#define CO_NO_TPDO 4 /* Associated objects: 18xx, 1Axx */
#define CO_NO_NMT_MASTER 0
/*******************************************************************************
OBJECT DICTIONARY
*******************************************************************************/
#define CO_OD_NoOfElements 45
/*******************************************************************************
TYPE DEFINITIONS FOR RECORDS
*******************************************************************************/
/*1018 */ typedef struct {
UNSIGNED8 maxSubIndex;
UNSIGNED32 vendorID;
UNSIGNED32 productCode;
UNSIGNED32 revisionNumber;
UNSIGNED32 serialNumber;
} OD_identity_t;
/*1200 */ typedef struct {
UNSIGNED8 maxSubIndex;
UNSIGNED32 COB_IDClientToServer;
UNSIGNED32 COB_IDServerToClient;
} OD_SDOServerParameter_t;
/*1280 */ typedef struct {
UNSIGNED8 maxSubIndex;
UNSIGNED32 COB_IDClientToServer;
UNSIGNED32 COB_IDServerToClient;
UNSIGNED8 nodeIDOfTheSDOServer;
} OD_SDOClientParameter_t;
/*1400 */ typedef struct {
UNSIGNED8 maxSubIndex;
UNSIGNED32 COB_IDUsedByRPDO;
UNSIGNED8 transmissionType;
} OD_RPDOCommunicationParameter_t;
/*1600 */ typedef struct {
UNSIGNED8 numberOfMappedObjects;
UNSIGNED32 mappedObject1;
UNSIGNED32 mappedObject2;
UNSIGNED32 mappedObject3;
UNSIGNED32 mappedObject4;
UNSIGNED32 mappedObject5;
UNSIGNED32 mappedObject6;
UNSIGNED32 mappedObject7;
UNSIGNED32 mappedObject8;
} OD_RPDOMappingParameter_t;
/*1800 */ typedef struct {
UNSIGNED8 maxSubIndex;
UNSIGNED32 COB_IDUsedByTPDO;
UNSIGNED8 transmissionType;
UNSIGNED16 inhibitTime;
UNSIGNED8 compatibilityEntry;
UNSIGNED16 eventTimer;
UNSIGNED8 SYNCStartValue;
} OD_TPDOCommunicationParameter_t;
/*1a00 */ typedef struct {
UNSIGNED8 numberOfMappedObjects;
UNSIGNED32 mappedObject1;
UNSIGNED32 mappedObject2;
UNSIGNED32 mappedObject3;
UNSIGNED32 mappedObject4;
UNSIGNED32 mappedObject5;
UNSIGNED32 mappedObject6;
UNSIGNED32 mappedObject7;
UNSIGNED32 mappedObject8;
} OD_TPDOMappingParameter_t;
/*******************************************************************************
TYPE DEFINITIONS FOR OBJECT DICTIONARY INDEXES
some of those are redundant with CO_SDO.h CO_ObjDicId_t <Common CiA301 object
dictionary entries>
*******************************************************************************/
/*1000 */
#define OD_1000_deviceType 0x1000
/*1001 */
#define OD_1001_errorRegister 0x1001
/*1002 */
#define OD_1002_manufacturerStatusRegister 0x1002
/*1003 */
#define OD_1003_preDefinedErrorField 0x1003
#define OD_1003_0_preDefinedErrorField_maxSubIndex 0
#define OD_1003_1_preDefinedErrorField_standardErrorField 1
#define OD_1003_2_preDefinedErrorField_standardErrorField 2
#define OD_1003_3_preDefinedErrorField_standardErrorField 3
#define OD_1003_4_preDefinedErrorField_standardErrorField 4
#define OD_1003_5_preDefinedErrorField_standardErrorField 5
#define OD_1003_6_preDefinedErrorField_standardErrorField 6
#define OD_1003_7_preDefinedErrorField_standardErrorField 7
#define OD_1003_8_preDefinedErrorField_standardErrorField 8
/*1005 */
#define OD_1005_COB_ID_SYNCMessage 0x1005
/*1006 */
#define OD_1006_communicationCyclePeriod 0x1006
/*1007 */
#define OD_1007_synchronousWindowLength 0x1007
/*1008 */
#define OD_1008_manufacturerDeviceName 0x1008
/*1009 */
#define OD_1009_manufacturerHardwareVersion 0x1009
/*100a */
#define OD_100a_manufacturerSoftwareVersion 0x100a
/*1010 */
#define OD_1010_storeParameters 0x1010
#define OD_1010_0_storeParameters_maxSubIndex 0
#define OD_1010_1_storeParameters_saveAllParameters 1
/*1011 */
#define OD_1011_restoreDefaultParameters 0x1011
#define OD_1011_0_restoreDefaultParameters_maxSubIndex 0
#define OD_1011_1_restoreDefaultParameters_restoreAllDefaultParameters 1
/*1012 */
#define OD_1012_COB_ID_TIME 0x1012
/*1014 */
#define OD_1014_COB_ID_EMCY 0x1014
/*1015 */
#define OD_1015_inhibitTimeEMCY 0x1015
/*1016 */
#define OD_1016_consumerHeartbeatTime 0x1016
#define OD_1016_0_consumerHeartbeatTime_maxSubIndex 0
#define OD_1016_1_consumerHeartbeatTime_consumerHeartbeatTime 1
#define OD_1016_2_consumerHeartbeatTime_consumerHeartbeatTime 2
#define OD_1016_3_consumerHeartbeatTime_consumerHeartbeatTime 3
#define OD_1016_4_consumerHeartbeatTime_consumerHeartbeatTime 4
/*1017 */
#define OD_1017_producerHeartbeatTime 0x1017
/*1018 */
#define OD_1018_identity 0x1018
#define OD_1018_0_identity_maxSubIndex 0
#define OD_1018_1_identity_vendorID 1
#define OD_1018_2_identity_productCode 2
#define OD_1018_3_identity_revisionNumber 3
#define OD_1018_4_identity_serialNumber 4
/*1019 */
#define OD_1019_synchronousCounterOverflowValue 0x1019
/*1029 */
#define OD_1029_errorBehavior 0x1029
#define OD_1029_0_errorBehavior_maxSubIndex 0
#define OD_1029_1_errorBehavior_communication 1
#define OD_1029_2_errorBehavior_communicationOther 2
#define OD_1029_3_errorBehavior_communicationPassive 3
#define OD_1029_4_errorBehavior_generic 4
#define OD_1029_5_errorBehavior_deviceProfile 5
#define OD_1029_6_errorBehavior_manufacturerSpecific 6
/*1200 */
#define OD_1200_SDOServerParameter 0x1200
#define OD_1200_0_SDOServerParameter_maxSubIndex 0
#define OD_1200_1_SDOServerParameter_COB_IDClientToServer 1
#define OD_1200_2_SDOServerParameter_COB_IDServerToClient 2
/*1400 */
#define OD_1400_RPDOCommunicationParameter 0x1400
#define OD_1400_0_RPDOCommunicationParameter_maxSubIndex 0
#define OD_1400_1_RPDOCommunicationParameter_COB_IDUsedByRPDO 1
#define OD_1400_2_RPDOCommunicationParameter_transmissionType 2
/*1401 */
#define OD_1401_RPDOCommunicationParameter 0x1401
#define OD_1401_0_RPDOCommunicationParameter_maxSubIndex 0
#define OD_1401_1_RPDOCommunicationParameter_COB_IDUsedByRPDO 1
#define OD_1401_2_RPDOCommunicationParameter_transmissionType 2
/*1402 */
#define OD_1402_RPDOCommunicationParameter 0x1402
#define OD_1402_0_RPDOCommunicationParameter_maxSubIndex 0
#define OD_1402_1_RPDOCommunicationParameter_COB_IDUsedByRPDO 1
#define OD_1402_2_RPDOCommunicationParameter_transmissionType 2
/*1403 */
#define OD_1403_RPDOCommunicationParameter 0x1403
#define OD_1403_0_RPDOCommunicationParameter_maxSubIndex 0
#define OD_1403_1_RPDOCommunicationParameter_COB_IDUsedByRPDO 1
#define OD_1403_2_RPDOCommunicationParameter_transmissionType 2
/*1600 */
#define OD_1600_RPDOMappingParameter 0x1600
#define OD_1600_0_RPDOMappingParameter_maxSubIndex 0
#define OD_1600_1_RPDOMappingParameter_mappedObject1 1
#define OD_1600_2_RPDOMappingParameter_mappedObject2 2
#define OD_1600_3_RPDOMappingParameter_mappedObject3 3
#define OD_1600_4_RPDOMappingParameter_mappedObject4 4
#define OD_1600_5_RPDOMappingParameter_mappedObject5 5
#define OD_1600_6_RPDOMappingParameter_mappedObject6 6
#define OD_1600_7_RPDOMappingParameter_mappedObject7 7
#define OD_1600_8_RPDOMappingParameter_mappedObject8 8
/*1601 */
#define OD_1601_RPDOMappingParameter 0x1601
#define OD_1601_0_RPDOMappingParameter_maxSubIndex 0
#define OD_1601_1_RPDOMappingParameter_mappedObject1 1
#define OD_1601_2_RPDOMappingParameter_mappedObject2 2
#define OD_1601_3_RPDOMappingParameter_mappedObject3 3
#define OD_1601_4_RPDOMappingParameter_mappedObject4 4
#define OD_1601_5_RPDOMappingParameter_mappedObject5 5
#define OD_1601_6_RPDOMappingParameter_mappedObject6 6
#define OD_1601_7_RPDOMappingParameter_mappedObject7 7
#define OD_1601_8_RPDOMappingParameter_mappedObject8 8
/*1602 */
#define OD_1602_RPDOMappingParameter 0x1602
#define OD_1602_0_RPDOMappingParameter_maxSubIndex 0
#define OD_1602_1_RPDOMappingParameter_mappedObject1 1
#define OD_1602_2_RPDOMappingParameter_mappedObject2 2
#define OD_1602_3_RPDOMappingParameter_mappedObject3 3
#define OD_1602_4_RPDOMappingParameter_mappedObject4 4
#define OD_1602_5_RPDOMappingParameter_mappedObject5 5
#define OD_1602_6_RPDOMappingParameter_mappedObject6 6
#define OD_1602_7_RPDOMappingParameter_mappedObject7 7
#define OD_1602_8_RPDOMappingParameter_mappedObject8 8
/*1603 */
#define OD_1603_RPDOMappingParameter 0x1603
#define OD_1603_0_RPDOMappingParameter_maxSubIndex 0
#define OD_1603_1_RPDOMappingParameter_mappedObject1 1
#define OD_1603_2_RPDOMappingParameter_mappedObject2 2
#define OD_1603_3_RPDOMappingParameter_mappedObject3 3
#define OD_1603_4_RPDOMappingParameter_mappedObject4 4
#define OD_1603_5_RPDOMappingParameter_mappedObject5 5
#define OD_1603_6_RPDOMappingParameter_mappedObject6 6
#define OD_1603_7_RPDOMappingParameter_mappedObject7 7
#define OD_1603_8_RPDOMappingParameter_mappedObject8 8
/*1800 */
#define OD_1800_TPDOCommunicationParameter 0x1800
#define OD_1800_0_TPDOCommunicationParameter_maxSubIndex 0
#define OD_1800_1_TPDOCommunicationParameter_COB_IDUsedByTPDO 1
#define OD_1800_2_TPDOCommunicationParameter_transmissionType 2
#define OD_1800_3_TPDOCommunicationParameter_inhibitTime 3
#define OD_1800_4_TPDOCommunicationParameter_compatibilityEntry 4
#define OD_1800_5_TPDOCommunicationParameter_eventTimer 5
#define OD_1800_6_TPDOCommunicationParameter_SYNCStartValue 6
/*1801 */
#define OD_1801_TPDOCommunicationParameter 0x1801
#define OD_1801_0_TPDOCommunicationParameter_maxSubIndex 0
#define OD_1801_1_TPDOCommunicationParameter_COB_IDUsedByTPDO 1
#define OD_1801_2_TPDOCommunicationParameter_transmissionType 2
#define OD_1801_3_TPDOCommunicationParameter_inhibitTime 3
#define OD_1801_4_TPDOCommunicationParameter_compatibilityEntry 4
#define OD_1801_5_TPDOCommunicationParameter_eventTimer 5
#define OD_1801_6_TPDOCommunicationParameter_SYNCStartValue 6
/*1802 */
#define OD_1802_TPDOCommunicationParameter 0x1802
#define OD_1802_0_TPDOCommunicationParameter_maxSubIndex 0
#define OD_1802_1_TPDOCommunicationParameter_COB_IDUsedByTPDO 1
#define OD_1802_2_TPDOCommunicationParameter_transmissionType 2
#define OD_1802_3_TPDOCommunicationParameter_inhibitTime 3
#define OD_1802_4_TPDOCommunicationParameter_compatibilityEntry 4
#define OD_1802_5_TPDOCommunicationParameter_eventTimer 5
#define OD_1802_6_TPDOCommunicationParameter_SYNCStartValue 6
/*1803 */
#define OD_1803_TPDOCommunicationParameter 0x1803
#define OD_1803_0_TPDOCommunicationParameter_maxSubIndex 0
#define OD_1803_1_TPDOCommunicationParameter_COB_IDUsedByTPDO 1
#define OD_1803_2_TPDOCommunicationParameter_transmissionType 2
#define OD_1803_3_TPDOCommunicationParameter_inhibitTime 3
#define OD_1803_4_TPDOCommunicationParameter_compatibilityEntry 4
#define OD_1803_5_TPDOCommunicationParameter_eventTimer 5
#define OD_1803_6_TPDOCommunicationParameter_SYNCStartValue 6
/*1a00 */
#define OD_1a00_TPDOMappingParameter 0x1a00
#define OD_1a00_0_TPDOMappingParameter_maxSubIndex 0
#define OD_1a00_1_TPDOMappingParameter_mappedObject1 1
#define OD_1a00_2_TPDOMappingParameter_mappedObject2 2
#define OD_1a00_3_TPDOMappingParameter_mappedObject3 3
#define OD_1a00_4_TPDOMappingParameter_mappedObject4 4
#define OD_1a00_5_TPDOMappingParameter_mappedObject5 5
#define OD_1a00_6_TPDOMappingParameter_mappedObject6 6
#define OD_1a00_7_TPDOMappingParameter_mappedObject7 7
#define OD_1a00_8_TPDOMappingParameter_mappedObject8 8
/*1a01 */
#define OD_1a01_TPDOMappingParameter 0x1a01
#define OD_1a01_0_TPDOMappingParameter_maxSubIndex 0
#define OD_1a01_1_TPDOMappingParameter_mappedObject1 1
#define OD_1a01_2_TPDOMappingParameter_mappedObject2 2
#define OD_1a01_3_TPDOMappingParameter_mappedObject3 3
#define OD_1a01_4_TPDOMappingParameter_mappedObject4 4
#define OD_1a01_5_TPDOMappingParameter_mappedObject5 5
#define OD_1a01_6_TPDOMappingParameter_mappedObject6 6
#define OD_1a01_7_TPDOMappingParameter_mappedObject7 7
#define OD_1a01_8_TPDOMappingParameter_mappedObject8 8
/*1a02 */
#define OD_1a02_TPDOMappingParameter 0x1a02
#define OD_1a02_0_TPDOMappingParameter_maxSubIndex 0
#define OD_1a02_1_TPDOMappingParameter_mappedObject1 1
#define OD_1a02_2_TPDOMappingParameter_mappedObject2 2
#define OD_1a02_3_TPDOMappingParameter_mappedObject3 3
#define OD_1a02_4_TPDOMappingParameter_mappedObject4 4
#define OD_1a02_5_TPDOMappingParameter_mappedObject5 5
#define OD_1a02_6_TPDOMappingParameter_mappedObject6 6
#define OD_1a02_7_TPDOMappingParameter_mappedObject7 7
#define OD_1a02_8_TPDOMappingParameter_mappedObject8 8
/*1a03 */
#define OD_1a03_TPDOMappingParameter 0x1a03
#define OD_1a03_0_TPDOMappingParameter_maxSubIndex 0
#define OD_1a03_1_TPDOMappingParameter_mappedObject1 1
#define OD_1a03_2_TPDOMappingParameter_mappedObject2 2
#define OD_1a03_3_TPDOMappingParameter_mappedObject3 3
#define OD_1a03_4_TPDOMappingParameter_mappedObject4 4
#define OD_1a03_5_TPDOMappingParameter_mappedObject5 5
#define OD_1a03_6_TPDOMappingParameter_mappedObject6 6
#define OD_1a03_7_TPDOMappingParameter_mappedObject7 7
#define OD_1a03_8_TPDOMappingParameter_mappedObject8 8
/*1f50 */
#define OD_1f50_programData 0x1f50
#define OD_1f50_0_programData_maxSubIndex 0
#define OD_1f50_1_programData_ 1
/*1f51 */
#define OD_1f51_programControl 0x1f51
#define OD_1f51_0_programControl_maxSubIndex 0
#define OD_1f51_1_programControl_ 1
/*1f56 */
#define OD_1f56_programSoftwareIdentification 0x1f56
#define OD_1f56_0_programSoftwareIdentification_maxSubIndex 0
#define OD_1f56_1_programSoftwareIdentification_ 1
/*1f57 */
#define OD_1f57_flashStatusIdentification 0x1f57
#define OD_1f57_0_flashStatusIdentification_maxSubIndex 0
#define OD_1f57_1_flashStatusIdentification_ 1
/*1f80 */
#define OD_1f80_NMTStartup 0x1f80
/*2100 */
#define OD_2100_errorStatusBits 0x2100
/*2101 */
#define OD_2101_powerOnCounter 0x2101
/*2102 */
#define OD_2102_buttonPressCounter 0x2102
/*******************************************************************************
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 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[23];
/*1009 */ VISIBLE_STRING manufacturerHardwareVersion[4];
/*100a */ VISIBLE_STRING manufacturerSoftwareVersion[4];
/*1012 */ UNSIGNED32 COB_ID_TIME;
/*1014 */ UNSIGNED32 COB_ID_EMCY;
/*1015 */ UNSIGNED16 inhibitTimeEMCY;
/*1016 */ UNSIGNED32 consumerHeartbeatTime[4];
/*1017 */ UNSIGNED16 producerHeartbeatTime;
/*1018 */ OD_identity_t identity;
/*1019 */ UNSIGNED8 synchronousCounterOverflowValue;
/*1029 */ UNSIGNED8 errorBehavior[6];
/*1200 */ OD_SDOServerParameter_t SDOServerParameter[1];
/*1400 */ OD_RPDOCommunicationParameter_t RPDOCommunicationParameter[4];
/*1600 */ OD_RPDOMappingParameter_t RPDOMappingParameter[4];
/*1800 */ OD_TPDOCommunicationParameter_t TPDOCommunicationParameter[4];
/*1a00 */ OD_TPDOMappingParameter_t TPDOMappingParameter[4];
/*1f80 */ UNSIGNED32 NMTStartup;
UNSIGNED32 LastWord;
};
/***** 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];
/*1f50 */ DOMAIN programData[1];
/*1f51 */ UNSIGNED8 programControl[1];
/*1f56 */ UNSIGNED32 programSoftwareIdentification[1];
/*1f57 */ UNSIGNED32 flashStatusIdentification[1];
/*2100 */ OCTET_STRING errorStatusBits[10];
/*2102 */ UNSIGNED32 buttonPressCounter;
UNSIGNED32 LastWord;
};
/***** Structure for EEPROM variables ********************************************/
struct sCO_OD_EEPROM {
UNSIGNED32 FirstWord;
/*2101 */ UNSIGNED32 powerOnCounter;
UNSIGNED32 LastWord;
};
/***** Declaration of Object Dictionary variables *****************************/
extern struct sCO_OD_ROM CO_OD_ROM;
extern struct sCO_OD_RAM CO_OD_RAM;
extern struct sCO_OD_EEPROM CO_OD_EEPROM;
/*******************************************************************************
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
#define ODA_preDefinedErrorField_standardErrorField 0
/*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 */
#define OD_manufacturerDeviceName CO_OD_ROM.manufacturerDeviceName
#define ODL_manufacturerDeviceName_stringLength 23
/*1009, Data Type: VISIBLE_STRING */
#define OD_manufacturerHardwareVersion CO_OD_ROM.manufacturerHardwareVersion
#define ODL_manufacturerHardwareVersion_stringLength 4
/*100a, Data Type: VISIBLE_STRING */
#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
/*1012, Data Type: UNSIGNED32 */
#define OD_COB_ID_TIME CO_OD_ROM.COB_ID_TIME
/*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[4] */
#define OD_consumerHeartbeatTime CO_OD_ROM.consumerHeartbeatTime
#define ODL_consumerHeartbeatTime_arrayLength 4
#define ODA_consumerHeartbeatTime_consumerHeartbeatTime 0
/*1017, Data Type: UNSIGNED16 */
#define OD_producerHeartbeatTime CO_OD_ROM.producerHeartbeatTime
/*1018, Data Type: 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[6] */
#define OD_errorBehavior CO_OD_ROM.errorBehavior
#define ODL_errorBehavior_arrayLength 6
#define ODA_errorBehavior_communication 0
#define ODA_errorBehavior_communicationOther 1
#define ODA_errorBehavior_communicationPassive 2
#define ODA_errorBehavior_generic 3
#define ODA_errorBehavior_deviceProfile 4
#define ODA_errorBehavior_manufacturerSpecific 5
/*1200, Data Type: SDOServerParameter_t */
#define OD_SDOServerParameter CO_OD_ROM.SDOServerParameter
/*1400, Data Type: RPDOCommunicationParameter_t */
#define OD_RPDOCommunicationParameter CO_OD_ROM.RPDOCommunicationParameter
/*1600, Data Type: RPDOMappingParameter_t */
#define OD_RPDOMappingParameter CO_OD_ROM.RPDOMappingParameter
/*1800, Data Type: TPDOCommunicationParameter_t */
#define OD_TPDOCommunicationParameter CO_OD_ROM.TPDOCommunicationParameter
/*1a00, Data Type: TPDOMappingParameter_t */
#define OD_TPDOMappingParameter CO_OD_ROM.TPDOMappingParameter
/*1f50, Data Type: DOMAIN, Array[1] */
#define OD_programData CO_OD_RAM.programData
#define ODL_programData_arrayLength 1
#define ODA_programData_ 0
/*1f51, Data Type: UNSIGNED8, Array[1] */
#define OD_programControl CO_OD_RAM.programControl
#define ODL_programControl_arrayLength 1
#define ODA_programControl_ 0
/*1f56, Data Type: UNSIGNED32, Array[1] */
#define OD_programSoftwareIdentification CO_OD_RAM.programSoftwareIdentification
#define ODL_programSoftwareIdentification_arrayLength 1
#define ODA_programSoftwareIdentification_ 0
/*1f57, Data Type: UNSIGNED32, Array[1] */
#define OD_flashStatusIdentification CO_OD_RAM.flashStatusIdentification
#define ODL_flashStatusIdentification_arrayLength 1
#define ODA_flashStatusIdentification_ 0
/*1f80, Data Type: UNSIGNED32 */
#define OD_NMTStartup CO_OD_ROM.NMTStartup
/*2100, Data Type: OCTET_STRING */
#define OD_errorStatusBits CO_OD_RAM.errorStatusBits
#define ODL_errorStatusBits_stringLength 10
/*2101, Data Type: UNSIGNED32 */
#define OD_powerOnCounter CO_OD_EEPROM.powerOnCounter
/*2102, Data Type: UNSIGNED32 */
#define OD_buttonPressCounter CO_OD_RAM.buttonPressCounter
#endif