61 // OBJECT DICTIONARY |
61 // OBJECT DICTIONARY |
62 // |
62 // |
63 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ |
63 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ |
64 |
64 |
65 /* index 0x1000 : Device Type. */ |
65 /* index 0x1000 : Device Type. */ |
66 UNS32 TestMaster_obj1000 = 0x12D; |
66 UNS32 TestMaster_obj1000 = 0x12D; // 301 |
67 subindex TestMaster_Index1000[] = |
67 subindex TestMaster_Index1000[] = |
68 { |
68 { |
69 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1000 } |
69 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1000 } |
70 }; |
70 }; |
71 |
71 |
72 /* index 0x1001 : Error Register. */ |
72 /* index 0x1001 : Error Register. */ |
73 UNS8 TestMaster_obj1001 = 0x0; |
73 UNS8 TestMaster_obj1001 = 0x0; // 0 |
74 subindex TestMaster_Index1001[] = |
74 subindex TestMaster_Index1001[] = |
75 { |
75 { |
76 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 } |
76 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 } |
77 }; |
77 }; |
78 |
78 |
79 /* index 0x1005 : SYNC COB ID. */ |
79 /* index 0x1005 : SYNC COB ID. */ |
80 UNS32 TestMaster_obj1005 = 0x40000080; |
80 UNS32 TestMaster_obj1005 = 0x40000080; // 1073741952 |
81 ODCallback_t TestMaster_Index1005_callbacks[] = |
81 ODCallback_t TestMaster_Index1005_callbacks[] = |
82 { |
82 { |
83 NULL, |
83 NULL, |
84 }; |
84 }; |
85 subindex TestMaster_Index1005[] = |
85 subindex TestMaster_Index1005[] = |
86 { |
86 { |
87 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1005 } |
87 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1005 } |
88 }; |
88 }; |
89 |
89 |
90 /* index 0x1006 : Communication / Cycle Period. */ |
90 /* index 0x1006 : Communication / Cycle Period. */ |
91 UNS32 TestMaster_obj1006 = 0xC350; |
91 UNS32 TestMaster_obj1006 = 0xC350; // 50000 |
92 ODCallback_t TestMaster_Index1006_callbacks[] = |
92 ODCallback_t TestMaster_Index1006_callbacks[] = |
93 { |
93 { |
94 NULL, |
94 NULL, |
95 }; |
95 }; |
96 subindex TestMaster_Index1006[] = |
96 subindex TestMaster_Index1006[] = |
97 { |
97 { |
98 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 } |
98 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 } |
|
99 }; |
|
100 |
|
101 /* index 0x1010 : Store parameters. */ |
|
102 UNS8 TestMaster_highestSubIndex_obj1010 = 4; // number of subindex - 1 |
|
103 UNS32 TestMaster_obj1010_Save_All_Parameters = 0x0; // 0 |
|
104 UNS32 TestMaster_obj1010_Save_Communication_Parameters = 0x0; // 0 |
|
105 UNS32 TestMaster_obj1010_Save_Application_Parameters = 0x0; // 0 |
|
106 UNS32 TestMaster_obj1010_Save_Manufacturer_Parameters = 0x0; // 0 |
|
107 ODCallback_t TestMaster_Index1010_callbacks[] = |
|
108 { |
|
109 NULL, |
|
110 NULL, |
|
111 NULL, |
|
112 NULL, |
|
113 NULL, |
|
114 }; |
|
115 subindex TestMaster_Index1010[] = |
|
116 { |
|
117 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1010 }, |
|
118 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_All_Parameters }, |
|
119 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Communication_Parameters }, |
|
120 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Application_Parameters }, |
|
121 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1010_Save_Manufacturer_Parameters } |
|
122 }; |
|
123 |
|
124 /* index 0x1011 : Restore Default Parameters. */ |
|
125 UNS8 TestMaster_highestSubIndex_obj1011 = 4; // number of subindex - 1 |
|
126 UNS32 TestMaster_obj1011_Restore_All_Default_Parameters = 0x0; // 0 |
|
127 UNS32 TestMaster_obj1011_Restore_Communication_Default_Parameters = 0x0; // 0 |
|
128 UNS32 TestMaster_obj1011_Restore_Application_Default_Parameters = 0x0; // 0 |
|
129 UNS32 TestMaster_obj1011_Restore_Manufacturer_Default_Parameters = 0x0; // 0 |
|
130 ODCallback_t TestMaster_Index1011_callbacks[] = |
|
131 { |
|
132 NULL, |
|
133 NULL, |
|
134 NULL, |
|
135 NULL, |
|
136 NULL, |
|
137 }; |
|
138 subindex TestMaster_Index1011[] = |
|
139 { |
|
140 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1011 }, |
|
141 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_All_Default_Parameters }, |
|
142 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Communication_Default_Parameters }, |
|
143 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Application_Default_Parameters }, |
|
144 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Manufacturer_Default_Parameters } |
99 }; |
145 }; |
100 |
146 |
101 /* index 0x1016 : Consumer Heartbeat Time. */ |
147 /* index 0x1016 : Consumer Heartbeat Time. */ |
102 UNS8 TestMaster_highestSubIndex_obj1016 = 1; // number of subindex - 1 |
148 UNS8 TestMaster_highestSubIndex_obj1016 = 1; // number of subindex - 1 |
103 UNS32 TestMaster_obj1016[] = |
149 UNS32 TestMaster_obj1016[] = |
104 { |
150 { |
105 133122 |
151 0x20802 // 133122 |
106 }; |
152 }; |
107 subindex TestMaster_Index1016[] = |
153 subindex TestMaster_Index1016[] = |
108 { |
154 { |
109 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1016 }, |
155 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1016 }, |
110 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1016[0] } |
156 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1016[0] } |
111 }; |
157 }; |
112 |
158 |
113 /* index 0x1017 : Producer Heartbeat Time */ |
159 /* index 0x1017 : Producer Heartbeat Time */ |
114 UNS16 TestMaster_obj1017 = 0; |
160 UNS16 TestMaster_obj1017 = 0x0; // 0 |
115 |
161 |
116 /* index 0x1018 : Identity. */ |
162 /* index 0x1018 : Identity. */ |
117 UNS8 TestMaster_highestSubIndex_obj1018 = 4; // number of subindex - 1 |
163 UNS8 TestMaster_highestSubIndex_obj1018 = 4; // number of subindex - 1 |
118 UNS32 TestMaster_obj1018_Vendor_ID = 0x0; |
164 UNS32 TestMaster_obj1018_Vendor_ID = 0x0; // 0 |
119 UNS32 TestMaster_obj1018_Product_Code = 0x0; |
165 UNS32 TestMaster_obj1018_Product_Code = 0x0; // 0 |
120 UNS32 TestMaster_obj1018_Revision_Number = 0x0; |
166 UNS32 TestMaster_obj1018_Revision_Number = 0x0; // 0 |
121 UNS32 TestMaster_obj1018_Serial_Number = 0x0; |
167 UNS32 TestMaster_obj1018_Serial_Number = 0x0; // 0 |
122 subindex TestMaster_Index1018[] = |
168 subindex TestMaster_Index1018[] = |
123 { |
169 { |
124 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1018 }, |
170 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1018 }, |
125 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Vendor_ID }, |
171 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Vendor_ID }, |
126 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Product_Code }, |
172 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Product_Code }, |
128 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Serial_Number } |
174 { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1018_Serial_Number } |
129 }; |
175 }; |
130 |
176 |
131 /* index 0x1280 : Client SDO 1 Parameter. */ |
177 /* index 0x1280 : Client SDO 1 Parameter. */ |
132 UNS8 TestMaster_highestSubIndex_obj1280 = 3; // number of subindex - 1 |
178 UNS8 TestMaster_highestSubIndex_obj1280 = 3; // number of subindex - 1 |
133 UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602; |
179 UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602; // 1538 |
134 UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582; |
180 UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582; // 1410 |
135 UNS32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2; |
181 UNS32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2; // 2 |
136 subindex TestMaster_Index1280[] = |
182 subindex TestMaster_Index1280[] = |
137 { |
183 { |
138 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 }, |
184 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 }, |
139 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO }, |
185 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO }, |
140 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO }, |
186 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO }, |
141 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server } |
187 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server } |
142 }; |
188 }; |
143 |
189 |
144 /* index 0x1400 : Receive PDO 1 Parameter. */ |
190 /* index 0x1400 : Receive PDO 1 Parameter. */ |
145 UNS8 TestMaster_highestSubIndex_obj1400 = 5; // number of subindex - 1 |
191 UNS8 TestMaster_highestSubIndex_obj1400 = 5; // number of subindex - 1 |
146 UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x182; |
192 UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x182; // 386 |
147 UNS8 TestMaster_obj1400_Transmission_Type = 0x1; |
193 UNS8 TestMaster_obj1400_Transmission_Type = 0x1; // 1 |
148 UNS16 TestMaster_obj1400_Inhibit_Time = 0x0; |
194 UNS16 TestMaster_obj1400_Inhibit_Time = 0x0; // 0 |
149 UNS16 TestMaster_obj1400_Compatibility_Entry = 0x0; |
195 UNS16 TestMaster_obj1400_Compatibility_Entry = 0x0; // 0 |
150 UNS16 TestMaster_obj1400_Event_Timer = 0x0; |
196 UNS16 TestMaster_obj1400_Event_Timer = 0x0; // 0 |
151 subindex TestMaster_Index1400[] = |
197 subindex TestMaster_Index1400[] = |
152 { |
198 { |
153 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1400 }, |
199 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1400 }, |
154 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1400_COB_ID_used_by_PDO }, |
200 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1400_COB_ID_used_by_PDO }, |
155 { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Transmission_Type }, |
201 { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1400_Transmission_Type }, |
158 { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Event_Timer } |
204 { RW, uint16, sizeof (UNS16), (void*)&TestMaster_obj1400_Event_Timer } |
159 }; |
205 }; |
160 |
206 |
161 /* index 0x1401 : Receive PDO 2 Parameter. */ |
207 /* index 0x1401 : Receive PDO 2 Parameter. */ |
162 UNS8 TestMaster_highestSubIndex_obj1401 = 5; // number of subindex - 1 |
208 UNS8 TestMaster_highestSubIndex_obj1401 = 5; // number of subindex - 1 |
163 UNS32 TestMaster_obj1401_COB_ID_used_by_PDO = 0x282; |
209 UNS32 TestMaster_obj1401_COB_ID_used_by_PDO = 0x282; // 642 |
164 UNS8 TestMaster_obj1401_Transmission_Type = 0x1; |
210 UNS8 TestMaster_obj1401_Transmission_Type = 0x1; // 1 |
165 UNS16 TestMaster_obj1401_Inhibit_Time = 0x0; |
211 UNS16 TestMaster_obj1401_Inhibit_Time = 0x0; // 0 |
166 UNS16 TestMaster_obj1401_Compatibility_Entry = 0x0; |
212 UNS16 TestMaster_obj1401_Compatibility_Entry = 0x0; // 0 |
167 UNS16 TestMaster_obj1401_Event_Timer = 0x0; |
213 UNS16 TestMaster_obj1401_Event_Timer = 0x0; // 0 |
168 subindex TestMaster_Index1401[] = |
214 subindex TestMaster_Index1401[] = |
169 { |
215 { |
170 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1401 }, |
216 { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1401 }, |
171 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1401_COB_ID_used_by_PDO }, |
217 { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1401_COB_ID_used_by_PDO }, |
172 { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1401_Transmission_Type }, |
218 { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1401_Transmission_Type }, |
235 { |
281 { |
236 { (subindex*)TestMaster_Index1000,sizeof(TestMaster_Index1000)/sizeof(TestMaster_Index1000[0]), 0x1000}, |
282 { (subindex*)TestMaster_Index1000,sizeof(TestMaster_Index1000)/sizeof(TestMaster_Index1000[0]), 0x1000}, |
237 { (subindex*)TestMaster_Index1001,sizeof(TestMaster_Index1001)/sizeof(TestMaster_Index1001[0]), 0x1001}, |
283 { (subindex*)TestMaster_Index1001,sizeof(TestMaster_Index1001)/sizeof(TestMaster_Index1001[0]), 0x1001}, |
238 { (subindex*)TestMaster_Index1005,sizeof(TestMaster_Index1005)/sizeof(TestMaster_Index1005[0]), 0x1005}, |
284 { (subindex*)TestMaster_Index1005,sizeof(TestMaster_Index1005)/sizeof(TestMaster_Index1005[0]), 0x1005}, |
239 { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006}, |
285 { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006}, |
|
286 { (subindex*)TestMaster_Index1010,sizeof(TestMaster_Index1010)/sizeof(TestMaster_Index1010[0]), 0x1010}, |
|
287 { (subindex*)TestMaster_Index1011,sizeof(TestMaster_Index1011)/sizeof(TestMaster_Index1011[0]), 0x1011}, |
240 { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016}, |
288 { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016}, |
241 { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018}, |
289 { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018}, |
242 { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280}, |
290 { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280}, |
243 { (subindex*)TestMaster_Index1400,sizeof(TestMaster_Index1400)/sizeof(TestMaster_Index1400[0]), 0x1400}, |
291 { (subindex*)TestMaster_Index1400,sizeof(TestMaster_Index1400)/sizeof(TestMaster_Index1400[0]), 0x1400}, |
244 { (subindex*)TestMaster_Index1401,sizeof(TestMaster_Index1401)/sizeof(TestMaster_Index1401[0]), 0x1401}, |
292 { (subindex*)TestMaster_Index1401,sizeof(TestMaster_Index1401)/sizeof(TestMaster_Index1401[0]), 0x1401}, |
251 }; |
299 }; |
252 |
300 |
253 const indextable * TestMaster_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks) |
301 const indextable * TestMaster_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks) |
254 { |
302 { |
255 int i; |
303 int i; |
|
304 *callbacks = NULL; |
256 switch(wIndex){ |
305 switch(wIndex){ |
257 case 0x1000: i = 0; *callbacks = NULL; break; |
306 case 0x1000: i = 0;break; |
258 case 0x1001: i = 1; *callbacks = NULL; break; |
307 case 0x1001: i = 1;break; |
259 case 0x1005: i = 2; *callbacks = TestMaster_Index1005_callbacks; break; |
308 case 0x1005: i = 2;*callbacks = TestMaster_Index1005_callbacks; break; |
260 case 0x1006: i = 3; *callbacks = TestMaster_Index1006_callbacks; break; |
309 case 0x1006: i = 3;*callbacks = TestMaster_Index1006_callbacks; break; |
261 case 0x1016: i = 4; *callbacks = NULL; break; |
310 case 0x1010: i = 4;*callbacks = TestMaster_Index1010_callbacks; break; |
262 case 0x1018: i = 5; *callbacks = NULL; break; |
311 case 0x1011: i = 5;*callbacks = TestMaster_Index1011_callbacks; break; |
263 case 0x1280: i = 6; *callbacks = NULL; break; |
312 case 0x1016: i = 6;break; |
264 case 0x1400: i = 7; *callbacks = NULL; break; |
313 case 0x1018: i = 7;break; |
265 case 0x1401: i = 8; *callbacks = NULL; break; |
314 case 0x1280: i = 8;break; |
266 case 0x1600: i = 9; *callbacks = NULL; break; |
315 case 0x1400: i = 9;break; |
267 case 0x1601: i = 10; *callbacks = NULL; break; |
316 case 0x1401: i = 10;break; |
268 case 0x2000: i = 11; *callbacks = MasterMap1_callbacks; break; |
317 case 0x1600: i = 11;break; |
269 case 0x2001: i = 12; *callbacks = NULL; break; |
318 case 0x1601: i = 12;break; |
270 case 0x2002: i = 13; *callbacks = NULL; break; |
319 case 0x2000: i = 13;*callbacks = MasterMap1_callbacks; break; |
271 case 0x2003: i = 14; *callbacks = NULL; break; |
320 case 0x2001: i = 14;break; |
|
321 case 0x2002: i = 15;break; |
|
322 case 0x2003: i = 16;break; |
272 default: |
323 default: |
273 *errorCode = OD_NO_SUCH_OBJECT; |
324 *errorCode = OD_NO_SUCH_OBJECT; |
274 return NULL; |
325 return NULL; |
275 } |
326 } |
276 *errorCode = OD_SUCCESSFUL; |
327 *errorCode = OD_SUCCESSFUL; |