Dynamixel  2.9.5
RoadNarrows Robotics Dynamixel Package
bsDynaMsgs.c
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // File: bsDynaMsgs.c
4 //
5 /*!
6  * \file
7  *
8  * \brief \h_botsense Server/Client Dynamixel NetMsgs XML Definitions.
9  *
10  * \warning This file was auto-generated on 2018.08.10 13:55:04 from the NetMsgs
11  * XML specification bsDynaMsgs.xml.
12  *
13  * \par Copyright:
14  * (C) 2018. RoadNarrows LLC
15  * (http://www.roadnarrows.com)
16  * All Rights Reserved
17  */
18 ///////////////////////////////////////////////////////////////////////////////
19 
20 
21 #include "rnr/rnrconfig.h"
22 #include "rnr/log.h"
23 #include "rnr/netmsgs.h"
24 
25 #include "botsense/bsDynaMsgs.h"
26 
27 #ifndef EOFDEF
28 /*! End of Field Definition entry. */
29 #define EOFDEF {NULL, 0, NMFTypeNone, 0, }
30 #endif // EOFDEF
31 
32 
33 //-----------------------------------------------------------------------------
34 // Private Interface
35 //-----------------------------------------------------------------------------
36 
37 
38 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39 // Field Type BsDynaWriteTuple Definition
40 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41 
42 /*!
43  * BsDynaWriteTuple Field Id Enumeration
44  */
45 typedef enum
46 {
47  BsDynaWriteTupleFIdReserved = 0, ///< reserved field id
48  BsDynaWriteTupleFIdservo_id = 1, ///< servo_id field id
49  BsDynaWriteTupleFIdval = 2, ///< val field id
50  BsDynaWriteTupleFIdNumOf = 3 ///< number of fields
52 
53 /*!
54  * BsDynaWriteTuple Field Definitions
55  */
56 static const NMFieldDef_T BsDynaWriteTupleFieldDefs[] =
57 {
58  {
59  .m_sFName = "servo_id",
61  .m_eFType = NMFTypeU8,
62  .m_uOffset = memberoffset(BsDynaWriteTuple_T, m_servo_id),
63  .m_this.m_u8.m_bits = (byte_t)(0),
64  .m_this.m_u8.m_valMin = (byte_t)(0),
65  .m_this.m_u8.m_valMax = (byte_t)(0),
66  .m_this.m_u8.m_valConst = (byte_t)(0),
67  },
68  {
69  .m_sFName = "val",
70  .m_eFId = BsDynaWriteTupleFIdval,
71  .m_eFType = NMFTypeU16,
72  .m_uOffset = memberoffset(BsDynaWriteTuple_T, m_val),
73  .m_this.m_u16.m_bits = (byte_t)(0),
74  .m_this.m_u16.m_valMin = (ushort_t)(0),
75  .m_this.m_u16.m_valMax = (ushort_t)(0),
76  .m_this.m_u16.m_valConst = (ushort_t)(0),
77  },
78  EOFDEF
79 };
80 
81 /*!
82  * BsDynaWriteTuple Message Definition
83  */
84 static const NMMsgDef_T BsDynaWriteTupleMsgDef =
85 {
86  .m_sMsgName = "BsDynaWriteTuple",
87  .m_eMsgId = BsDynaMsgIdNone,
88  .m_uCount = (size_t)(2),
89  .m_pFields = BsDynaWriteTupleFieldDefs
90 };
91 
92 
93 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94 // Message BsDynaReqOpenArgs Definition
95 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96 
97 /*!
98  * BsDynaReqOpenArgs Field Id Enumeration
99  */
100 typedef enum
101 {
102  BsDynaReqOpenArgsFIdReserved = 0, ///< reserved field id
103  BsDynaReqOpenArgsFIdbaudrate = 1, ///< baudrate field id
104  BsDynaReqOpenArgsFIdNumOf = 2 ///< number of fields
106 
107 /*!
108  * BsDynaReqOpenArgs Field Definitions
109  */
110 static const NMFieldDef_T BsDynaReqOpenArgsFieldDefs[] =
111 {
112  {
113  .m_sFName = "baudrate",
115  .m_eFType = NMFTypeU32,
116  .m_uOffset = memberoffset(BsDynaReqOpenArgs_T, m_baudrate),
117  .m_this.m_u32.m_bits = (byte_t)(0),
118  .m_this.m_u32.m_valMin = (uint_t)(0),
119  .m_this.m_u32.m_valMax = (uint_t)(0),
120  .m_this.m_u32.m_valConst = (uint_t)(0),
121  },
122  EOFDEF
123 };
124 
125 /*!
126  * BsDynaReqOpenArgs Message Definition
127  */
128 static const NMMsgDef_T BsDynaReqOpenArgsMsgDef =
129 {
130  .m_sMsgName = "BsDynaReqOpenArgs",
131  .m_eMsgId = BsDynaMsgIdReqOpenArgs,
132  .m_uCount = (size_t)(1),
133  .m_pFields = BsDynaReqOpenArgsFieldDefs
134 };
135 
136 
137 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138 // Message BsDynaReqSetBaudRate Definition
139 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140 
141 /*!
142  * BsDynaReqSetBaudRate Field Id Enumeration
143  */
144 typedef enum
145 {
146  BsDynaReqSetBaudRateFIdReserved = 0, ///< reserved field id
147  BsDynaReqSetBaudRateFIdbaudrate = 1, ///< baudrate field id
148  BsDynaReqSetBaudRateFIdNumOf = 2 ///< number of fields
150 
151 /*!
152  * BsDynaReqSetBaudRate Field Definitions
153  */
154 static const NMFieldDef_T BsDynaReqSetBaudRateFieldDefs[] =
155 {
156  {
157  .m_sFName = "baudrate",
159  .m_eFType = NMFTypeU32,
160  .m_uOffset = memberoffset(BsDynaReqSetBaudRate_T, m_baudrate),
161  .m_this.m_u32.m_bits = (byte_t)(0),
162  .m_this.m_u32.m_valMin = (uint_t)(0),
163  .m_this.m_u32.m_valMax = (uint_t)(0),
164  .m_this.m_u32.m_valConst = (uint_t)(0),
165  },
166  EOFDEF
167 };
168 
169 /*!
170  * BsDynaReqSetBaudRate Message Definition
171  */
172 static const NMMsgDef_T BsDynaReqSetBaudRateMsgDef =
173 {
174  .m_sMsgName = "BsDynaReqSetBaudRate",
175  .m_eMsgId = BsDynaMsgIdReqSetBaudRate,
176  .m_uCount = (size_t)(1),
177  .m_pFields = BsDynaReqSetBaudRateFieldDefs
178 };
179 
180 
181 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
182 // Message BsDynaReqRead8 Definition
183 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
184 
185 /*!
186  * BsDynaReqRead8 Field Id Enumeration
187  */
188 typedef enum
189 {
190  BsDynaReqRead8FIdReserved = 0, ///< reserved field id
191  BsDynaReqRead8FIdservo_id = 1, ///< servo_id field id
192  BsDynaReqRead8FIdaddr = 2, ///< addr field id
193  BsDynaReqRead8FIdNumOf = 3 ///< number of fields
195 
196 /*!
197  * BsDynaReqRead8 Field Definitions
198  */
199 static const NMFieldDef_T BsDynaReqRead8FieldDefs[] =
200 {
201  {
202  .m_sFName = "servo_id",
203  .m_eFId = BsDynaReqRead8FIdservo_id,
204  .m_eFType = NMFTypeU8,
205  .m_uOffset = memberoffset(BsDynaReqRead8_T, m_servo_id),
206  .m_this.m_u8.m_bits = (byte_t)(0),
207  .m_this.m_u8.m_valMin = (byte_t)(0),
208  .m_this.m_u8.m_valMax = (byte_t)(0),
209  .m_this.m_u8.m_valConst = (byte_t)(0),
210  },
211  {
212  .m_sFName = "addr",
213  .m_eFId = BsDynaReqRead8FIdaddr,
214  .m_eFType = NMFTypeU8,
215  .m_uOffset = memberoffset(BsDynaReqRead8_T, m_addr),
216  .m_this.m_u8.m_bits = (byte_t)(0),
217  .m_this.m_u8.m_valMin = (byte_t)(0),
218  .m_this.m_u8.m_valMax = (byte_t)(0),
219  .m_this.m_u8.m_valConst = (byte_t)(0),
220  },
221  EOFDEF
222 };
223 
224 /*!
225  * BsDynaReqRead8 Message Definition
226  */
227 static const NMMsgDef_T BsDynaReqRead8MsgDef =
228 {
229  .m_sMsgName = "BsDynaReqRead8",
230  .m_eMsgId = BsDynaMsgIdReqRead8,
231  .m_uCount = (size_t)(2),
232  .m_pFields = BsDynaReqRead8FieldDefs
233 };
234 
235 
236 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
237 // Message BsDynaRspRead8 Definition
238 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
239 
240 /*!
241  * BsDynaRspRead8 Field Id Enumeration
242  */
243 typedef enum
244 {
245  BsDynaRspRead8FIdReserved = 0, ///< reserved field id
246  BsDynaRspRead8FIdalarms = 1, ///< alarms field id
247  BsDynaRspRead8FIdval = 2, ///< val field id
248  BsDynaRspRead8FIdNumOf = 3 ///< number of fields
250 
251 /*!
252  * BsDynaRspRead8 Field Definitions
253  */
254 static const NMFieldDef_T BsDynaRspRead8FieldDefs[] =
255 {
256  {
257  .m_sFName = "alarms",
258  .m_eFId = BsDynaRspRead8FIdalarms,
259  .m_eFType = NMFTypeU8,
260  .m_uOffset = memberoffset(BsDynaRspRead8_T, m_alarms),
261  .m_this.m_u8.m_bits = (byte_t)(0),
262  .m_this.m_u8.m_valMin = (byte_t)(0),
263  .m_this.m_u8.m_valMax = (byte_t)(0),
264  .m_this.m_u8.m_valConst = (byte_t)(0),
265  },
266  {
267  .m_sFName = "val",
268  .m_eFId = BsDynaRspRead8FIdval,
269  .m_eFType = NMFTypeU8,
270  .m_uOffset = memberoffset(BsDynaRspRead8_T, m_val),
271  .m_this.m_u8.m_bits = (byte_t)(0),
272  .m_this.m_u8.m_valMin = (byte_t)(0),
273  .m_this.m_u8.m_valMax = (byte_t)(0),
274  .m_this.m_u8.m_valConst = (byte_t)(0),
275  },
276  EOFDEF
277 };
278 
279 /*!
280  * BsDynaRspRead8 Message Definition
281  */
282 static const NMMsgDef_T BsDynaRspRead8MsgDef =
283 {
284  .m_sMsgName = "BsDynaRspRead8",
285  .m_eMsgId = BsDynaMsgIdRspRead8,
286  .m_uCount = (size_t)(2),
287  .m_pFields = BsDynaRspRead8FieldDefs
288 };
289 
290 
291 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
292 // Message BsDynaReqRead16 Definition
293 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
294 
295 /*!
296  * BsDynaReqRead16 Field Id Enumeration
297  */
298 typedef enum
299 {
300  BsDynaReqRead16FIdReserved = 0, ///< reserved field id
301  BsDynaReqRead16FIdservo_id = 1, ///< servo_id field id
302  BsDynaReqRead16FIdaddr = 2, ///< addr field id
303  BsDynaReqRead16FIdNumOf = 3 ///< number of fields
305 
306 /*!
307  * BsDynaReqRead16 Field Definitions
308  */
309 static const NMFieldDef_T BsDynaReqRead16FieldDefs[] =
310 {
311  {
312  .m_sFName = "servo_id",
313  .m_eFId = BsDynaReqRead16FIdservo_id,
314  .m_eFType = NMFTypeU8,
315  .m_uOffset = memberoffset(BsDynaReqRead16_T, m_servo_id),
316  .m_this.m_u8.m_bits = (byte_t)(0),
317  .m_this.m_u8.m_valMin = (byte_t)(0),
318  .m_this.m_u8.m_valMax = (byte_t)(0),
319  .m_this.m_u8.m_valConst = (byte_t)(0),
320  },
321  {
322  .m_sFName = "addr",
323  .m_eFId = BsDynaReqRead16FIdaddr,
324  .m_eFType = NMFTypeU8,
325  .m_uOffset = memberoffset(BsDynaReqRead16_T, m_addr),
326  .m_this.m_u8.m_bits = (byte_t)(0),
327  .m_this.m_u8.m_valMin = (byte_t)(0),
328  .m_this.m_u8.m_valMax = (byte_t)(0),
329  .m_this.m_u8.m_valConst = (byte_t)(0),
330  },
331  EOFDEF
332 };
333 
334 /*!
335  * BsDynaReqRead16 Message Definition
336  */
337 static const NMMsgDef_T BsDynaReqRead16MsgDef =
338 {
339  .m_sMsgName = "BsDynaReqRead16",
340  .m_eMsgId = BsDynaMsgIdReqRead16,
341  .m_uCount = (size_t)(2),
342  .m_pFields = BsDynaReqRead16FieldDefs
343 };
344 
345 
346 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
347 // Message BsDynaRspRead16 Definition
348 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
349 
350 /*!
351  * BsDynaRspRead16 Field Id Enumeration
352  */
353 typedef enum
354 {
355  BsDynaRspRead16FIdReserved = 0, ///< reserved field id
356  BsDynaRspRead16FIdalarms = 1, ///< alarms field id
357  BsDynaRspRead16FIdval = 2, ///< val field id
358  BsDynaRspRead16FIdNumOf = 3 ///< number of fields
360 
361 /*!
362  * BsDynaRspRead16 Field Definitions
363  */
364 static const NMFieldDef_T BsDynaRspRead16FieldDefs[] =
365 {
366  {
367  .m_sFName = "alarms",
368  .m_eFId = BsDynaRspRead16FIdalarms,
369  .m_eFType = NMFTypeU8,
370  .m_uOffset = memberoffset(BsDynaRspRead16_T, m_alarms),
371  .m_this.m_u8.m_bits = (byte_t)(0),
372  .m_this.m_u8.m_valMin = (byte_t)(0),
373  .m_this.m_u8.m_valMax = (byte_t)(0),
374  .m_this.m_u8.m_valConst = (byte_t)(0),
375  },
376  {
377  .m_sFName = "val",
378  .m_eFId = BsDynaRspRead16FIdval,
379  .m_eFType = NMFTypeU16,
380  .m_uOffset = memberoffset(BsDynaRspRead16_T, m_val),
381  .m_this.m_u16.m_bits = (byte_t)(0),
382  .m_this.m_u16.m_valMin = (ushort_t)(0),
383  .m_this.m_u16.m_valMax = (ushort_t)(0),
384  .m_this.m_u16.m_valConst = (ushort_t)(0),
385  },
386  EOFDEF
387 };
388 
389 /*!
390  * BsDynaRspRead16 Message Definition
391  */
392 static const NMMsgDef_T BsDynaRspRead16MsgDef =
393 {
394  .m_sMsgName = "BsDynaRspRead16",
395  .m_eMsgId = BsDynaMsgIdRspRead16,
396  .m_uCount = (size_t)(2),
397  .m_pFields = BsDynaRspRead16FieldDefs
398 };
399 
400 
401 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
402 // Message BsDynaReqWrite8 Definition
403 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
404 
405 /*!
406  * BsDynaReqWrite8 Field Id Enumeration
407  */
408 typedef enum
409 {
410  BsDynaReqWrite8FIdReserved = 0, ///< reserved field id
411  BsDynaReqWrite8FIdservo_id = 1, ///< servo_id field id
412  BsDynaReqWrite8FIdaddr = 2, ///< addr field id
413  BsDynaReqWrite8FIdval = 3, ///< val field id
414  BsDynaReqWrite8FIdNumOf = 4 ///< number of fields
416 
417 /*!
418  * BsDynaReqWrite8 Field Definitions
419  */
420 static const NMFieldDef_T BsDynaReqWrite8FieldDefs[] =
421 {
422  {
423  .m_sFName = "servo_id",
424  .m_eFId = BsDynaReqWrite8FIdservo_id,
425  .m_eFType = NMFTypeU8,
426  .m_uOffset = memberoffset(BsDynaReqWrite8_T, m_servo_id),
427  .m_this.m_u8.m_bits = (byte_t)(0),
428  .m_this.m_u8.m_valMin = (byte_t)(0),
429  .m_this.m_u8.m_valMax = (byte_t)(0),
430  .m_this.m_u8.m_valConst = (byte_t)(0),
431  },
432  {
433  .m_sFName = "addr",
434  .m_eFId = BsDynaReqWrite8FIdaddr,
435  .m_eFType = NMFTypeU8,
436  .m_uOffset = memberoffset(BsDynaReqWrite8_T, m_addr),
437  .m_this.m_u8.m_bits = (byte_t)(0),
438  .m_this.m_u8.m_valMin = (byte_t)(0),
439  .m_this.m_u8.m_valMax = (byte_t)(0),
440  .m_this.m_u8.m_valConst = (byte_t)(0),
441  },
442  {
443  .m_sFName = "val",
444  .m_eFId = BsDynaReqWrite8FIdval,
445  .m_eFType = NMFTypeU8,
446  .m_uOffset = memberoffset(BsDynaReqWrite8_T, m_val),
447  .m_this.m_u8.m_bits = (byte_t)(0),
448  .m_this.m_u8.m_valMin = (byte_t)(0),
449  .m_this.m_u8.m_valMax = (byte_t)(0),
450  .m_this.m_u8.m_valConst = (byte_t)(0),
451  },
452  EOFDEF
453 };
454 
455 /*!
456  * BsDynaReqWrite8 Message Definition
457  */
458 static const NMMsgDef_T BsDynaReqWrite8MsgDef =
459 {
460  .m_sMsgName = "BsDynaReqWrite8",
461  .m_eMsgId = BsDynaMsgIdReqWrite8,
462  .m_uCount = (size_t)(3),
463  .m_pFields = BsDynaReqWrite8FieldDefs
464 };
465 
466 
467 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
468 // Message BsDynaRspWrite8 Definition
469 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
470 
471 /*!
472  * BsDynaRspWrite8 Field Id Enumeration
473  */
474 typedef enum
475 {
476  BsDynaRspWrite8FIdReserved = 0, ///< reserved field id
477  BsDynaRspWrite8FIdalarms = 1, ///< alarms field id
478  BsDynaRspWrite8FIdNumOf = 2 ///< number of fields
480 
481 /*!
482  * BsDynaRspWrite8 Field Definitions
483  */
484 static const NMFieldDef_T BsDynaRspWrite8FieldDefs[] =
485 {
486  {
487  .m_sFName = "alarms",
488  .m_eFId = BsDynaRspWrite8FIdalarms,
489  .m_eFType = NMFTypeU8,
490  .m_uOffset = memberoffset(BsDynaRspWrite8_T, m_alarms),
491  .m_this.m_u8.m_bits = (byte_t)(0),
492  .m_this.m_u8.m_valMin = (byte_t)(0),
493  .m_this.m_u8.m_valMax = (byte_t)(0),
494  .m_this.m_u8.m_valConst = (byte_t)(0),
495  },
496  EOFDEF
497 };
498 
499 /*!
500  * BsDynaRspWrite8 Message Definition
501  */
502 static const NMMsgDef_T BsDynaRspWrite8MsgDef =
503 {
504  .m_sMsgName = "BsDynaRspWrite8",
505  .m_eMsgId = BsDynaMsgIdRspWrite8,
506  .m_uCount = (size_t)(1),
507  .m_pFields = BsDynaRspWrite8FieldDefs
508 };
509 
510 
511 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
512 // Message BsDynaReqWrite16 Definition
513 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
514 
515 /*!
516  * BsDynaReqWrite16 Field Id Enumeration
517  */
518 typedef enum
519 {
520  BsDynaReqWrite16FIdReserved = 0, ///< reserved field id
521  BsDynaReqWrite16FIdservo_id = 1, ///< servo_id field id
522  BsDynaReqWrite16FIdaddr = 2, ///< addr field id
523  BsDynaReqWrite16FIdval = 3, ///< val field id
524  BsDynaReqWrite16FIdNumOf = 4 ///< number of fields
526 
527 /*!
528  * BsDynaReqWrite16 Field Definitions
529  */
530 static const NMFieldDef_T BsDynaReqWrite16FieldDefs[] =
531 {
532  {
533  .m_sFName = "servo_id",
534  .m_eFId = BsDynaReqWrite16FIdservo_id,
535  .m_eFType = NMFTypeU8,
536  .m_uOffset = memberoffset(BsDynaReqWrite16_T, m_servo_id),
537  .m_this.m_u8.m_bits = (byte_t)(0),
538  .m_this.m_u8.m_valMin = (byte_t)(0),
539  .m_this.m_u8.m_valMax = (byte_t)(0),
540  .m_this.m_u8.m_valConst = (byte_t)(0),
541  },
542  {
543  .m_sFName = "addr",
544  .m_eFId = BsDynaReqWrite16FIdaddr,
545  .m_eFType = NMFTypeU8,
546  .m_uOffset = memberoffset(BsDynaReqWrite16_T, m_addr),
547  .m_this.m_u8.m_bits = (byte_t)(0),
548  .m_this.m_u8.m_valMin = (byte_t)(0),
549  .m_this.m_u8.m_valMax = (byte_t)(0),
550  .m_this.m_u8.m_valConst = (byte_t)(0),
551  },
552  {
553  .m_sFName = "val",
554  .m_eFId = BsDynaReqWrite16FIdval,
555  .m_eFType = NMFTypeU16,
556  .m_uOffset = memberoffset(BsDynaReqWrite16_T, m_val),
557  .m_this.m_u16.m_bits = (byte_t)(0),
558  .m_this.m_u16.m_valMin = (ushort_t)(0),
559  .m_this.m_u16.m_valMax = (ushort_t)(0),
560  .m_this.m_u16.m_valConst = (ushort_t)(0),
561  },
562  EOFDEF
563 };
564 
565 /*!
566  * BsDynaReqWrite16 Message Definition
567  */
568 static const NMMsgDef_T BsDynaReqWrite16MsgDef =
569 {
570  .m_sMsgName = "BsDynaReqWrite16",
571  .m_eMsgId = BsDynaMsgIdReqWrite16,
572  .m_uCount = (size_t)(3),
573  .m_pFields = BsDynaReqWrite16FieldDefs
574 };
575 
576 
577 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
578 // Message BsDynaRspWrite16 Definition
579 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
580 
581 /*!
582  * BsDynaRspWrite16 Field Id Enumeration
583  */
584 typedef enum
585 {
586  BsDynaRspWrite16FIdReserved = 0, ///< reserved field id
587  BsDynaRspWrite16FIdalarms = 1, ///< alarms field id
588  BsDynaRspWrite16FIdNumOf = 2 ///< number of fields
590 
591 /*!
592  * BsDynaRspWrite16 Field Definitions
593  */
594 static const NMFieldDef_T BsDynaRspWrite16FieldDefs[] =
595 {
596  {
597  .m_sFName = "alarms",
598  .m_eFId = BsDynaRspWrite16FIdalarms,
599  .m_eFType = NMFTypeU8,
600  .m_uOffset = memberoffset(BsDynaRspWrite16_T, m_alarms),
601  .m_this.m_u8.m_bits = (byte_t)(0),
602  .m_this.m_u8.m_valMin = (byte_t)(0),
603  .m_this.m_u8.m_valMax = (byte_t)(0),
604  .m_this.m_u8.m_valConst = (byte_t)(0),
605  },
606  EOFDEF
607 };
608 
609 /*!
610  * BsDynaRspWrite16 Message Definition
611  */
612 static const NMMsgDef_T BsDynaRspWrite16MsgDef =
613 {
614  .m_sMsgName = "BsDynaRspWrite16",
615  .m_eMsgId = BsDynaMsgIdRspWrite16,
616  .m_uCount = (size_t)(1),
617  .m_pFields = BsDynaRspWrite16FieldDefs
618 };
619 
620 
621 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
622 // Message BsDynaReqSyncWrite Definition
623 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
624 
625 /*!
626  * BsDynaReqSyncWritetuples Field Definitions
627  */
628 static const NMFieldDef_T BsDynaReqSyncWritetuplesFieldDef[] =
629 {
630  {
631  .m_sFName = "tuples",
632  .m_eFId = 0,
633  .m_eFType = NMFTypeStruct,
634  .m_uOffset = (size_t)0,
635  .m_this.m_struct = &BsDynaWriteTupleMsgDef,
636  },
637  EOFDEF
638 };
639 
640 /*!
641  * BsDynaReqSyncWrite Field Id Enumeration
642  */
643 typedef enum
644 {
645  BsDynaReqSyncWriteFIdReserved = 0, ///< reserved field id
646  BsDynaReqSyncWriteFIdaddr = 1, ///< addr field id
647  BsDynaReqSyncWriteFIddata_size = 2, ///< data_size field id
648  BsDynaReqSyncWriteFIdtuples = 3, ///< tuples field id
649  BsDynaReqSyncWriteFIdNumOf = 4 ///< number of fields
651 
652 /*!
653  * BsDynaReqSyncWrite Field Definitions
654  */
655 static const NMFieldDef_T BsDynaReqSyncWriteFieldDefs[] =
656 {
657  {
658  .m_sFName = "addr",
659  .m_eFId = BsDynaReqSyncWriteFIdaddr,
660  .m_eFType = NMFTypeU8,
661  .m_uOffset = memberoffset(BsDynaReqSyncWrite_T, m_addr),
662  .m_this.m_u8.m_bits = (byte_t)(0),
663  .m_this.m_u8.m_valMin = (byte_t)(0),
664  .m_this.m_u8.m_valMax = (byte_t)(0),
665  .m_this.m_u8.m_valConst = (byte_t)(0),
666  },
667  {
668  .m_sFName = "data_size",
670  .m_eFType = NMFTypeU8,
671  .m_uOffset = memberoffset(BsDynaReqSyncWrite_T, m_data_size),
672  .m_this.m_u8.m_bits = (byte_t)(0),
673  .m_this.m_u8.m_valMin = (byte_t)(0),
674  .m_this.m_u8.m_valMax = (byte_t)(0),
675  .m_this.m_u8.m_valConst = (byte_t)(0),
676  },
677  {
678  .m_sFName = "tuples",
679  .m_eFId = BsDynaReqSyncWriteFIdtuples,
680  .m_eFType = NMFTypeVector,
681  .m_uOffset = memberoffset(BsDynaReqSyncWrite_T, m_tuples),
682  .m_this.m_vector.m_uMaxCount
683  = (size_t)DYNA_ID_NUMOF,
684  .m_this.m_vector.m_uElemSize
685  = sizeof(BsDynaWriteTuple_T),
686  .m_this.m_vector.m_pThisElem
688  },
689  EOFDEF
690 };
691 
692 /*!
693  * BsDynaReqSyncWrite Message Definition
694  */
695 static const NMMsgDef_T BsDynaReqSyncWriteMsgDef =
696 {
697  .m_sMsgName = "BsDynaReqSyncWrite",
698  .m_eMsgId = BsDynaMsgIdReqSyncWrite,
699  .m_uCount = (size_t)(3),
700  .m_pFields = BsDynaReqSyncWriteFieldDefs
701 };
702 
703 
704 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
705 // Message BsDynaReqPing Definition
706 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
707 
708 /*!
709  * BsDynaReqPing Field Id Enumeration
710  */
711 typedef enum
712 {
713  BsDynaReqPingFIdReserved = 0, ///< reserved field id
714  BsDynaReqPingFIdservo_id = 1, ///< servo_id field id
715  BsDynaReqPingFIdNumOf = 2 ///< number of fields
717 
718 /*!
719  * BsDynaReqPing Field Definitions
720  */
721 static const NMFieldDef_T BsDynaReqPingFieldDefs[] =
722 {
723  {
724  .m_sFName = "servo_id",
725  .m_eFId = BsDynaReqPingFIdservo_id,
726  .m_eFType = NMFTypeU8,
727  .m_uOffset = memberoffset(BsDynaReqPing_T, m_servo_id),
728  .m_this.m_u8.m_bits = (byte_t)(0),
729  .m_this.m_u8.m_valMin = (byte_t)(0),
730  .m_this.m_u8.m_valMax = (byte_t)(0),
731  .m_this.m_u8.m_valConst = (byte_t)(0),
732  },
733  EOFDEF
734 };
735 
736 /*!
737  * BsDynaReqPing Message Definition
738  */
739 static const NMMsgDef_T BsDynaReqPingMsgDef =
740 {
741  .m_sMsgName = "BsDynaReqPing",
742  .m_eMsgId = BsDynaMsgIdReqPing,
743  .m_uCount = (size_t)(1),
744  .m_pFields = BsDynaReqPingFieldDefs
745 };
746 
747 
748 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
749 // Message BsDynaRspPing Definition
750 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
751 
752 /*!
753  * BsDynaRspPing Field Id Enumeration
754  */
755 typedef enum
756 {
757  BsDynaRspPingFIdReserved = 0, ///< reserved field id
758  BsDynaRspPingFIdpong = 1, ///< pong field id
759  BsDynaRspPingFIdNumOf = 2 ///< number of fields
761 
762 /*!
763  * BsDynaRspPing Field Definitions
764  */
765 static const NMFieldDef_T BsDynaRspPingFieldDefs[] =
766 {
767  {
768  .m_sFName = "pong",
769  .m_eFId = BsDynaRspPingFIdpong,
770  .m_eFType = NMFTypeBool,
771  .m_uOffset = memberoffset(BsDynaRspPing_T, m_pong),
772  },
773  EOFDEF
774 };
775 
776 /*!
777  * BsDynaRspPing Message Definition
778  */
779 static const NMMsgDef_T BsDynaRspPingMsgDef =
780 {
781  .m_sMsgName = "BsDynaRspPing",
782  .m_eMsgId = BsDynaMsgIdRspPing,
783  .m_uCount = (size_t)(1),
784  .m_pFields = BsDynaRspPingFieldDefs
785 };
786 
787 
788 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
789 // Message BsDynaReqReset Definition
790 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
791 
792 /*!
793  * BsDynaReqReset Field Id Enumeration
794  */
795 typedef enum
796 {
797  BsDynaReqResetFIdReserved = 0, ///< reserved field id
798  BsDynaReqResetFIdservo_id = 1, ///< servo_id field id
799  BsDynaReqResetFIdNumOf = 2 ///< number of fields
801 
802 /*!
803  * BsDynaReqReset Field Definitions
804  */
805 static const NMFieldDef_T BsDynaReqResetFieldDefs[] =
806 {
807  {
808  .m_sFName = "servo_id",
809  .m_eFId = BsDynaReqResetFIdservo_id,
810  .m_eFType = NMFTypeU8,
811  .m_uOffset = memberoffset(BsDynaReqReset_T, m_servo_id),
812  .m_this.m_u8.m_bits = (byte_t)(0),
813  .m_this.m_u8.m_valMin = (byte_t)(0),
814  .m_this.m_u8.m_valMax = (byte_t)(0),
815  .m_this.m_u8.m_valConst = (byte_t)(0),
816  },
817  EOFDEF
818 };
819 
820 /*!
821  * BsDynaReqReset Message Definition
822  */
823 static const NMMsgDef_T BsDynaReqResetMsgDef =
824 {
825  .m_sMsgName = "BsDynaReqReset",
826  .m_eMsgId = BsDynaMsgIdReqReset,
827  .m_uCount = (size_t)(1),
828  .m_pFields = BsDynaReqResetFieldDefs
829 };
830 
831 
832 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
833 // Message BsDynaReqSetHalfDuplexCtl Definition
834 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
835 
836 /*!
837  * BsDynaReqSetHalfDuplexCtl Field Id Enumeration
838  */
839 typedef enum
840 {
841  BsDynaReqSetHalfDuplexCtlFIdReserved = 0, ///< reserved field id
842  BsDynaReqSetHalfDuplexCtlFIdsignal = 1, ///< signal field id
843  BsDynaReqSetHalfDuplexCtlFIdNumOf = 2 ///< number of fields
845 
846 /*!
847  * BsDynaReqSetHalfDuplexCtl Field Definitions
848  */
849 static const NMFieldDef_T BsDynaReqSetHalfDuplexCtlFieldDefs[] =
850 {
851  {
852  .m_sFName = "signal",
854  .m_eFType = NMFTypeU32,
855  .m_uOffset = memberoffset(BsDynaReqSetHalfDuplexCtl_T, m_signal),
856  .m_this.m_u32.m_bits = (byte_t)(0),
857  .m_this.m_u32.m_valMin = (uint_t)(0),
858  .m_this.m_u32.m_valMax = (uint_t)(0),
859  .m_this.m_u32.m_valConst = (uint_t)(0),
860  },
861  EOFDEF
862 };
863 
864 /*!
865  * BsDynaReqSetHalfDuplexCtl Message Definition
866  */
867 static const NMMsgDef_T BsDynaReqSetHalfDuplexCtlMsgDef =
868 {
869  .m_sMsgName = "BsDynaReqSetHalfDuplexCtl",
870  .m_eMsgId = BsDynaMsgIdReqSetHalfDuplexCtl,
871  .m_uCount = (size_t)(1),
873 };
874 
875 
876 //-----------------------------------------------------------------------------
877 // Public Interface
878 //-----------------------------------------------------------------------------
879 
880 /*!
881  * BsDyna Message Definition Look-Up Table. Indexed by BsDynaMsgId_T enum.
882  */
883 const NMMsgDef_T *BsDynaMsgDefLookupTbl[] =
884 {
885  NULL, ///< [BsDynaMsgIdNone]
886  &BsDynaReqOpenArgsMsgDef, ///< [BsDynaMsgIdReqOpenArgs]
887  &BsDynaReqSetBaudRateMsgDef, ///< [BsDynaMsgIdReqSetBaudRate]
888  &BsDynaReqRead8MsgDef, ///< [BsDynaMsgIdReqRead8]
889  &BsDynaRspRead8MsgDef, ///< [BsDynaMsgIdRspRead8]
890  &BsDynaReqRead16MsgDef, ///< [BsDynaMsgIdReqRead16]
891  &BsDynaRspRead16MsgDef, ///< [BsDynaMsgIdRspRead16]
892  &BsDynaReqWrite8MsgDef, ///< [BsDynaMsgIdReqWrite8]
893  &BsDynaRspWrite8MsgDef, ///< [BsDynaMsgIdRspWrite8]
894  &BsDynaReqWrite16MsgDef, ///< [BsDynaMsgIdReqWrite16]
895  &BsDynaRspWrite16MsgDef, ///< [BsDynaMsgIdRspWrite16]
896  &BsDynaReqSyncWriteMsgDef, ///< [BsDynaMsgIdReqSyncWrite]
897  &BsDynaReqPingMsgDef, ///< [BsDynaMsgIdReqPing]
898  &BsDynaRspPingMsgDef, ///< [BsDynaMsgIdRspPing]
899  &BsDynaReqResetMsgDef, ///< [BsDynaMsgIdReqReset]
900  &BsDynaReqSetHalfDuplexCtlMsgDef, ///< [BsDynaMsgIdReqSetHalfDuplexCtl]
901  NULL ///< [BsDynaMsgIdNumOf]
902 };
903 
904 /*!
905  * BsDyna Message Maximum Size Look-Up Table. Indexed by BsDynaMsgId_T enum.
906  */
908 {
909  (size_t)(0), ///< [BsDynaMsgIdNone]
910  (size_t)(9), ///< [BsDynaMsgIdReqOpenArgs]
911  (size_t)(9), ///< [BsDynaMsgIdReqSetBaudRate]
912  (size_t)(9), ///< [BsDynaMsgIdReqRead8]
913  (size_t)(9), ///< [BsDynaMsgIdRspRead8]
914  (size_t)(9), ///< [BsDynaMsgIdReqRead16]
915  (size_t)(10), ///< [BsDynaMsgIdRspRead16]
916  (size_t)(12), ///< [BsDynaMsgIdReqWrite8]
917  (size_t)(6), ///< [BsDynaMsgIdRspWrite8]
918  (size_t)(13), ///< [BsDynaMsgIdReqWrite16]
919  (size_t)(6), ///< [BsDynaMsgIdRspWrite16]
920  (size_t)((3+(3+(3+(4+(10*DYNA_ID_NUMOF)))))),
921  ///< [BsDynaMsgIdReqSyncWrite]
922  (size_t)(6), ///< [BsDynaMsgIdReqPing]
923  (size_t)(6), ///< [BsDynaMsgIdRspPing]
924  (size_t)(6), ///< [BsDynaMsgIdReqReset]
925  (size_t)(9), ///< [BsDynaMsgIdReqSetHalfDuplexCtl]
926  (size_t)(0) ///< [BsDynaMsgIdNumOf]
927 };
928 
929 
930 //-----------------------------------------------------------------------------
931 // Functions
932 //-----------------------------------------------------------------------------
933 
934 /*!
935  * \brief Look up the message definition associated with the message id.
936  *
937  * \param eMsgId Message Id.
938  *
939  * \return
940  * On success, returns the pointer to the NMMsgDef_T.
941  * On error, NULL is returned.
942  */
943 const NMMsgDef_T * BsDynaLookupMsgDef( BsDynaMsgId_T eMsgId )
944 {
945  if( (uint_t)eMsgId >= (uint_t)BsDynaMsgIdNumOf )
946  {
947  return NULL;
948  }
949  else
950  {
951  return BsDynaMsgDefLookupTbl[(uint_t)eMsgId];
952  }
953 }
954 
955 /*!
956  * \brief Look up the message maximum length associated with the message id.
957  *
958  * The maximum length is the total number of packed bytes possible for the
959  * given message. The message may be much shorter.
960  *
961  * \param eMsgId Message Id.
962  *
963  * \return
964  * On success, returns the number of bytes.
965  * On error, 0 is returned.
966  */
968 {
969  if( (uint_t)eMsgId >= (uint_t)BsDynaMsgIdNumOf )
970  {
971  return (size_t)0;
972  }
973  else
974  {
975  return BsDynaMsgMaxLenLookupTbl[(uint_t)eMsgId];
976  }
977 }
978 
979 /*!
980  * \brief Pack a ITV message in big-endian byte order.
981  *
982  * \param eMsgId Message Id.
983  * \param [in] pStruct Pointer to the associated, populated message
984  * structure.
985  * \param [out] buf Output message buffer.
986  * \param bufSize Size of output buffer.
987  * \param bTrace Do [not] trace packing.
988  *
989  * \return
990  * On success, returns the number of bytes packed.
991  * On error, returns the appropriate < 0 negated NM_ECODE.
992  */
994  void * pStruct,
995  byte_t buf[],
996  size_t bufSize,
997  bool_t bTrace )
998 {
999  const NMMsgDef_T *pMsgDef;
1000 
1001  if( (pMsgDef = BsDynaLookupMsgDef(eMsgId)) == NULL )
1002  {
1003  LOGERROR("%s(ecode=%d): msgid=%u.",
1004  nmStrError(NM_ECODE_MSGID), NM_ECODE_MSGID, eMsgId);
1005  return -NM_ECODE_MSGID;
1006  }
1007 
1008  if( bTrace )
1009  {
1010  return nmPackITVMsgDebug(pMsgDef, pStruct, buf, bufSize, NMEndianBig);
1011  }
1012  else
1013  {
1014  return nmPackITVMsg(pMsgDef, pStruct, buf, bufSize, NMEndianBig);
1015  }
1016 }
1017 
1018 /*!
1019  * \brief Unpack a ITV message in big-endian byte order.
1020  *
1021  * \param eMsgId Message Id.
1022  * \param [in] buf Input message buffer.
1023  * \param uMsgLen Length of message (bytes) in input buffer.
1024  * \param [out] pStruct Pointer to the associated message structure.
1025  * \param bTrace Do [not] trace packing.
1026  *
1027  * \return
1028  * On success, returns the number of bytes unpacked.
1029  * On error, returns the appropriate < 0 negated NM_ECODE.
1030  */
1032  byte_t buf[],
1033  size_t uMsgLen,
1034  void * pStruct,
1035  bool_t bTrace )
1036 {
1037  const NMMsgDef_T *pMsgDef;
1038 
1039  if( (pMsgDef = BsDynaLookupMsgDef(eMsgId)) == NULL )
1040  {
1041  LOGERROR("%s(ecode=%d): msgid=%u.",
1042  nmStrError(NM_ECODE_MSGID), NM_ECODE_MSGID, eMsgId);
1043  return -NM_ECODE_MSGID;
1044  }
1045 
1046  if( bTrace )
1047  {
1048  return nmUnpackITVMsgDebug(pMsgDef, buf, uMsgLen, pStruct, NMEndianBig);
1049  }
1050  else
1051  {
1052  return nmUnpackITVMsg(pMsgDef, buf, uMsgLen, pStruct, NMEndianBig);
1053  }
1054 }
1055 
BsDynaReqRead16FId_T
Definition: bsDynaMsgs.c:298
reserved field id
Definition: bsDynaMsgs.c:757
val field id
Definition: bsDynaMsgs.c:357
static const NMMsgDef_T BsDynaReqWrite16MsgDef
Definition: bsDynaMsgs.c:568
reserved field id
Definition: bsDynaMsgs.c:713
BsDynaReqOpenArgsFId_T
Definition: bsDynaMsgs.c:100
addr field id
Definition: bsDynaMsgs.c:192
number of fields
Definition: bsDynaMsgs.c:193
alarms field id
Definition: bsDynaMsgs.c:587
reserved field id
Definition: bsDynaMsgs.c:520
int BsDynaUnpackMsg(BsDynaMsgId_T eMsgId, byte_t buf[], size_t uMsgLen, void *pStruct, bool_t bTrace)
Unpack a ITV message in big-endian byte order.
Definition: bsDynaMsgs.c:1031
baudrate field id
Definition: bsDynaMsgs.c:103
static const NMFieldDef_T BsDynaRspWrite16FieldDefs[]
Definition: bsDynaMsgs.c:594
ReqSetBaudRate.
Definition: bsDynaMsgs.h:40
BsDynaRspRead8FId_T
Definition: bsDynaMsgs.c:243
static const NMFieldDef_T BsDynaReqSyncWritetuplesFieldDef[]
Definition: bsDynaMsgs.c:628
static const NMFieldDef_T BsDynaReqWrite16FieldDefs[]
Definition: bsDynaMsgs.c:530
BsDynaReqRead8FId_T
Definition: bsDynaMsgs.c:188
static const NMFieldDef_T BsDynaReqSyncWriteFieldDefs[]
Definition: bsDynaMsgs.c:655
static const NMMsgDef_T BsDynaRspRead8MsgDef
Definition: bsDynaMsgs.c:282
number of fields
Definition: bsDynaMsgs.c:50
reserved field id
Definition: bsDynaMsgs.c:410
servo_id field id
Definition: bsDynaMsgs.c:714
alarms field id
Definition: bsDynaMsgs.c:246
reserved field id
Definition: bsDynaMsgs.c:476
static const NMFieldDef_T BsDynaRspPingFieldDefs[]
Definition: bsDynaMsgs.c:765
static const NMFieldDef_T BsDynaReqWrite8FieldDefs[]
Definition: bsDynaMsgs.c:420
ReqSetHalfDuplexCtl.
Definition: bsDynaMsgs.h:53
addr field id
Definition: bsDynaMsgs.c:522
number of fields
Definition: bsDynaMsgs.c:759
BsDynaRspWrite16FId_T
Definition: bsDynaMsgs.c:584
number of fields
Definition: bsDynaMsgs.c:799
servo_id field id
Definition: bsDynaMsgs.c:521
static const NMMsgDef_T BsDynaRspRead16MsgDef
Definition: bsDynaMsgs.c:392
reserved field id
Definition: bsDynaMsgs.c:190
RspWrite16.
Definition: bsDynaMsgs.h:48
servo_id field id
Definition: bsDynaMsgs.c:48
static const NMMsgDef_T BsDynaReqRead16MsgDef
Definition: bsDynaMsgs.c:337
reserved field id
Definition: bsDynaMsgs.c:245
static const NMFieldDef_T BsDynaReqPingFieldDefs[]
Definition: bsDynaMsgs.c:721
int BsDynaPackMsg(BsDynaMsgId_T eMsgId, void *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a ITV message in big-endian byte order.
Definition: bsDynaMsgs.c:993
#define DYNA_ID_NUMOF
number of unique servo id&#39;s
Definition: Dynamixel.h:148
number of fields
Definition: bsDynaMsgs.c:649
ReqOpenArgs.
Definition: bsDynaMsgs.h:39
static const NMMsgDef_T BsDynaReqSetBaudRateMsgDef
Definition: bsDynaMsgs.c:172
number of fields
Definition: bsDynaMsgs.c:715
reserved field id
Definition: bsDynaMsgs.c:47
BsDynaRspRead16FId_T
Definition: bsDynaMsgs.c:353
alarms field id
Definition: bsDynaMsgs.c:477
BsDynaRspWrite8FId_T
Definition: bsDynaMsgs.c:474
addr field id
Definition: bsDynaMsgs.c:302
reserved field id
Definition: bsDynaMsgs.c:102
BsDynaReqSetBaudRateFId_T
Definition: bsDynaMsgs.c:144
static const NMMsgDef_T BsDynaRspPingMsgDef
Definition: bsDynaMsgs.c:779
const NMMsgDef_T * BsDynaMsgDefLookupTbl[]
Definition: bsDynaMsgs.c:883
static const NMMsgDef_T BsDynaReqOpenArgsMsgDef
Definition: bsDynaMsgs.c:128
size_t BsDynaMsgMaxLenLookupTbl[]
Definition: bsDynaMsgs.c:907
ReqSyncWrite.
Definition: bsDynaMsgs.h:49
static const NMMsgDef_T BsDynaWriteTupleMsgDef
Definition: bsDynaMsgs.c:84
static const NMMsgDef_T BsDynaRspWrite8MsgDef
Definition: bsDynaMsgs.c:502
static const NMFieldDef_T BsDynaReqRead16FieldDefs[]
Definition: bsDynaMsgs.c:309
ReqWrite16.
Definition: bsDynaMsgs.h:47
size_t BsDynaLookupMsgMaxLen(BsDynaMsgId_T eMsgId)
Look up the message maximum length associated with the message id.
Definition: bsDynaMsgs.c:967
number of message ids
Definition: bsDynaMsgs.h:54
val field id
Definition: bsDynaMsgs.c:49
val field id
Definition: bsDynaMsgs.c:413
static const NMMsgDef_T BsDynaReqRead8MsgDef
Definition: bsDynaMsgs.c:227
BsDynaWriteTupleFId_T
Definition: bsDynaMsgs.c:45
static const NMMsgDef_T BsDynaReqPingMsgDef
Definition: bsDynaMsgs.c:739
val field id
Definition: bsDynaMsgs.c:247
static const NMMsgDef_T BsDynaReqWrite8MsgDef
Definition: bsDynaMsgs.c:458
number of fields
Definition: bsDynaMsgs.c:414
reserved field id
Definition: bsDynaMsgs.c:797
static const NMFieldDef_T BsDynaReqSetBaudRateFieldDefs[]
Definition: bsDynaMsgs.c:154
static const NMFieldDef_T BsDynaRspRead16FieldDefs[]
Definition: bsDynaMsgs.c:364
BsDynaMsgId_T
Definition: bsDynaMsgs.h:36
static const NMFieldDef_T BsDynaRspRead8FieldDefs[]
Definition: bsDynaMsgs.c:254
BsDynaReqSyncWriteFId_T
Definition: bsDynaMsgs.c:643
BsDynaRspPingFId_T
Definition: bsDynaMsgs.c:755
static const NMMsgDef_T BsDynaReqSetHalfDuplexCtlMsgDef
Definition: bsDynaMsgs.c:867
static const NMFieldDef_T BsDynaWriteTupleFieldDefs[]
Definition: bsDynaMsgs.c:56
number of fields
Definition: bsDynaMsgs.c:248
number of fields
Definition: bsDynaMsgs.c:524
BsDynaReqWrite16FId_T
Definition: bsDynaMsgs.c:518
no message
Definition: bsDynaMsgs.h:38
Server/Client Dynamixel NetMsgs XML Definitions.
static const NMFieldDef_T BsDynaReqResetFieldDefs[]
Definition: bsDynaMsgs.c:805
#define EOFDEF
Definition: bsDynaMsgs.c:29
BsDynaReqResetFId_T
Definition: bsDynaMsgs.c:795
number of fields
Definition: bsDynaMsgs.c:588
reserved field id
Definition: bsDynaMsgs.c:586
number of fields
Definition: bsDynaMsgs.c:303
addr field id
Definition: bsDynaMsgs.c:412
static const NMMsgDef_T BsDynaReqResetMsgDef
Definition: bsDynaMsgs.c:823
reserved field id
Definition: bsDynaMsgs.c:355
static const NMFieldDef_T BsDynaRspWrite8FieldDefs[]
Definition: bsDynaMsgs.c:484
servo_id field id
Definition: bsDynaMsgs.c:191
static const NMMsgDef_T BsDynaReqSyncWriteMsgDef
Definition: bsDynaMsgs.c:695
static const NMFieldDef_T BsDynaReqOpenArgsFieldDefs[]
Definition: bsDynaMsgs.c:110
servo_id field id
Definition: bsDynaMsgs.c:301
BsDynaReqWrite8FId_T
Definition: bsDynaMsgs.c:408
number of fields
Definition: bsDynaMsgs.c:358
data_size field id
Definition: bsDynaMsgs.c:647
BsDynaReqSetHalfDuplexCtlFId_T
Definition: bsDynaMsgs.c:839
pong field id
Definition: bsDynaMsgs.c:758
reserved field id
Definition: bsDynaMsgs.c:300
servo_id field id
Definition: bsDynaMsgs.c:798
static const NMFieldDef_T BsDynaReqRead8FieldDefs[]
Definition: bsDynaMsgs.c:199
static const NMMsgDef_T BsDynaRspWrite16MsgDef
Definition: bsDynaMsgs.c:612
number of fields
Definition: bsDynaMsgs.c:478
static const NMFieldDef_T BsDynaReqSetHalfDuplexCtlFieldDefs[]
Definition: bsDynaMsgs.c:849
alarms field id
Definition: bsDynaMsgs.c:356
servo_id field id
Definition: bsDynaMsgs.c:411
BsDynaReqPingFId_T
Definition: bsDynaMsgs.c:711
const NMMsgDef_T * BsDynaLookupMsgDef(BsDynaMsgId_T eMsgId)
Look up the message definition associated with the message id.
Definition: bsDynaMsgs.c:943
reserved field id
Definition: bsDynaMsgs.c:645
number of fields
Definition: bsDynaMsgs.c:104