60#ifndef WHITEBOARD_POSTER_STRING_CONVERSION
61#define WHITEBOARD_POSTER_STRING_CONVERSION
72#pragma clang diagnostic push
73#pragma clang diagnostic ignored "-Wunused-macros"
77#elif defined(__APPLE__)
78# include <machine/endian.h>
79# include <architecture/byte_order.h>
80# define bswap_16(x) NXSwapShort(x)
81# define bswap_32(x) NXSwapInt(x)
82# define bswap_64(x) NXSwapLongLong(x)
84# define bswap_16(x) __builtin_bswap16(x)
85# define bswap_32(x) __builtin_bswap32(x)
86# define bswap_64(x) __builtin_bswap64(x)
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)
96# if !defined(htonl) && !defined(ntohl)
97# define htonl(x) bswap_32(x)
98# define ntohl(x) bswap_32(x)
100# if !defined(htons) && !defined(ntohs)
101# define htons(x) bswap_16(x)
102# define ntohs(x) bswap_16(x)
105# if !defined(htonll) && !defined(ntohll)
106# define htonll(x) (x)
107# define ntohll(x) (x)
109# if !defined(htonl) && !defined(ntohl)
113# if !defined(htons) && !defined(ntohs)
118#pragma clang diagnostic pop
120#ifdef WHITEBOARD_POSTER_STRING_CONVERSION
126#pragma clang diagnostic push
127#pragma clang diagnostic ignored "-Wunused-variable"
129 if (len >= bufferSize) {
132 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_shoulderpitch);
133 if (len >= bufferSize) {
136 len = gu_strlcat(toString,
" | ", bufferSize);
137 if (len >= bufferSize) {
140 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_shoulderroll);
141 if (len >= bufferSize) {
144 len = gu_strlcat(toString,
" | ", bufferSize);
145 if (len >= bufferSize) {
148 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_elbowroll);
149 if (len >= bufferSize) {
152 len = gu_strlcat(toString,
" | ", bufferSize);
153 if (len >= bufferSize) {
156 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_elbowyaw);
157 if (len >= bufferSize) {
160 len = gu_strlcat(toString,
" | ", bufferSize);
161 if (len >= bufferSize) {
164 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_wristyaw);
165 if (len >= bufferSize) {
168 len = gu_strlcat(toString,
" | ", bufferSize);
169 if (len >= bufferSize) {
172 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_hand);
173 if (len >= bufferSize) {
176 len = gu_strlcat(toString,
" | ", bufferSize);
177 if (len >= bufferSize) {
180 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderpitchstiffness);
181 if (len >= bufferSize) {
184 len = gu_strlcat(toString,
" | ", bufferSize);
185 if (len >= bufferSize) {
188 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderrollstiffness);
189 if (len >= bufferSize) {
192 len = gu_strlcat(toString,
" | ", bufferSize);
193 if (len >= bufferSize) {
196 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowrollstiffness);
197 if (len >= bufferSize) {
200 len = gu_strlcat(toString,
" | ", bufferSize);
201 if (len >= bufferSize) {
204 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowyawstiffness);
205 if (len >= bufferSize) {
208 len = gu_strlcat(toString,
" | ", bufferSize);
209 if (len >= bufferSize) {
212 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_wristyawstiffness);
213 if (len >= bufferSize) {
216 len = gu_strlcat(toString,
" | ", bufferSize);
217 if (len >= bufferSize) {
220 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_handstiffness);
221 if (len >= bufferSize) {
224 len = gu_strlcat(toString,
" | ", bufferSize);
225 if (len >= bufferSize) {
228 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderpitch_active);
229 if (len >= bufferSize) {
232 len = gu_strlcat(toString,
" | ", bufferSize);
233 if (len >= bufferSize) {
236 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderroll_active);
237 if (len >= bufferSize) {
240 len = gu_strlcat(toString,
" | ", bufferSize);
241 if (len >= bufferSize) {
244 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowroll_active);
245 if (len >= bufferSize) {
248 len = gu_strlcat(toString,
" | ", bufferSize);
249 if (len >= bufferSize) {
252 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowyaw_active);
253 if (len >= bufferSize) {
256 len = gu_strlcat(toString,
" | ", bufferSize);
257 if (len >= bufferSize) {
260 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_wrist_active);
261 if (len >= bufferSize) {
264 len = gu_strlcat(toString,
" | ", bufferSize);
265 if (len >= bufferSize) {
268 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_hand_active);
269 if (len >= bufferSize) {
272 len = gu_strlcat(toString,
" | ", bufferSize);
273 if (len >= bufferSize) {
276 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_movement_time);
277 if (len >= bufferSize) {
280 len = gu_strlcat(toString,
" | ", bufferSize);
281 if (len >= bufferSize) {
284 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_pliability);
285 if (len >= bufferSize) {
288 len = gu_strlcat(toString,
" | ", bufferSize);
289 if (len >= bufferSize) {
292 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_arm_at_goal);
293 if (len >= bufferSize) {
296 len = gu_strlcat(toString,
" | ", bufferSize);
297 if (len >= bufferSize) {
300 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_arm_stop);
312#pragma clang diagnostic push
313#pragma clang diagnostic ignored "-Wunused-variable"
315 if (len >= bufferSize) {
318 len += snprintf(descString + len, bufferSize - len,
"target_movement_time=%d", self->target_movement_time);
319 if (len >= bufferSize) {
322 len = gu_strlcat(descString,
", ", bufferSize);
323 if (len >= bufferSize) {
326 len += snprintf(descString + len, bufferSize - len,
"target_shoulderpitch=%d", self->target_shoulderpitch);
327 if (len >= bufferSize) {
330 len = gu_strlcat(descString,
", ", bufferSize);
331 if (len >= bufferSize) {
334 len += snprintf(descString + len, bufferSize - len,
"target_shoulderroll=%d", self->target_shoulderroll);
335 if (len >= bufferSize) {
338 len = gu_strlcat(descString,
", ", bufferSize);
339 if (len >= bufferSize) {
342 len += snprintf(descString + len, bufferSize - len,
"target_elbowroll=%d", self->target_elbowroll);
343 if (len >= bufferSize) {
346 len = gu_strlcat(descString,
", ", bufferSize);
347 if (len >= bufferSize) {
350 len += snprintf(descString + len, bufferSize - len,
"target_elbowyaw=%d", self->target_elbowyaw);
351 if (len >= bufferSize) {
354 len = gu_strlcat(descString,
", ", bufferSize);
355 if (len >= bufferSize) {
358 len += snprintf(descString + len, bufferSize - len,
"target_wristyaw=%d", self->target_wristyaw);
359 if (len >= bufferSize) {
362 len = gu_strlcat(descString,
", ", bufferSize);
363 if (len >= bufferSize) {
366 len += snprintf(descString + len, bufferSize - len,
"target_arm=%u", self->target_arm);
367 if (len >= bufferSize) {
370 len = gu_strlcat(descString,
", ", bufferSize);
371 if (len >= bufferSize) {
374 len += snprintf(descString + len, bufferSize - len,
"target_hand=%u", self->target_hand);
375 if (len >= bufferSize) {
378 len = gu_strlcat(descString,
", ", bufferSize);
379 if (len >= bufferSize) {
382 len += snprintf(descString + len, bufferSize - len,
"target_shoulderpitchstiffness=%u", self->target_shoulderpitchstiffness);
383 if (len >= bufferSize) {
386 len = gu_strlcat(descString,
", ", bufferSize);
387 if (len >= bufferSize) {
390 len += snprintf(descString + len, bufferSize - len,
"target_shoulderrollstiffness=%u", self->target_shoulderrollstiffness);
391 if (len >= bufferSize) {
394 len = gu_strlcat(descString,
", ", bufferSize);
395 if (len >= bufferSize) {
398 len += snprintf(descString + len, bufferSize - len,
"target_elbowrollstiffness=%u", self->target_elbowrollstiffness);
399 if (len >= bufferSize) {
402 len = gu_strlcat(descString,
", ", bufferSize);
403 if (len >= bufferSize) {
406 len += snprintf(descString + len, bufferSize - len,
"target_elbowyawstiffness=%u", self->target_elbowyawstiffness);
407 if (len >= bufferSize) {
410 len = gu_strlcat(descString,
", ", bufferSize);
411 if (len >= bufferSize) {
414 len += snprintf(descString + len, bufferSize - len,
"target_wristyawstiffness=%u", self->target_wristyawstiffness);
415 if (len >= bufferSize) {
418 len = gu_strlcat(descString,
", ", bufferSize);
419 if (len >= bufferSize) {
422 len += snprintf(descString + len, bufferSize - len,
"target_handstiffness=%u", self->target_handstiffness);
423 if (len >= bufferSize) {
426 len = gu_strlcat(descString,
", ", bufferSize);
427 if (len >= bufferSize) {
430 len += snprintf(descString + len, bufferSize - len,
"target_pliability=%u", self->target_pliability);
431 if (len >= bufferSize) {
434 len = gu_strlcat(descString,
", ", bufferSize);
435 if (len >= bufferSize) {
438 len += snprintf(descString + len, bufferSize - len,
"target_shoulderpitch_active=%u", self->target_shoulderpitch_active);
439 if (len >= bufferSize) {
442 len = gu_strlcat(descString,
", ", bufferSize);
443 if (len >= bufferSize) {
446 len += snprintf(descString + len, bufferSize - len,
"target_shoulderroll_active=%u", self->target_shoulderroll_active);
447 if (len >= bufferSize) {
450 len = gu_strlcat(descString,
", ", bufferSize);
451 if (len >= bufferSize) {
454 len += snprintf(descString + len, bufferSize - len,
"target_elbowroll_active=%u", self->target_elbowroll_active);
455 if (len >= bufferSize) {
458 len = gu_strlcat(descString,
", ", bufferSize);
459 if (len >= bufferSize) {
462 len += snprintf(descString + len, bufferSize - len,
"target_elbowyaw_active=%u", self->target_elbowyaw_active);
463 if (len >= bufferSize) {
466 len = gu_strlcat(descString,
", ", bufferSize);
467 if (len >= bufferSize) {
470 len += snprintf(descString + len, bufferSize - len,
"target_wrist_active=%u", self->target_wrist_active);
471 if (len >= bufferSize) {
474 len = gu_strlcat(descString,
", ", bufferSize);
475 if (len >= bufferSize) {
478 len += snprintf(descString + len, bufferSize - len,
"target_hand_active=%u", self->target_hand_active);
479 if (len >= bufferSize) {
482 len = gu_strlcat(descString,
", ", bufferSize);
483 if (len >= bufferSize) {
486 len += snprintf(descString + len, bufferSize - len,
"target_arm_at_goal=%u", self->target_arm_at_goal);
487 if (len >= bufferSize) {
490 len = gu_strlcat(descString,
", ", bufferSize);
491 if (len >= bufferSize) {
494 len += snprintf(descString + len, bufferSize - len,
"target_arm_stop=%u", self->target_arm_stop);
496#pragma clang diagnostic pop
504#pragma clang diagnostic push
505#pragma clang diagnostic ignored "-Wunused-variable"
507 if (len >= bufferSize) {
510 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_movement_time);
511 if (len >= bufferSize) {
514 len = gu_strlcat(toString,
", ", bufferSize);
515 if (len >= bufferSize) {
518 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_shoulderpitch);
519 if (len >= bufferSize) {
522 len = gu_strlcat(toString,
", ", bufferSize);
523 if (len >= bufferSize) {
526 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_shoulderroll);
527 if (len >= bufferSize) {
530 len = gu_strlcat(toString,
", ", bufferSize);
531 if (len >= bufferSize) {
534 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_elbowroll);
535 if (len >= bufferSize) {
538 len = gu_strlcat(toString,
", ", bufferSize);
539 if (len >= bufferSize) {
542 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_elbowyaw);
543 if (len >= bufferSize) {
546 len = gu_strlcat(toString,
", ", bufferSize);
547 if (len >= bufferSize) {
550 len += snprintf(toString + len, bufferSize - len,
"%d", self->target_wristyaw);
551 if (len >= bufferSize) {
554 len = gu_strlcat(toString,
", ", bufferSize);
555 if (len >= bufferSize) {
558 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_arm);
559 if (len >= bufferSize) {
562 len = gu_strlcat(toString,
", ", bufferSize);
563 if (len >= bufferSize) {
566 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_hand);
567 if (len >= bufferSize) {
570 len = gu_strlcat(toString,
", ", bufferSize);
571 if (len >= bufferSize) {
574 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderpitchstiffness);
575 if (len >= bufferSize) {
578 len = gu_strlcat(toString,
", ", bufferSize);
579 if (len >= bufferSize) {
582 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderrollstiffness);
583 if (len >= bufferSize) {
586 len = gu_strlcat(toString,
", ", bufferSize);
587 if (len >= bufferSize) {
590 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowrollstiffness);
591 if (len >= bufferSize) {
594 len = gu_strlcat(toString,
", ", bufferSize);
595 if (len >= bufferSize) {
598 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowyawstiffness);
599 if (len >= bufferSize) {
602 len = gu_strlcat(toString,
", ", bufferSize);
603 if (len >= bufferSize) {
606 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_wristyawstiffness);
607 if (len >= bufferSize) {
610 len = gu_strlcat(toString,
", ", bufferSize);
611 if (len >= bufferSize) {
614 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_handstiffness);
615 if (len >= bufferSize) {
618 len = gu_strlcat(toString,
", ", bufferSize);
619 if (len >= bufferSize) {
622 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_pliability);
623 if (len >= bufferSize) {
626 len = gu_strlcat(toString,
", ", bufferSize);
627 if (len >= bufferSize) {
630 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderpitch_active);
631 if (len >= bufferSize) {
634 len = gu_strlcat(toString,
", ", bufferSize);
635 if (len >= bufferSize) {
638 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_shoulderroll_active);
639 if (len >= bufferSize) {
642 len = gu_strlcat(toString,
", ", bufferSize);
643 if (len >= bufferSize) {
646 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowroll_active);
647 if (len >= bufferSize) {
650 len = gu_strlcat(toString,
", ", bufferSize);
651 if (len >= bufferSize) {
654 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_elbowyaw_active);
655 if (len >= bufferSize) {
658 len = gu_strlcat(toString,
", ", bufferSize);
659 if (len >= bufferSize) {
662 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_wrist_active);
663 if (len >= bufferSize) {
666 len = gu_strlcat(toString,
", ", bufferSize);
667 if (len >= bufferSize) {
670 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_hand_active);
671 if (len >= bufferSize) {
674 len = gu_strlcat(toString,
", ", bufferSize);
675 if (len >= bufferSize) {
678 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_arm_at_goal);
679 if (len >= bufferSize) {
682 len = gu_strlcat(toString,
", ", bufferSize);
683 if (len >= bufferSize) {
686 len += snprintf(toString + len, bufferSize - len,
"%u", self->target_arm_stop);
688#pragma clang diagnostic pop
696 size_t temp_length = strlen(str);
697 int length = (temp_length <= INT_MAX) ? ((
int)((ssize_t)temp_length)) : -1;
702 char* var_str = &var_str_buffer[0];
704 char* key = &key_buffer[0];
711 if (index == 0 && str[0] ==
'{') {
717 for (
int i = index; i < length; i++) {
719 if (bracecount == 0 && str[i] ==
'=') {
724 if (bracecount == 0 && isspace(str[i])) {
731 if (bracecount == 0 && str[i] ==
',') {
741 if (bracecount < 0) {
746 if (i == length - 1) {
750 if (endKey >= startKey && endKey - startKey < length) {
751 strncpy(key, str + startKey, ((
size_t)(endKey - startKey) + 1));
752 key[(endKey - startKey) + 1] = 0;
756 strncpy(var_str, str + startVar, ((
size_t)(index - startVar) + 1));
757 var_str[(index - startVar) + 1] = 0;
763 if (strlen(key) > 0) {
764 if (0 == strcmp(
"target_movement_time", key)) {
766 }
else if (0 == strcmp(
"target_shoulderpitch", key)) {
768 }
else if (0 == strcmp(
"target_shoulderroll", key)) {
770 }
else if (0 == strcmp(
"target_elbowroll", key)) {
772 }
else if (0 == strcmp(
"target_elbowyaw", key)) {
774 }
else if (0 == strcmp(
"target_wristyaw", key)) {
776 }
else if (0 == strcmp(
"target_arm", key)) {
778 }
else if (0 == strcmp(
"target_hand", key)) {
780 }
else if (0 == strcmp(
"target_shoulderpitchstiffness", key)) {
782 }
else if (0 == strcmp(
"target_shoulderrollstiffness", key)) {
784 }
else if (0 == strcmp(
"target_elbowrollstiffness", key)) {
786 }
else if (0 == strcmp(
"target_elbowyawstiffness", key)) {
788 }
else if (0 == strcmp(
"target_wristyawstiffness", key)) {
790 }
else if (0 == strcmp(
"target_handstiffness", key)) {
792 }
else if (0 == strcmp(
"target_pliability", key)) {
794 }
else if (0 == strcmp(
"target_shoulderpitch_active", key)) {
796 }
else if (0 == strcmp(
"target_shoulderroll_active", key)) {
798 }
else if (0 == strcmp(
"target_elbowroll_active", key)) {
800 }
else if (0 == strcmp(
"target_elbowyaw_active", key)) {
802 }
else if (0 == strcmp(
"target_wrist_active", key)) {
804 }
else if (0 == strcmp(
"target_hand_active", key)) {
806 }
else if (0 == strcmp(
"target_arm_at_goal", key)) {
808 }
else if (0 == strcmp(
"target_arm_stop", key)) {
818 self->target_movement_time = ((int32_t)atoi(var_str));
823 self->target_shoulderpitch = ((int16_t)atoi(var_str));
828 self->target_shoulderroll = ((int16_t)atoi(var_str));
833 self->target_elbowroll = ((int16_t)atoi(var_str));
838 self->target_elbowyaw = ((int16_t)atoi(var_str));
843 self->target_wristyaw = ((int16_t)atoi(var_str));
848 self->target_arm = ((uint8_t)atoi(var_str));
853 self->target_hand = ((uint8_t)atoi(var_str));
858 self->target_shoulderpitchstiffness = ((uint8_t)atoi(var_str));
863 self->target_shoulderrollstiffness = ((uint8_t)atoi(var_str));
868 self->target_elbowrollstiffness = ((uint8_t)atoi(var_str));
873 self->target_elbowyawstiffness = ((uint8_t)atoi(var_str));
878 self->target_wristyawstiffness = ((uint8_t)atoi(var_str));
883 self->target_handstiffness = ((uint8_t)atoi(var_str));
888 self->target_pliability = ((uint8_t)atoi(var_str));
893 self->target_shoulderpitch_active = ((
unsigned int)atoi(var_str));
898 self->target_shoulderroll_active = ((
unsigned int)atoi(var_str));
903 self->target_elbowroll_active = ((
unsigned int)atoi(var_str));
908 self->target_elbowyaw_active = ((
unsigned int)atoi(var_str));
913 self->target_wrist_active = ((
unsigned int)atoi(var_str));
918 self->target_hand_active = ((
unsigned int)atoi(var_str));
923 self->target_arm_at_goal = ((
unsigned int)atoi(var_str));
928 self->target_arm_stop = ((
unsigned int)atoi(var_str));
935 }
while(index < length);
946 uint16_t bit_offset = 0;
947 int32_t target_movement_time_nbo =
htonl(self->target_movement_time);
950 for (b = (32 - 1); b >= 0; b--) {
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;
961 int16_t target_shoulderpitch_nbo =
htons(self->target_shoulderpitch);
964 for (b = (16 - 1); b >= 0; b--) {
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;
975 int16_t target_shoulderroll_nbo =
htons(self->target_shoulderroll);
978 for (b = (16 - 1); b >= 0; b--) {
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;
989 int16_t target_elbowroll_nbo =
htons(self->target_elbowroll);
992 for (b = (16 - 1); b >= 0; b--) {
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;
1003 int16_t target_elbowyaw_nbo =
htons(self->target_elbowyaw);
1006 for (b = (16 - 1); b >= 0; b--) {
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;
1017 int16_t target_wristyaw_nbo =
htons(self->target_wristyaw);
1020 for (b = (16 - 1); b >= 0; b--) {
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;
1031 uint8_t target_arm_nbo = (
self->target_arm);
1034 for (b = (8 - 1); b >= 0; b--) {
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;
1045 uint8_t target_hand_nbo = (
self->target_hand);
1048 for (b = (8 - 1); b >= 0; b--) {
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;
1059 uint8_t target_shoulderpitchstiffness_nbo = (
self->target_shoulderpitchstiffness);
1062 for (b = (8 - 1); b >= 0; b--) {
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;
1073 uint8_t target_shoulderrollstiffness_nbo = (
self->target_shoulderrollstiffness);
1076 for (b = (8 - 1); b >= 0; b--) {
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;
1087 uint8_t target_elbowrollstiffness_nbo = (
self->target_elbowrollstiffness);
1090 for (b = (8 - 1); b >= 0; b--) {
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;
1101 uint8_t target_elbowyawstiffness_nbo = (
self->target_elbowyawstiffness);
1104 for (b = (8 - 1); b >= 0; b--) {
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;
1115 uint8_t target_wristyawstiffness_nbo = (
self->target_wristyawstiffness);
1118 for (b = (8 - 1); b >= 0; b--) {
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;
1129 uint8_t target_handstiffness_nbo = (
self->target_handstiffness);
1132 for (b = (8 - 1); b >= 0; b--) {
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;
1143 uint8_t target_pliability_nbo = (
self->target_pliability);
1146 for (b = (8 - 1); b >= 0; b--) {
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;
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;
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;
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;
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;
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;
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;
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;
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;
1231 uint16_t bit_offset = 0;
1234 for (b = (32 - 1); b >= 0; b--) {
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;
1241 bit_offset = bit_offset + 1;
1249 for (b = (16 - 1); b >= 0; b--) {
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;
1256 bit_offset = bit_offset + 1;
1264 for (b = (16 - 1); b >= 0; b--) {
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;
1271 bit_offset = bit_offset + 1;
1279 for (b = (16 - 1); b >= 0; b--) {
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;
1286 bit_offset = bit_offset + 1;
1294 for (b = (16 - 1); b >= 0; b--) {
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;
1301 bit_offset = bit_offset + 1;
1309 for (b = (16 - 1); b >= 0; b--) {
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;
1316 bit_offset = bit_offset + 1;
1324 for (b = (8 - 1); b >= 0; b--) {
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;
1331 bit_offset = bit_offset + 1;
1339 for (b = (8 - 1); b >= 0; b--) {
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;
1346 bit_offset = bit_offset + 1;
1354 for (b = (8 - 1); b >= 0; b--) {
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;
1361 bit_offset = bit_offset + 1;
1369 for (b = (8 - 1); b >= 0; b--) {
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;
1376 bit_offset = bit_offset + 1;
1384 for (b = (8 - 1); b >= 0; b--) {
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;
1391 bit_offset = bit_offset + 1;
1399 for (b = (8 - 1); b >= 0; b--) {
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;
1406 bit_offset = bit_offset + 1;
1414 for (b = (8 - 1); b >= 0; b--) {
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;
1421 bit_offset = bit_offset + 1;
1429 for (b = (8 - 1); b >= 0; b--) {
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;
1436 bit_offset = bit_offset + 1;
1444 for (b = (8 - 1); b >= 0; b--) {
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;
1451 bit_offset = bit_offset + 1;
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;
1463 bit_offset = bit_offset + 1;
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;
1472 bit_offset = bit_offset + 1;
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;
1481 bit_offset = bit_offset + 1;
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;
1490 bit_offset = bit_offset + 1;
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;
1499 bit_offset = bit_offset + 1;
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;
1508 bit_offset = bit_offset + 1;
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;
1517 bit_offset = bit_offset + 1;
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;
1526 bit_offset = bit_offset + 1;
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.
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.
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