gusimplewhiteboard
wb_hal_arm_target.c
Go to the documentation of this file.
1/*
2 * file wb_hal_arm_target.c
3 *
4 * This file was generated by classgenerator from hal_arm_target.gen.
5 * DO NOT CHANGE MANUALLY!
6 *
7 * Copyright © 2021 Dimitri Joukoff. All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above
17 * copyright notice, this list of conditions and the following
18 * disclaimer in the documentation and/or other materials
19 * provided with the distribution.
20 *
21 * 3. All advertising materials mentioning features or use of this
22 * software must display the following acknowledgement:
23 *
24 * This product includes software developed by Dimitri Joukoff.
25 *
26 * 4. Neither the name of the author nor the names of contributors
27 * may be used to endorse or promote products derived from this
28 * software without specific prior written permission.
29 *
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
31 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
32 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
33 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
34 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
35 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
36 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
37 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
38 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
39 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41 *
42 * -----------------------------------------------------------------------
43 * This program is free software; you can redistribute it and/or
44 * modify it under the above terms or under the terms of the GNU
45 * General Public License as published by the Free Software Foundation;
46 * either version 2 of the License, or (at your option) any later version.
47 *
48 * This program is distributed in the hope that it will be useful,
49 * but WITHOUT ANY WARRANTY; without even the implied warranty of
50 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51 * GNU General Public License for more details.
52 *
53 * You should have received a copy of the GNU General Public License
54 * along with this program; if not, see http://www.gnu.org/licenses/
55 * or write to the Free Software Foundation, Inc., 51 Franklin Street,
56 * Fifth Floor, Boston, MA 02110-1301, USA.
57 *
58 */
59
60#ifndef WHITEBOARD_POSTER_STRING_CONVERSION
61#define WHITEBOARD_POSTER_STRING_CONVERSION
62#endif // WHITEBOARD_POSTER_STRING_CONVERSION
63
64#include "wb_hal_arm_target.h"
65#include <stdio.h>
66#include <string.h>
67#include <stdlib.h>
68#include <ctype.h>
69#include <limits.h>
70
71/* Network byte order functions */
72#pragma clang diagnostic push
73#pragma clang diagnostic ignored "-Wunused-macros"
74#if defined(__linux)
75# include <endian.h>
76# include <byteswap.h>
77#elif defined(__APPLE__)
78# include <machine/endian.h> //Needed for __BYTE_ORDER
79# include <architecture/byte_order.h> //Needed for byte swap functions
80# define bswap_16(x) NXSwapShort(x)
81# define bswap_32(x) NXSwapInt(x)
82# define bswap_64(x) NXSwapLongLong(x)
83#elif defined(ESP8266)
84# define bswap_16(x) __builtin_bswap16(x)
85# define bswap_32(x) __builtin_bswap32(x)
86# define bswap_64(x) __builtin_bswap64(x)
87#else
88 //Manually define swap macros?
89#endif
90
91#if (!defined(__BYTE_ORDER) && !defined(__LITTLE_ENDIAN)) || (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN)
92# if !defined(htonll) && !defined(ntohll)
93# define htonll(x) bswap_64(x)
94# define ntohll(x) bswap_64(x)
95# endif
96# if !defined(htonl) && !defined(ntohl)
97# define htonl(x) bswap_32(x)
98# define ntohl(x) bswap_32(x)
99# endif
100# if !defined(htons) && !defined(ntohs)
101# define htons(x) bswap_16(x)
102# define ntohs(x) bswap_16(x)
103# endif
104#else
105# if !defined(htonll) && !defined(ntohll)
106# define htonll(x) (x)
107# define ntohll(x) (x)
108# endif
109# if !defined(htonl) && !defined(ntohl)
110# define htonl(x) (x)
111# define ntohl(x) (x)
112# endif
113# if !defined(htons) && !defined(ntohs)
114# define htons(x) (x)
115# define ntohs(x) (x)
116# endif
117#endif
118#pragma clang diagnostic pop
119
120#ifdef WHITEBOARD_POSTER_STRING_CONVERSION
124const char* wb_hal_arm_target_value_description(const struct wb_hal_arm_target* self, char* toString, size_t bufferSize)
125{
126#pragma clang diagnostic push
127#pragma clang diagnostic ignored "-Wunused-variable"
128 size_t len = 0;
129 if (len >= bufferSize) {
130 return toString;
131 }
132 len += snprintf(toString + len, bufferSize - len, "%d", self->target_shoulderpitch);
133 if (len >= bufferSize) {
134 return toString;
135 }
136 len = gu_strlcat(toString, " | ", bufferSize);
137 if (len >= bufferSize) {
138 return toString;
139 }
140 len += snprintf(toString + len, bufferSize - len, "%d", self->target_shoulderroll);
141 if (len >= bufferSize) {
142 return toString;
143 }
144 len = gu_strlcat(toString, " | ", bufferSize);
145 if (len >= bufferSize) {
146 return toString;
147 }
148 len += snprintf(toString + len, bufferSize - len, "%d", self->target_elbowroll);
149 if (len >= bufferSize) {
150 return toString;
151 }
152 len = gu_strlcat(toString, " | ", bufferSize);
153 if (len >= bufferSize) {
154 return toString;
155 }
156 len += snprintf(toString + len, bufferSize - len, "%d", self->target_elbowyaw);
157 if (len >= bufferSize) {
158 return toString;
159 }
160 len = gu_strlcat(toString, " | ", bufferSize);
161 if (len >= bufferSize) {
162 return toString;
163 }
164 len += snprintf(toString + len, bufferSize - len, "%d", self->target_wristyaw);
165 if (len >= bufferSize) {
166 return toString;
167 }
168 len = gu_strlcat(toString, " | ", bufferSize);
169 if (len >= bufferSize) {
170 return toString;
171 }
172 len += snprintf(toString + len, bufferSize - len, "%u", self->target_hand);
173 if (len >= bufferSize) {
174 return toString;
175 }
176 len = gu_strlcat(toString, " | ", bufferSize);
177 if (len >= bufferSize) {
178 return toString;
179 }
180 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderpitchstiffness);
181 if (len >= bufferSize) {
182 return toString;
183 }
184 len = gu_strlcat(toString, " | ", bufferSize);
185 if (len >= bufferSize) {
186 return toString;
187 }
188 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderrollstiffness);
189 if (len >= bufferSize) {
190 return toString;
191 }
192 len = gu_strlcat(toString, " | ", bufferSize);
193 if (len >= bufferSize) {
194 return toString;
195 }
196 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowrollstiffness);
197 if (len >= bufferSize) {
198 return toString;
199 }
200 len = gu_strlcat(toString, " | ", bufferSize);
201 if (len >= bufferSize) {
202 return toString;
203 }
204 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowyawstiffness);
205 if (len >= bufferSize) {
206 return toString;
207 }
208 len = gu_strlcat(toString, " | ", bufferSize);
209 if (len >= bufferSize) {
210 return toString;
211 }
212 len += snprintf(toString + len, bufferSize - len, "%u", self->target_wristyawstiffness);
213 if (len >= bufferSize) {
214 return toString;
215 }
216 len = gu_strlcat(toString, " | ", bufferSize);
217 if (len >= bufferSize) {
218 return toString;
219 }
220 len += snprintf(toString + len, bufferSize - len, "%u", self->target_handstiffness);
221 if (len >= bufferSize) {
222 return toString;
223 }
224 len = gu_strlcat(toString, " | ", bufferSize);
225 if (len >= bufferSize) {
226 return toString;
227 }
228 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderpitch_active);
229 if (len >= bufferSize) {
230 return toString;
231 }
232 len = gu_strlcat(toString, " | ", bufferSize);
233 if (len >= bufferSize) {
234 return toString;
235 }
236 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderroll_active);
237 if (len >= bufferSize) {
238 return toString;
239 }
240 len = gu_strlcat(toString, " | ", bufferSize);
241 if (len >= bufferSize) {
242 return toString;
243 }
244 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowroll_active);
245 if (len >= bufferSize) {
246 return toString;
247 }
248 len = gu_strlcat(toString, " | ", bufferSize);
249 if (len >= bufferSize) {
250 return toString;
251 }
252 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowyaw_active);
253 if (len >= bufferSize) {
254 return toString;
255 }
256 len = gu_strlcat(toString, " | ", bufferSize);
257 if (len >= bufferSize) {
258 return toString;
259 }
260 len += snprintf(toString + len, bufferSize - len, "%u", self->target_wrist_active);
261 if (len >= bufferSize) {
262 return toString;
263 }
264 len = gu_strlcat(toString, " | ", bufferSize);
265 if (len >= bufferSize) {
266 return toString;
267 }
268 len += snprintf(toString + len, bufferSize - len, "%u", self->target_hand_active);
269 if (len >= bufferSize) {
270 return toString;
271 }
272 len = gu_strlcat(toString, " | ", bufferSize);
273 if (len >= bufferSize) {
274 return toString;
275 }
276 len += snprintf(toString + len, bufferSize - len, "%d", self->target_movement_time);
277 if (len >= bufferSize) {
278 return toString;
279 }
280 len = gu_strlcat(toString, " | ", bufferSize);
281 if (len >= bufferSize) {
282 return toString;
283 }
284 len += snprintf(toString + len, bufferSize - len, "%u", self->target_pliability);
285 if (len >= bufferSize) {
286 return toString;
287 }
288 len = gu_strlcat(toString, " | ", bufferSize);
289 if (len >= bufferSize) {
290 return toString;
291 }
292 len += snprintf(toString + len, bufferSize - len, "%u", self->target_arm_at_goal);
293 if (len >= bufferSize) {
294 return toString;
295 }
296 len = gu_strlcat(toString, " | ", bufferSize);
297 if (len >= bufferSize) {
298 return toString;
299 }
300 len += snprintf(toString + len, bufferSize - len, "%u", self->target_arm_stop);
301 return toString;
302}
303#endif // WHITEBOARD_POSTER_STRING_CONVERSION
304
305
306
310const char* wb_hal_arm_target_description(const struct wb_hal_arm_target* self, char* descString, size_t bufferSize)
311{
312#pragma clang diagnostic push
313#pragma clang diagnostic ignored "-Wunused-variable"
314 size_t len = 0;
315 if (len >= bufferSize) {
316 return descString;
317 }
318 len += snprintf(descString + len, bufferSize - len, "target_movement_time=%d", self->target_movement_time);
319 if (len >= bufferSize) {
320 return descString;
321 }
322 len = gu_strlcat(descString, ", ", bufferSize);
323 if (len >= bufferSize) {
324 return descString;
325 }
326 len += snprintf(descString + len, bufferSize - len, "target_shoulderpitch=%d", self->target_shoulderpitch);
327 if (len >= bufferSize) {
328 return descString;
329 }
330 len = gu_strlcat(descString, ", ", bufferSize);
331 if (len >= bufferSize) {
332 return descString;
333 }
334 len += snprintf(descString + len, bufferSize - len, "target_shoulderroll=%d", self->target_shoulderroll);
335 if (len >= bufferSize) {
336 return descString;
337 }
338 len = gu_strlcat(descString, ", ", bufferSize);
339 if (len >= bufferSize) {
340 return descString;
341 }
342 len += snprintf(descString + len, bufferSize - len, "target_elbowroll=%d", self->target_elbowroll);
343 if (len >= bufferSize) {
344 return descString;
345 }
346 len = gu_strlcat(descString, ", ", bufferSize);
347 if (len >= bufferSize) {
348 return descString;
349 }
350 len += snprintf(descString + len, bufferSize - len, "target_elbowyaw=%d", self->target_elbowyaw);
351 if (len >= bufferSize) {
352 return descString;
353 }
354 len = gu_strlcat(descString, ", ", bufferSize);
355 if (len >= bufferSize) {
356 return descString;
357 }
358 len += snprintf(descString + len, bufferSize - len, "target_wristyaw=%d", self->target_wristyaw);
359 if (len >= bufferSize) {
360 return descString;
361 }
362 len = gu_strlcat(descString, ", ", bufferSize);
363 if (len >= bufferSize) {
364 return descString;
365 }
366 len += snprintf(descString + len, bufferSize - len, "target_arm=%u", self->target_arm);
367 if (len >= bufferSize) {
368 return descString;
369 }
370 len = gu_strlcat(descString, ", ", bufferSize);
371 if (len >= bufferSize) {
372 return descString;
373 }
374 len += snprintf(descString + len, bufferSize - len, "target_hand=%u", self->target_hand);
375 if (len >= bufferSize) {
376 return descString;
377 }
378 len = gu_strlcat(descString, ", ", bufferSize);
379 if (len >= bufferSize) {
380 return descString;
381 }
382 len += snprintf(descString + len, bufferSize - len, "target_shoulderpitchstiffness=%u", self->target_shoulderpitchstiffness);
383 if (len >= bufferSize) {
384 return descString;
385 }
386 len = gu_strlcat(descString, ", ", bufferSize);
387 if (len >= bufferSize) {
388 return descString;
389 }
390 len += snprintf(descString + len, bufferSize - len, "target_shoulderrollstiffness=%u", self->target_shoulderrollstiffness);
391 if (len >= bufferSize) {
392 return descString;
393 }
394 len = gu_strlcat(descString, ", ", bufferSize);
395 if (len >= bufferSize) {
396 return descString;
397 }
398 len += snprintf(descString + len, bufferSize - len, "target_elbowrollstiffness=%u", self->target_elbowrollstiffness);
399 if (len >= bufferSize) {
400 return descString;
401 }
402 len = gu_strlcat(descString, ", ", bufferSize);
403 if (len >= bufferSize) {
404 return descString;
405 }
406 len += snprintf(descString + len, bufferSize - len, "target_elbowyawstiffness=%u", self->target_elbowyawstiffness);
407 if (len >= bufferSize) {
408 return descString;
409 }
410 len = gu_strlcat(descString, ", ", bufferSize);
411 if (len >= bufferSize) {
412 return descString;
413 }
414 len += snprintf(descString + len, bufferSize - len, "target_wristyawstiffness=%u", self->target_wristyawstiffness);
415 if (len >= bufferSize) {
416 return descString;
417 }
418 len = gu_strlcat(descString, ", ", bufferSize);
419 if (len >= bufferSize) {
420 return descString;
421 }
422 len += snprintf(descString + len, bufferSize - len, "target_handstiffness=%u", self->target_handstiffness);
423 if (len >= bufferSize) {
424 return descString;
425 }
426 len = gu_strlcat(descString, ", ", bufferSize);
427 if (len >= bufferSize) {
428 return descString;
429 }
430 len += snprintf(descString + len, bufferSize - len, "target_pliability=%u", self->target_pliability);
431 if (len >= bufferSize) {
432 return descString;
433 }
434 len = gu_strlcat(descString, ", ", bufferSize);
435 if (len >= bufferSize) {
436 return descString;
437 }
438 len += snprintf(descString + len, bufferSize - len, "target_shoulderpitch_active=%u", self->target_shoulderpitch_active);
439 if (len >= bufferSize) {
440 return descString;
441 }
442 len = gu_strlcat(descString, ", ", bufferSize);
443 if (len >= bufferSize) {
444 return descString;
445 }
446 len += snprintf(descString + len, bufferSize - len, "target_shoulderroll_active=%u", self->target_shoulderroll_active);
447 if (len >= bufferSize) {
448 return descString;
449 }
450 len = gu_strlcat(descString, ", ", bufferSize);
451 if (len >= bufferSize) {
452 return descString;
453 }
454 len += snprintf(descString + len, bufferSize - len, "target_elbowroll_active=%u", self->target_elbowroll_active);
455 if (len >= bufferSize) {
456 return descString;
457 }
458 len = gu_strlcat(descString, ", ", bufferSize);
459 if (len >= bufferSize) {
460 return descString;
461 }
462 len += snprintf(descString + len, bufferSize - len, "target_elbowyaw_active=%u", self->target_elbowyaw_active);
463 if (len >= bufferSize) {
464 return descString;
465 }
466 len = gu_strlcat(descString, ", ", bufferSize);
467 if (len >= bufferSize) {
468 return descString;
469 }
470 len += snprintf(descString + len, bufferSize - len, "target_wrist_active=%u", self->target_wrist_active);
471 if (len >= bufferSize) {
472 return descString;
473 }
474 len = gu_strlcat(descString, ", ", bufferSize);
475 if (len >= bufferSize) {
476 return descString;
477 }
478 len += snprintf(descString + len, bufferSize - len, "target_hand_active=%u", self->target_hand_active);
479 if (len >= bufferSize) {
480 return descString;
481 }
482 len = gu_strlcat(descString, ", ", bufferSize);
483 if (len >= bufferSize) {
484 return descString;
485 }
486 len += snprintf(descString + len, bufferSize - len, "target_arm_at_goal=%u", self->target_arm_at_goal);
487 if (len >= bufferSize) {
488 return descString;
489 }
490 len = gu_strlcat(descString, ", ", bufferSize);
491 if (len >= bufferSize) {
492 return descString;
493 }
494 len += snprintf(descString + len, bufferSize - len, "target_arm_stop=%u", self->target_arm_stop);
495 return descString;
496#pragma clang diagnostic pop
497}
498
502const char* wb_hal_arm_target_to_string(const struct wb_hal_arm_target* self, char* toString, size_t bufferSize)
503{
504#pragma clang diagnostic push
505#pragma clang diagnostic ignored "-Wunused-variable"
506 size_t len = 0;
507 if (len >= bufferSize) {
508 return toString;
509 }
510 len += snprintf(toString + len, bufferSize - len, "%d", self->target_movement_time);
511 if (len >= bufferSize) {
512 return toString;
513 }
514 len = gu_strlcat(toString, ", ", bufferSize);
515 if (len >= bufferSize) {
516 return toString;
517 }
518 len += snprintf(toString + len, bufferSize - len, "%d", self->target_shoulderpitch);
519 if (len >= bufferSize) {
520 return toString;
521 }
522 len = gu_strlcat(toString, ", ", bufferSize);
523 if (len >= bufferSize) {
524 return toString;
525 }
526 len += snprintf(toString + len, bufferSize - len, "%d", self->target_shoulderroll);
527 if (len >= bufferSize) {
528 return toString;
529 }
530 len = gu_strlcat(toString, ", ", bufferSize);
531 if (len >= bufferSize) {
532 return toString;
533 }
534 len += snprintf(toString + len, bufferSize - len, "%d", self->target_elbowroll);
535 if (len >= bufferSize) {
536 return toString;
537 }
538 len = gu_strlcat(toString, ", ", bufferSize);
539 if (len >= bufferSize) {
540 return toString;
541 }
542 len += snprintf(toString + len, bufferSize - len, "%d", self->target_elbowyaw);
543 if (len >= bufferSize) {
544 return toString;
545 }
546 len = gu_strlcat(toString, ", ", bufferSize);
547 if (len >= bufferSize) {
548 return toString;
549 }
550 len += snprintf(toString + len, bufferSize - len, "%d", self->target_wristyaw);
551 if (len >= bufferSize) {
552 return toString;
553 }
554 len = gu_strlcat(toString, ", ", bufferSize);
555 if (len >= bufferSize) {
556 return toString;
557 }
558 len += snprintf(toString + len, bufferSize - len, "%u", self->target_arm);
559 if (len >= bufferSize) {
560 return toString;
561 }
562 len = gu_strlcat(toString, ", ", bufferSize);
563 if (len >= bufferSize) {
564 return toString;
565 }
566 len += snprintf(toString + len, bufferSize - len, "%u", self->target_hand);
567 if (len >= bufferSize) {
568 return toString;
569 }
570 len = gu_strlcat(toString, ", ", bufferSize);
571 if (len >= bufferSize) {
572 return toString;
573 }
574 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderpitchstiffness);
575 if (len >= bufferSize) {
576 return toString;
577 }
578 len = gu_strlcat(toString, ", ", bufferSize);
579 if (len >= bufferSize) {
580 return toString;
581 }
582 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderrollstiffness);
583 if (len >= bufferSize) {
584 return toString;
585 }
586 len = gu_strlcat(toString, ", ", bufferSize);
587 if (len >= bufferSize) {
588 return toString;
589 }
590 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowrollstiffness);
591 if (len >= bufferSize) {
592 return toString;
593 }
594 len = gu_strlcat(toString, ", ", bufferSize);
595 if (len >= bufferSize) {
596 return toString;
597 }
598 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowyawstiffness);
599 if (len >= bufferSize) {
600 return toString;
601 }
602 len = gu_strlcat(toString, ", ", bufferSize);
603 if (len >= bufferSize) {
604 return toString;
605 }
606 len += snprintf(toString + len, bufferSize - len, "%u", self->target_wristyawstiffness);
607 if (len >= bufferSize) {
608 return toString;
609 }
610 len = gu_strlcat(toString, ", ", bufferSize);
611 if (len >= bufferSize) {
612 return toString;
613 }
614 len += snprintf(toString + len, bufferSize - len, "%u", self->target_handstiffness);
615 if (len >= bufferSize) {
616 return toString;
617 }
618 len = gu_strlcat(toString, ", ", bufferSize);
619 if (len >= bufferSize) {
620 return toString;
621 }
622 len += snprintf(toString + len, bufferSize - len, "%u", self->target_pliability);
623 if (len >= bufferSize) {
624 return toString;
625 }
626 len = gu_strlcat(toString, ", ", bufferSize);
627 if (len >= bufferSize) {
628 return toString;
629 }
630 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderpitch_active);
631 if (len >= bufferSize) {
632 return toString;
633 }
634 len = gu_strlcat(toString, ", ", bufferSize);
635 if (len >= bufferSize) {
636 return toString;
637 }
638 len += snprintf(toString + len, bufferSize - len, "%u", self->target_shoulderroll_active);
639 if (len >= bufferSize) {
640 return toString;
641 }
642 len = gu_strlcat(toString, ", ", bufferSize);
643 if (len >= bufferSize) {
644 return toString;
645 }
646 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowroll_active);
647 if (len >= bufferSize) {
648 return toString;
649 }
650 len = gu_strlcat(toString, ", ", bufferSize);
651 if (len >= bufferSize) {
652 return toString;
653 }
654 len += snprintf(toString + len, bufferSize - len, "%u", self->target_elbowyaw_active);
655 if (len >= bufferSize) {
656 return toString;
657 }
658 len = gu_strlcat(toString, ", ", bufferSize);
659 if (len >= bufferSize) {
660 return toString;
661 }
662 len += snprintf(toString + len, bufferSize - len, "%u", self->target_wrist_active);
663 if (len >= bufferSize) {
664 return toString;
665 }
666 len = gu_strlcat(toString, ", ", bufferSize);
667 if (len >= bufferSize) {
668 return toString;
669 }
670 len += snprintf(toString + len, bufferSize - len, "%u", self->target_hand_active);
671 if (len >= bufferSize) {
672 return toString;
673 }
674 len = gu_strlcat(toString, ", ", bufferSize);
675 if (len >= bufferSize) {
676 return toString;
677 }
678 len += snprintf(toString + len, bufferSize - len, "%u", self->target_arm_at_goal);
679 if (len >= bufferSize) {
680 return toString;
681 }
682 len = gu_strlcat(toString, ", ", bufferSize);
683 if (len >= bufferSize) {
684 return toString;
685 }
686 len += snprintf(toString + len, bufferSize - len, "%u", self->target_arm_stop);
687 return toString;
688#pragma clang diagnostic pop
689}
690
695{
696 size_t temp_length = strlen(str);
697 int length = (temp_length <= INT_MAX) ? ((int)((ssize_t)temp_length)) : -1;
698 if (length < 1 || length > HAL_ARM_TARGET_DESC_BUFFER_SIZE) {
699 return self;
700 }
701 char var_str_buffer[HAL_ARM_TARGET_DESC_BUFFER_SIZE + 1];
702 char* var_str = &var_str_buffer[0];
703 char key_buffer[30];
704 char* key = &key_buffer[0];
705 int bracecount = 0;
706 int startVar = 0;
707 int index = 0;
708 int startKey = 0;
709 int endKey = -1;
710 int varIndex = 0;
711 if (index == 0 && str[0] == '{') {
712 index = 1;
713 }
714 startVar = index;
715 startKey = startVar;
716 do {
717 for (int i = index; i < length; i++) {
718 index = i + 1;
719 if (bracecount == 0 && str[i] == '=') {
720 endKey = i - 1;
721 startVar = index;
722 continue;
723 }
724 if (bracecount == 0 && isspace(str[i])) {
725 startVar = index;
726 if (endKey == -1) {
727 startKey = index;
728 }
729 continue;
730 }
731 if (bracecount == 0 && str[i] == ',') {
732 index = i - 1;
733 break;
734 }
735 if (str[i] == '{') {
736 bracecount++;
737 continue;
738 }
739 if (str[i] == '}') {
740 bracecount--;
741 if (bracecount < 0) {
742 index = i - 1;
743 break;
744 }
745 }
746 if (i == length - 1) {
747 index = i;
748 }
749 }
750 if (endKey >= startKey && endKey - startKey < length) {
751 strncpy(key, str + startKey, ((size_t)(endKey - startKey) + 1));
752 key[(endKey - startKey) + 1] = 0;
753 } else {
754 key[0] = 0;
755 }
756 strncpy(var_str, str + startVar, ((size_t)(index - startVar) + 1));
757 var_str[(index - startVar) + 1] = 0;
758 bracecount = 0;
759 index += 2;
760 startVar = index;
761 startKey = startVar;
762 endKey = -1;
763 if (strlen(key) > 0) {
764 if (0 == strcmp("target_movement_time", key)) {
765 varIndex = 0;
766 } else if (0 == strcmp("target_shoulderpitch", key)) {
767 varIndex = 1;
768 } else if (0 == strcmp("target_shoulderroll", key)) {
769 varIndex = 2;
770 } else if (0 == strcmp("target_elbowroll", key)) {
771 varIndex = 3;
772 } else if (0 == strcmp("target_elbowyaw", key)) {
773 varIndex = 4;
774 } else if (0 == strcmp("target_wristyaw", key)) {
775 varIndex = 5;
776 } else if (0 == strcmp("target_arm", key)) {
777 varIndex = 6;
778 } else if (0 == strcmp("target_hand", key)) {
779 varIndex = 7;
780 } else if (0 == strcmp("target_shoulderpitchstiffness", key)) {
781 varIndex = 8;
782 } else if (0 == strcmp("target_shoulderrollstiffness", key)) {
783 varIndex = 9;
784 } else if (0 == strcmp("target_elbowrollstiffness", key)) {
785 varIndex = 10;
786 } else if (0 == strcmp("target_elbowyawstiffness", key)) {
787 varIndex = 11;
788 } else if (0 == strcmp("target_wristyawstiffness", key)) {
789 varIndex = 12;
790 } else if (0 == strcmp("target_handstiffness", key)) {
791 varIndex = 13;
792 } else if (0 == strcmp("target_pliability", key)) {
793 varIndex = 14;
794 } else if (0 == strcmp("target_shoulderpitch_active", key)) {
795 varIndex = 15;
796 } else if (0 == strcmp("target_shoulderroll_active", key)) {
797 varIndex = 16;
798 } else if (0 == strcmp("target_elbowroll_active", key)) {
799 varIndex = 17;
800 } else if (0 == strcmp("target_elbowyaw_active", key)) {
801 varIndex = 18;
802 } else if (0 == strcmp("target_wrist_active", key)) {
803 varIndex = 19;
804 } else if (0 == strcmp("target_hand_active", key)) {
805 varIndex = 20;
806 } else if (0 == strcmp("target_arm_at_goal", key)) {
807 varIndex = 21;
808 } else if (0 == strcmp("target_arm_stop", key)) {
809 varIndex = 22;
810 } else {
811 varIndex = -1;
812 }
813 }
814 switch (varIndex) {
815 case -1: { break; }
816 case 0:
817 {
818 self->target_movement_time = ((int32_t)atoi(var_str));
819 break;
820 }
821 case 1:
822 {
823 self->target_shoulderpitch = ((int16_t)atoi(var_str));
824 break;
825 }
826 case 2:
827 {
828 self->target_shoulderroll = ((int16_t)atoi(var_str));
829 break;
830 }
831 case 3:
832 {
833 self->target_elbowroll = ((int16_t)atoi(var_str));
834 break;
835 }
836 case 4:
837 {
838 self->target_elbowyaw = ((int16_t)atoi(var_str));
839 break;
840 }
841 case 5:
842 {
843 self->target_wristyaw = ((int16_t)atoi(var_str));
844 break;
845 }
846 case 6:
847 {
848 self->target_arm = ((uint8_t)atoi(var_str));
849 break;
850 }
851 case 7:
852 {
853 self->target_hand = ((uint8_t)atoi(var_str));
854 break;
855 }
856 case 8:
857 {
858 self->target_shoulderpitchstiffness = ((uint8_t)atoi(var_str));
859 break;
860 }
861 case 9:
862 {
863 self->target_shoulderrollstiffness = ((uint8_t)atoi(var_str));
864 break;
865 }
866 case 10:
867 {
868 self->target_elbowrollstiffness = ((uint8_t)atoi(var_str));
869 break;
870 }
871 case 11:
872 {
873 self->target_elbowyawstiffness = ((uint8_t)atoi(var_str));
874 break;
875 }
876 case 12:
877 {
878 self->target_wristyawstiffness = ((uint8_t)atoi(var_str));
879 break;
880 }
881 case 13:
882 {
883 self->target_handstiffness = ((uint8_t)atoi(var_str));
884 break;
885 }
886 case 14:
887 {
888 self->target_pliability = ((uint8_t)atoi(var_str));
889 break;
890 }
891 case 15:
892 {
893 self->target_shoulderpitch_active = ((unsigned int)atoi(var_str));
894 break;
895 }
896 case 16:
897 {
898 self->target_shoulderroll_active = ((unsigned int)atoi(var_str));
899 break;
900 }
901 case 17:
902 {
903 self->target_elbowroll_active = ((unsigned int)atoi(var_str));
904 break;
905 }
906 case 18:
907 {
908 self->target_elbowyaw_active = ((unsigned int)atoi(var_str));
909 break;
910 }
911 case 19:
912 {
913 self->target_wrist_active = ((unsigned int)atoi(var_str));
914 break;
915 }
916 case 20:
917 {
918 self->target_hand_active = ((unsigned int)atoi(var_str));
919 break;
920 }
921 case 21:
922 {
923 self->target_arm_at_goal = ((unsigned int)atoi(var_str));
924 break;
925 }
926 case 22:
927 {
928 self->target_arm_stop = ((unsigned int)atoi(var_str));
929 break;
930 }
931 }
932 if (varIndex >= 0) {
933 varIndex++;
934 }
935 } while(index < length);
936 return self;
937}
938
939/*#ifdef WHITEBOARD_SERIALISATION*/
940
945{
946 uint16_t bit_offset = 0;
947 int32_t target_movement_time_nbo = htonl(self->target_movement_time);
948 do {
949 int8_t b;
950 for (b = (32 - 1); b >= 0; b--) {
951 do {
952 uint16_t byte = bit_offset / 8;
953 uint16_t bit = 7 - (bit_offset % 8);
954 unsigned long newbit = !!((target_movement_time_nbo >> b) & 1U);
955 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
956 bit_offset = bit_offset + 1;
957 } while(false);
958 }
959 } while(false);
960
961 int16_t target_shoulderpitch_nbo = htons(self->target_shoulderpitch);
962 do {
963 int8_t b;
964 for (b = (16 - 1); b >= 0; b--) {
965 do {
966 uint16_t byte = bit_offset / 8;
967 uint16_t bit = 7 - (bit_offset % 8);
968 unsigned long newbit = !!((target_shoulderpitch_nbo >> b) & 1U);
969 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
970 bit_offset = bit_offset + 1;
971 } while(false);
972 }
973 } while(false);
974
975 int16_t target_shoulderroll_nbo = htons(self->target_shoulderroll);
976 do {
977 int8_t b;
978 for (b = (16 - 1); b >= 0; b--) {
979 do {
980 uint16_t byte = bit_offset / 8;
981 uint16_t bit = 7 - (bit_offset % 8);
982 unsigned long newbit = !!((target_shoulderroll_nbo >> b) & 1U);
983 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
984 bit_offset = bit_offset + 1;
985 } while(false);
986 }
987 } while(false);
988
989 int16_t target_elbowroll_nbo = htons(self->target_elbowroll);
990 do {
991 int8_t b;
992 for (b = (16 - 1); b >= 0; b--) {
993 do {
994 uint16_t byte = bit_offset / 8;
995 uint16_t bit = 7 - (bit_offset % 8);
996 unsigned long newbit = !!((target_elbowroll_nbo >> b) & 1U);
997 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
998 bit_offset = bit_offset + 1;
999 } while(false);
1000 }
1001 } while(false);
1002
1003 int16_t target_elbowyaw_nbo = htons(self->target_elbowyaw);
1004 do {
1005 int8_t b;
1006 for (b = (16 - 1); b >= 0; b--) {
1007 do {
1008 uint16_t byte = bit_offset / 8;
1009 uint16_t bit = 7 - (bit_offset % 8);
1010 unsigned long newbit = !!((target_elbowyaw_nbo >> b) & 1U);
1011 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1012 bit_offset = bit_offset + 1;
1013 } while(false);
1014 }
1015 } while(false);
1016
1017 int16_t target_wristyaw_nbo = htons(self->target_wristyaw);
1018 do {
1019 int8_t b;
1020 for (b = (16 - 1); b >= 0; b--) {
1021 do {
1022 uint16_t byte = bit_offset / 8;
1023 uint16_t bit = 7 - (bit_offset % 8);
1024 unsigned long newbit = !!((target_wristyaw_nbo >> b) & 1U);
1025 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1026 bit_offset = bit_offset + 1;
1027 } while(false);
1028 }
1029 } while(false);
1030
1031 uint8_t target_arm_nbo = (self->target_arm);
1032 do {
1033 int8_t b;
1034 for (b = (8 - 1); b >= 0; b--) {
1035 do {
1036 uint16_t byte = bit_offset / 8;
1037 uint16_t bit = 7 - (bit_offset % 8);
1038 unsigned long newbit = !!((target_arm_nbo >> b) & 1U);
1039 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1040 bit_offset = bit_offset + 1;
1041 } while(false);
1042 }
1043 } while(false);
1044
1045 uint8_t target_hand_nbo = (self->target_hand);
1046 do {
1047 int8_t b;
1048 for (b = (8 - 1); b >= 0; b--) {
1049 do {
1050 uint16_t byte = bit_offset / 8;
1051 uint16_t bit = 7 - (bit_offset % 8);
1052 unsigned long newbit = !!((target_hand_nbo >> b) & 1U);
1053 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1054 bit_offset = bit_offset + 1;
1055 } while(false);
1056 }
1057 } while(false);
1058
1059 uint8_t target_shoulderpitchstiffness_nbo = (self->target_shoulderpitchstiffness);
1060 do {
1061 int8_t b;
1062 for (b = (8 - 1); b >= 0; b--) {
1063 do {
1064 uint16_t byte = bit_offset / 8;
1065 uint16_t bit = 7 - (bit_offset % 8);
1066 unsigned long newbit = !!((target_shoulderpitchstiffness_nbo >> b) & 1U);
1067 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1068 bit_offset = bit_offset + 1;
1069 } while(false);
1070 }
1071 } while(false);
1072
1073 uint8_t target_shoulderrollstiffness_nbo = (self->target_shoulderrollstiffness);
1074 do {
1075 int8_t b;
1076 for (b = (8 - 1); b >= 0; b--) {
1077 do {
1078 uint16_t byte = bit_offset / 8;
1079 uint16_t bit = 7 - (bit_offset % 8);
1080 unsigned long newbit = !!((target_shoulderrollstiffness_nbo >> b) & 1U);
1081 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1082 bit_offset = bit_offset + 1;
1083 } while(false);
1084 }
1085 } while(false);
1086
1087 uint8_t target_elbowrollstiffness_nbo = (self->target_elbowrollstiffness);
1088 do {
1089 int8_t b;
1090 for (b = (8 - 1); b >= 0; b--) {
1091 do {
1092 uint16_t byte = bit_offset / 8;
1093 uint16_t bit = 7 - (bit_offset % 8);
1094 unsigned long newbit = !!((target_elbowrollstiffness_nbo >> b) & 1U);
1095 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1096 bit_offset = bit_offset + 1;
1097 } while(false);
1098 }
1099 } while(false);
1100
1101 uint8_t target_elbowyawstiffness_nbo = (self->target_elbowyawstiffness);
1102 do {
1103 int8_t b;
1104 for (b = (8 - 1); b >= 0; b--) {
1105 do {
1106 uint16_t byte = bit_offset / 8;
1107 uint16_t bit = 7 - (bit_offset % 8);
1108 unsigned long newbit = !!((target_elbowyawstiffness_nbo >> b) & 1U);
1109 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1110 bit_offset = bit_offset + 1;
1111 } while(false);
1112 }
1113 } while(false);
1114
1115 uint8_t target_wristyawstiffness_nbo = (self->target_wristyawstiffness);
1116 do {
1117 int8_t b;
1118 for (b = (8 - 1); b >= 0; b--) {
1119 do {
1120 uint16_t byte = bit_offset / 8;
1121 uint16_t bit = 7 - (bit_offset % 8);
1122 unsigned long newbit = !!((target_wristyawstiffness_nbo >> b) & 1U);
1123 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1124 bit_offset = bit_offset + 1;
1125 } while(false);
1126 }
1127 } while(false);
1128
1129 uint8_t target_handstiffness_nbo = (self->target_handstiffness);
1130 do {
1131 int8_t b;
1132 for (b = (8 - 1); b >= 0; b--) {
1133 do {
1134 uint16_t byte = bit_offset / 8;
1135 uint16_t bit = 7 - (bit_offset % 8);
1136 unsigned long newbit = !!((target_handstiffness_nbo >> b) & 1U);
1137 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1138 bit_offset = bit_offset + 1;
1139 } while(false);
1140 }
1141 } while(false);
1142
1143 uint8_t target_pliability_nbo = (self->target_pliability);
1144 do {
1145 int8_t b;
1146 for (b = (8 - 1); b >= 0; b--) {
1147 do {
1148 uint16_t byte = bit_offset / 8;
1149 uint16_t bit = 7 - (bit_offset % 8);
1150 unsigned long newbit = !!((target_pliability_nbo >> b) & 1U);
1151 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1152 bit_offset = bit_offset + 1;
1153 } while(false);
1154 }
1155 } while(false);
1156
1157 do {
1158 uint16_t byte = bit_offset / 8;
1159 uint16_t bit = 7 - (bit_offset % 8);
1160 unsigned long newbit = !!(self->target_shoulderpitch_active);
1161 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1162 bit_offset = bit_offset + 1;
1163 } while(false);
1164
1165 do {
1166 uint16_t byte = bit_offset / 8;
1167 uint16_t bit = 7 - (bit_offset % 8);
1168 unsigned long newbit = !!(self->target_shoulderroll_active);
1169 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1170 bit_offset = bit_offset + 1;
1171 } while(false);
1172
1173 do {
1174 uint16_t byte = bit_offset / 8;
1175 uint16_t bit = 7 - (bit_offset % 8);
1176 unsigned long newbit = !!(self->target_elbowroll_active);
1177 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1178 bit_offset = bit_offset + 1;
1179 } while(false);
1180
1181 do {
1182 uint16_t byte = bit_offset / 8;
1183 uint16_t bit = 7 - (bit_offset % 8);
1184 unsigned long newbit = !!(self->target_elbowyaw_active);
1185 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1186 bit_offset = bit_offset + 1;
1187 } while(false);
1188
1189 do {
1190 uint16_t byte = bit_offset / 8;
1191 uint16_t bit = 7 - (bit_offset % 8);
1192 unsigned long newbit = !!(self->target_wrist_active);
1193 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1194 bit_offset = bit_offset + 1;
1195 } while(false);
1196
1197 do {
1198 uint16_t byte = bit_offset / 8;
1199 uint16_t bit = 7 - (bit_offset % 8);
1200 unsigned long newbit = !!(self->target_hand_active);
1201 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1202 bit_offset = bit_offset + 1;
1203 } while(false);
1204
1205 do {
1206 uint16_t byte = bit_offset / 8;
1207 uint16_t bit = 7 - (bit_offset % 8);
1208 unsigned long newbit = !!(self->target_arm_at_goal);
1209 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1210 bit_offset = bit_offset + 1;
1211 } while(false);
1212
1213 do {
1214 uint16_t byte = bit_offset / 8;
1215 uint16_t bit = 7 - (bit_offset % 8);
1216 unsigned long newbit = !!(self->target_arm_stop);
1217 dst[byte] ^= (-newbit ^ dst[byte]) & (1UL << bit);
1218 bit_offset = bit_offset + 1;
1219 } while(false);
1220 //avoid unused variable warnings when you try to use an empty gen file or a gen file with no supported serialisation types.
1221 (void)self;
1222 (void)dst;
1223 return bit_offset;
1224}
1225
1230{
1231 uint16_t bit_offset = 0;
1232 do {
1233 int8_t b;
1234 for (b = (32 - 1); b >= 0; b--) {
1235 do {
1236 uint16_t byte = bit_offset / 8;
1237 uint16_t bit = 7 - (bit_offset % 8);
1238 char dataByte = src[byte];
1239 unsigned char bitValue = (dataByte >> bit) & 1U;
1240 dst->target_movement_time ^= (-bitValue ^ dst->target_movement_time) & (1UL << b);
1241 bit_offset = bit_offset + 1;
1242 } while(false);
1243 }
1244 } while(false);
1246
1247 do {
1248 int8_t b;
1249 for (b = (16 - 1); b >= 0; b--) {
1250 do {
1251 uint16_t byte = bit_offset / 8;
1252 uint16_t bit = 7 - (bit_offset % 8);
1253 char dataByte = src[byte];
1254 unsigned char bitValue = (dataByte >> bit) & 1U;
1255 dst->target_shoulderpitch ^= (-bitValue ^ dst->target_shoulderpitch) & (1UL << b);
1256 bit_offset = bit_offset + 1;
1257 } while(false);
1258 }
1259 } while(false);
1261
1262 do {
1263 int8_t b;
1264 for (b = (16 - 1); b >= 0; b--) {
1265 do {
1266 uint16_t byte = bit_offset / 8;
1267 uint16_t bit = 7 - (bit_offset % 8);
1268 char dataByte = src[byte];
1269 unsigned char bitValue = (dataByte >> bit) & 1U;
1270 dst->target_shoulderroll ^= (-bitValue ^ dst->target_shoulderroll) & (1UL << b);
1271 bit_offset = bit_offset + 1;
1272 } while(false);
1273 }
1274 } while(false);
1276
1277 do {
1278 int8_t b;
1279 for (b = (16 - 1); b >= 0; b--) {
1280 do {
1281 uint16_t byte = bit_offset / 8;
1282 uint16_t bit = 7 - (bit_offset % 8);
1283 char dataByte = src[byte];
1284 unsigned char bitValue = (dataByte >> bit) & 1U;
1285 dst->target_elbowroll ^= (-bitValue ^ dst->target_elbowroll) & (1UL << b);
1286 bit_offset = bit_offset + 1;
1287 } while(false);
1288 }
1289 } while(false);
1291
1292 do {
1293 int8_t b;
1294 for (b = (16 - 1); b >= 0; b--) {
1295 do {
1296 uint16_t byte = bit_offset / 8;
1297 uint16_t bit = 7 - (bit_offset % 8);
1298 char dataByte = src[byte];
1299 unsigned char bitValue = (dataByte >> bit) & 1U;
1300 dst->target_elbowyaw ^= (-bitValue ^ dst->target_elbowyaw) & (1UL << b);
1301 bit_offset = bit_offset + 1;
1302 } while(false);
1303 }
1304 } while(false);
1306
1307 do {
1308 int8_t b;
1309 for (b = (16 - 1); b >= 0; b--) {
1310 do {
1311 uint16_t byte = bit_offset / 8;
1312 uint16_t bit = 7 - (bit_offset % 8);
1313 char dataByte = src[byte];
1314 unsigned char bitValue = (dataByte >> bit) & 1U;
1315 dst->target_wristyaw ^= (-bitValue ^ dst->target_wristyaw) & (1UL << b);
1316 bit_offset = bit_offset + 1;
1317 } while(false);
1318 }
1319 } while(false);
1321
1322 do {
1323 int8_t b;
1324 for (b = (8 - 1); b >= 0; b--) {
1325 do {
1326 uint16_t byte = bit_offset / 8;
1327 uint16_t bit = 7 - (bit_offset % 8);
1328 char dataByte = src[byte];
1329 unsigned char bitValue = (dataByte >> bit) & 1U;
1330 dst->target_arm ^= (-bitValue ^ dst->target_arm) & (1UL << b);
1331 bit_offset = bit_offset + 1;
1332 } while(false);
1333 }
1334 } while(false);
1335 dst->target_arm = (dst->target_arm);
1336
1337 do {
1338 int8_t b;
1339 for (b = (8 - 1); b >= 0; b--) {
1340 do {
1341 uint16_t byte = bit_offset / 8;
1342 uint16_t bit = 7 - (bit_offset % 8);
1343 char dataByte = src[byte];
1344 unsigned char bitValue = (dataByte >> bit) & 1U;
1345 dst->target_hand ^= (-bitValue ^ dst->target_hand) & (1UL << b);
1346 bit_offset = bit_offset + 1;
1347 } while(false);
1348 }
1349 } while(false);
1350 dst->target_hand = (dst->target_hand);
1351
1352 do {
1353 int8_t b;
1354 for (b = (8 - 1); b >= 0; b--) {
1355 do {
1356 uint16_t byte = bit_offset / 8;
1357 uint16_t bit = 7 - (bit_offset % 8);
1358 char dataByte = src[byte];
1359 unsigned char bitValue = (dataByte >> bit) & 1U;
1360 dst->target_shoulderpitchstiffness ^= (-bitValue ^ dst->target_shoulderpitchstiffness) & (1UL << b);
1361 bit_offset = bit_offset + 1;
1362 } while(false);
1363 }
1364 } while(false);
1366
1367 do {
1368 int8_t b;
1369 for (b = (8 - 1); b >= 0; b--) {
1370 do {
1371 uint16_t byte = bit_offset / 8;
1372 uint16_t bit = 7 - (bit_offset % 8);
1373 char dataByte = src[byte];
1374 unsigned char bitValue = (dataByte >> bit) & 1U;
1375 dst->target_shoulderrollstiffness ^= (-bitValue ^ dst->target_shoulderrollstiffness) & (1UL << b);
1376 bit_offset = bit_offset + 1;
1377 } while(false);
1378 }
1379 } while(false);
1381
1382 do {
1383 int8_t b;
1384 for (b = (8 - 1); b >= 0; b--) {
1385 do {
1386 uint16_t byte = bit_offset / 8;
1387 uint16_t bit = 7 - (bit_offset % 8);
1388 char dataByte = src[byte];
1389 unsigned char bitValue = (dataByte >> bit) & 1U;
1390 dst->target_elbowrollstiffness ^= (-bitValue ^ dst->target_elbowrollstiffness) & (1UL << b);
1391 bit_offset = bit_offset + 1;
1392 } while(false);
1393 }
1394 } while(false);
1396
1397 do {
1398 int8_t b;
1399 for (b = (8 - 1); b >= 0; b--) {
1400 do {
1401 uint16_t byte = bit_offset / 8;
1402 uint16_t bit = 7 - (bit_offset % 8);
1403 char dataByte = src[byte];
1404 unsigned char bitValue = (dataByte >> bit) & 1U;
1405 dst->target_elbowyawstiffness ^= (-bitValue ^ dst->target_elbowyawstiffness) & (1UL << b);
1406 bit_offset = bit_offset + 1;
1407 } while(false);
1408 }
1409 } while(false);
1411
1412 do {
1413 int8_t b;
1414 for (b = (8 - 1); b >= 0; b--) {
1415 do {
1416 uint16_t byte = bit_offset / 8;
1417 uint16_t bit = 7 - (bit_offset % 8);
1418 char dataByte = src[byte];
1419 unsigned char bitValue = (dataByte >> bit) & 1U;
1420 dst->target_wristyawstiffness ^= (-bitValue ^ dst->target_wristyawstiffness) & (1UL << b);
1421 bit_offset = bit_offset + 1;
1422 } while(false);
1423 }
1424 } while(false);
1426
1427 do {
1428 int8_t b;
1429 for (b = (8 - 1); b >= 0; b--) {
1430 do {
1431 uint16_t byte = bit_offset / 8;
1432 uint16_t bit = 7 - (bit_offset % 8);
1433 char dataByte = src[byte];
1434 unsigned char bitValue = (dataByte >> bit) & 1U;
1435 dst->target_handstiffness ^= (-bitValue ^ dst->target_handstiffness) & (1UL << b);
1436 bit_offset = bit_offset + 1;
1437 } while(false);
1438 }
1439 } while(false);
1441
1442 do {
1443 int8_t b;
1444 for (b = (8 - 1); b >= 0; b--) {
1445 do {
1446 uint16_t byte = bit_offset / 8;
1447 uint16_t bit = 7 - (bit_offset % 8);
1448 char dataByte = src[byte];
1449 unsigned char bitValue = (dataByte >> bit) & 1U;
1450 dst->target_pliability ^= (-bitValue ^ dst->target_pliability) & (1UL << b);
1451 bit_offset = bit_offset + 1;
1452 } while(false);
1453 }
1454 } while(false);
1456
1457 do {
1458 uint16_t byte = bit_offset / 8;
1459 uint16_t bit = 7 - (bit_offset % 8);
1460 char dataByte = src[byte];
1461 unsigned char bitValue = (dataByte >> bit) & 1U;
1462 dst->target_shoulderpitch_active ^= (-bitValue ^ dst->target_shoulderpitch_active) & (1UL << 0);
1463 bit_offset = bit_offset + 1;
1464 } while(false);
1465
1466 do {
1467 uint16_t byte = bit_offset / 8;
1468 uint16_t bit = 7 - (bit_offset % 8);
1469 char dataByte = src[byte];
1470 unsigned char bitValue = (dataByte >> bit) & 1U;
1471 dst->target_shoulderroll_active ^= (-bitValue ^ dst->target_shoulderroll_active) & (1UL << 0);
1472 bit_offset = bit_offset + 1;
1473 } while(false);
1474
1475 do {
1476 uint16_t byte = bit_offset / 8;
1477 uint16_t bit = 7 - (bit_offset % 8);
1478 char dataByte = src[byte];
1479 unsigned char bitValue = (dataByte >> bit) & 1U;
1480 dst->target_elbowroll_active ^= (-bitValue ^ dst->target_elbowroll_active) & (1UL << 0);
1481 bit_offset = bit_offset + 1;
1482 } while(false);
1483
1484 do {
1485 uint16_t byte = bit_offset / 8;
1486 uint16_t bit = 7 - (bit_offset % 8);
1487 char dataByte = src[byte];
1488 unsigned char bitValue = (dataByte >> bit) & 1U;
1489 dst->target_elbowyaw_active ^= (-bitValue ^ dst->target_elbowyaw_active) & (1UL << 0);
1490 bit_offset = bit_offset + 1;
1491 } while(false);
1492
1493 do {
1494 uint16_t byte = bit_offset / 8;
1495 uint16_t bit = 7 - (bit_offset % 8);
1496 char dataByte = src[byte];
1497 unsigned char bitValue = (dataByte >> bit) & 1U;
1498 dst->target_wrist_active ^= (-bitValue ^ dst->target_wrist_active) & (1UL << 0);
1499 bit_offset = bit_offset + 1;
1500 } while(false);
1501
1502 do {
1503 uint16_t byte = bit_offset / 8;
1504 uint16_t bit = 7 - (bit_offset % 8);
1505 char dataByte = src[byte];
1506 unsigned char bitValue = (dataByte >> bit) & 1U;
1507 dst->target_hand_active ^= (-bitValue ^ dst->target_hand_active) & (1UL << 0);
1508 bit_offset = bit_offset + 1;
1509 } while(false);
1510
1511 do {
1512 uint16_t byte = bit_offset / 8;
1513 uint16_t bit = 7 - (bit_offset % 8);
1514 char dataByte = src[byte];
1515 unsigned char bitValue = (dataByte >> bit) & 1U;
1516 dst->target_arm_at_goal ^= (-bitValue ^ dst->target_arm_at_goal) & (1UL << 0);
1517 bit_offset = bit_offset + 1;
1518 } while(false);
1519
1520 do {
1521 uint16_t byte = bit_offset / 8;
1522 uint16_t bit = 7 - (bit_offset % 8);
1523 char dataByte = src[byte];
1524 unsigned char bitValue = (dataByte >> bit) & 1U;
1525 dst->target_arm_stop ^= (-bitValue ^ dst->target_arm_stop) & (1UL << 0);
1526 bit_offset = bit_offset + 1;
1527 } while(false);
1528 //avoid unused variable warnings when you try to use an empty gen file or a gen file with no supported serialisation types.
1529 (void)src;
1530 (void)dst;
1531 return bit_offset;
1532}
1533
1534/*#endif // WHITEBOARD_SERIALISATION*/
WHITEBOARD_POSTER_STRING_CONVERSION.
unsigned int target_arm_at_goal
Control Message: Not used.
uint8_t target_wristyawstiffness
target wrist yaw stiffness as a percentage
int16_t target_shoulderpitch
target shoulder pitch angle in 10ths of degrees
int16_t target_elbowroll
target elbow roll angle in 10ths of degrees
unsigned int target_elbowroll_active
Is the elbowroll Active (true[DEFAULT]) or Passive (false)
unsigned int target_hand_active
Is the hand Active (true[DEFAULT]) or Passive (false)
uint8_t target_handstiffness
target hand grasper stiffness as a percentage
unsigned int target_shoulderroll_active
Is the shoulderroll Active (true[DEFAULT]) or Passive (false)
uint8_t target_pliability
target arm's pliability when in Passive Mode.
unsigned int target_wrist_active
Is the wrist Active (true[DEFAULT]) or Passive (false)
uint8_t target_shoulderpitchstiffness
target shoulder pitch stiffness as a percentage
unsigned int target_shoulderpitch_active
Is the shoulderpitch Active (true[DEFAULT]) or Passive (false).
uint8_t target_arm
target arm number: This property is used strictly for accounting purposes when the struct is stored w...
uint8_t target_elbowrollstiffness
target elbow roll stiffness as a percentage
unsigned int target_arm_stop
Control Message: Stop the arm at its current location.
uint8_t target_elbowyawstiffness
target elbow yaw stiffness as a percentage
int16_t target_shoulderroll
target shoulder roll angle angle in 10ths of degrees
unsigned int target_elbowyaw_active
Is the elbowyaw Active (true[DEFAULT]) or Passive (false)
uint8_t target_hand
target hand grasper opening as a percentage: 0 gripper will be clasped shut, 100 gripper will be full...
int16_t target_wristyaw
target wrist yaw angle in 10ths of degrees
int32_t target_movement_time
The elapsed time, in mSec, in which the movement should be completed.
uint8_t target_shoulderrollstiffness
target shoulder roll stiffness as a percentage
int16_t target_elbowyaw
target elbow yaw angle in 10ths of degrees
size_t wb_hal_arm_target_to_network_serialised(const struct wb_hal_arm_target *self, char *dst)
Convert to a compressed, serialised, network byte order byte stream.
#define htons(x)
size_t wb_hal_arm_target_from_network_serialised(const char *src, struct wb_hal_arm_target *dst)
Convert from a compressed, serialised, network byte order byte stream.
struct wb_hal_arm_target * wb_hal_arm_target_from_string(struct wb_hal_arm_target *self, const char *str)
Convert from a string.
const char * wb_hal_arm_target_value_description(const struct wb_hal_arm_target *self, char *toString, size_t bufferSize)
Convert to a string.
const char * wb_hal_arm_target_description(const struct wb_hal_arm_target *self, char *descString, size_t bufferSize)
Convert to a description string.
#define ntohl(x)
#define ntohs(x)
#define htonl(x)
const char * wb_hal_arm_target_to_string(const struct wb_hal_arm_target *self, char *toString, size_t bufferSize)
Convert to a string.
#define HAL_ARM_TARGET_DESC_BUFFER_SIZE