33 namespace rtde_interface
36 {
"timestamp", double() },
53 {
"actual_digital_input_bits", uint64_t() },
55 {
"actual_execution_time", double() },
56 {
"robot_mode", int32_t() },
58 {
"safety_mode", int32_t() },
60 {
"speed_scaling", double() },
61 {
"target_speed_fraction", double() },
62 {
"actual_momentum", double() },
63 {
"actual_main_voltage", double() },
64 {
"actual_robot_voltage", double() },
65 {
"actual_robot_current", double() },
67 {
"actual_digital_output_bits", uint64_t() },
68 {
"runtime_state", uint32_t() },
71 {
"robot_status_bits", uint32_t() },
72 {
"safety_status_bits", uint32_t() },
73 {
"analog_io_types", uint32_t() },
74 {
"standard_analog_input0", double() },
75 {
"standard_analog_input1", double() },
76 {
"standard_analog_output0", double() },
77 {
"standard_analog_output1", double() },
78 {
"io_current", double() },
79 {
"euromap67_input_bits", uint32_t() },
80 {
"euromap67_output_bits", uint32_t() },
81 {
"euromap67_24V_voltage", double() },
82 {
"euromap67_24V_current", double() },
83 {
"tool_mode", uint32_t() },
84 {
"tool_analog_input_types", uint32_t() },
85 {
"tool_analog_input0", double() },
86 {
"tool_analog_input1", double() },
87 {
"tool_output_voltage", int32_t() },
88 {
"tool_output_current", double() },
89 {
"tool_temperature", double() },
90 {
"tool_force_scalar", double() },
91 {
"output_bit_registers0_to_31", uint32_t() },
92 {
"output_bit_registers32_to_63", uint32_t() },
93 {
"output_bit_register_0", bool() },
94 {
"output_bit_register_1", bool() },
95 {
"output_bit_register_2", bool() },
96 {
"output_bit_register_3", bool() },
97 {
"output_bit_register_4", bool() },
98 {
"output_bit_register_5", bool() },
99 {
"output_bit_register_6", bool() },
100 {
"output_bit_register_7", bool() },
101 {
"output_bit_register_8", bool() },
102 {
"output_bit_register_9", bool() },
103 {
"output_bit_register_10", bool() },
104 {
"output_bit_register_11", bool() },
105 {
"output_bit_register_12", bool() },
106 {
"output_bit_register_13", bool() },
107 {
"output_bit_register_14", bool() },
108 {
"output_bit_register_15", bool() },
109 {
"output_bit_register_16", bool() },
110 {
"output_bit_register_17", bool() },
111 {
"output_bit_register_18", bool() },
112 {
"output_bit_register_19", bool() },
113 {
"output_bit_register_20", bool() },
114 {
"output_bit_register_21", bool() },
115 {
"output_bit_register_22", bool() },
116 {
"output_bit_register_23", bool() },
117 {
"output_bit_register_24", bool() },
118 {
"output_bit_register_25", bool() },
119 {
"output_bit_register_26", bool() },
120 {
"output_bit_register_27", bool() },
121 {
"output_bit_register_28", bool() },
122 {
"output_bit_register_29", bool() },
123 {
"output_bit_register_30", bool() },
124 {
"output_bit_register_31", bool() },
125 {
"output_bit_register_32", bool() },
126 {
"output_bit_register_33", bool() },
127 {
"output_bit_register_34", bool() },
128 {
"output_bit_register_35", bool() },
129 {
"output_bit_register_36", bool() },
130 {
"output_bit_register_37", bool() },
131 {
"output_bit_register_38", bool() },
132 {
"output_bit_register_39", bool() },
133 {
"output_bit_register_40", bool() },
134 {
"output_bit_register_41", bool() },
135 {
"output_bit_register_42", bool() },
136 {
"output_bit_register_43", bool() },
137 {
"output_bit_register_44", bool() },
138 {
"output_bit_register_45", bool() },
139 {
"output_bit_register_46", bool() },
140 {
"output_bit_register_47", bool() },
141 {
"output_bit_register_48", bool() },
142 {
"output_bit_register_49", bool() },
143 {
"output_bit_register_50", bool() },
144 {
"output_bit_register_51", bool() },
145 {
"output_bit_register_52", bool() },
146 {
"output_bit_register_53", bool() },
147 {
"output_bit_register_54", bool() },
148 {
"output_bit_register_55", bool() },
149 {
"output_bit_register_56", bool() },
150 {
"output_bit_register_57", bool() },
151 {
"output_bit_register_58", bool() },
152 {
"output_bit_register_59", bool() },
153 {
"output_bit_register_60", bool() },
154 {
"output_bit_register_61", bool() },
155 {
"output_bit_register_62", bool() },
156 {
"output_bit_register_63", bool() },
157 {
"output_bit_register_64", bool() },
158 {
"output_bit_register_65", bool() },
159 {
"output_bit_register_66", bool() },
160 {
"output_bit_register_67", bool() },
161 {
"output_bit_register_68", bool() },
162 {
"output_bit_register_69", bool() },
163 {
"output_bit_register_70", bool() },
164 {
"output_bit_register_71", bool() },
165 {
"output_bit_register_72", bool() },
166 {
"output_bit_register_73", bool() },
167 {
"output_bit_register_74", bool() },
168 {
"output_bit_register_75", bool() },
169 {
"output_bit_register_76", bool() },
170 {
"output_bit_register_77", bool() },
171 {
"output_bit_register_78", bool() },
172 {
"output_bit_register_79", bool() },
173 {
"output_bit_register_80", bool() },
174 {
"output_bit_register_81", bool() },
175 {
"output_bit_register_82", bool() },
176 {
"output_bit_register_83", bool() },
177 {
"output_bit_register_84", bool() },
178 {
"output_bit_register_85", bool() },
179 {
"output_bit_register_86", bool() },
180 {
"output_bit_register_87", bool() },
181 {
"output_bit_register_88", bool() },
182 {
"output_bit_register_89", bool() },
183 {
"output_bit_register_90", bool() },
184 {
"output_bit_register_91", bool() },
185 {
"output_bit_register_92", bool() },
186 {
"output_bit_register_93", bool() },
187 {
"output_bit_register_94", bool() },
188 {
"output_bit_register_95", bool() },
189 {
"output_bit_register_96", bool() },
190 {
"output_bit_register_97", bool() },
191 {
"output_bit_register_98", bool() },
192 {
"output_bit_register_99", bool() },
193 {
"output_bit_register_100", bool() },
194 {
"output_bit_register_101", bool() },
195 {
"output_bit_register_102", bool() },
196 {
"output_bit_register_103", bool() },
197 {
"output_bit_register_104", bool() },
198 {
"output_bit_register_105", bool() },
199 {
"output_bit_register_106", bool() },
200 {
"output_bit_register_107", bool() },
201 {
"output_bit_register_108", bool() },
202 {
"output_bit_register_109", bool() },
203 {
"output_bit_register_110", bool() },
204 {
"output_bit_register_111", bool() },
205 {
"output_bit_register_112", bool() },
206 {
"output_bit_register_113", bool() },
207 {
"output_bit_register_114", bool() },
208 {
"output_bit_register_115", bool() },
209 {
"output_bit_register_116", bool() },
210 {
"output_bit_register_117", bool() },
211 {
"output_bit_register_118", bool() },
212 {
"output_bit_register_119", bool() },
213 {
"output_bit_register_120", bool() },
214 {
"output_bit_register_121", bool() },
215 {
"output_bit_register_122", bool() },
216 {
"output_bit_register_123", bool() },
217 {
"output_bit_register_124", bool() },
218 {
"output_bit_register_125", bool() },
219 {
"output_bit_register_126", bool() },
220 {
"output_bit_register_127", bool() },
221 {
"output_int_register_0", int32_t() },
222 {
"output_int_register_1", int32_t() },
223 {
"output_int_register_2", int32_t() },
224 {
"output_int_register_3", int32_t() },
225 {
"output_int_register_4", int32_t() },
226 {
"output_int_register_5", int32_t() },
227 {
"output_int_register_6", int32_t() },
228 {
"output_int_register_7", int32_t() },
229 {
"output_int_register_8", int32_t() },
230 {
"output_int_register_9", int32_t() },
231 {
"output_int_register_10", int32_t() },
232 {
"output_int_register_11", int32_t() },
233 {
"output_int_register_12", int32_t() },
234 {
"output_int_register_13", int32_t() },
235 {
"output_int_register_14", int32_t() },
236 {
"output_int_register_15", int32_t() },
237 {
"output_int_register_16", int32_t() },
238 {
"output_int_register_17", int32_t() },
239 {
"output_int_register_18", int32_t() },
240 {
"output_int_register_19", int32_t() },
241 {
"output_int_register_20", int32_t() },
242 {
"output_int_register_21", int32_t() },
243 {
"output_int_register_22", int32_t() },
244 {
"output_int_register_23", int32_t() },
245 {
"output_int_register_24", int32_t() },
246 {
"output_int_register_25", int32_t() },
247 {
"output_int_register_26", int32_t() },
248 {
"output_int_register_27", int32_t() },
249 {
"output_int_register_28", int32_t() },
250 {
"output_int_register_29", int32_t() },
251 {
"output_int_register_30", int32_t() },
252 {
"output_int_register_31", int32_t() },
253 {
"output_int_register_32", int32_t() },
254 {
"output_int_register_33", int32_t() },
255 {
"output_int_register_34", int32_t() },
256 {
"output_int_register_35", int32_t() },
257 {
"output_int_register_36", int32_t() },
258 {
"output_int_register_37", int32_t() },
259 {
"output_int_register_38", int32_t() },
260 {
"output_int_register_39", int32_t() },
261 {
"output_int_register_40", int32_t() },
262 {
"output_int_register_41", int32_t() },
263 {
"output_int_register_42", int32_t() },
264 {
"output_int_register_43", int32_t() },
265 {
"output_int_register_44", int32_t() },
266 {
"output_int_register_45", int32_t() },
267 {
"output_int_register_46", int32_t() },
268 {
"output_int_register_47", int32_t() },
269 {
"output_double_register_0", double() },
270 {
"output_double_register_1", double() },
271 {
"output_double_register_2", double() },
272 {
"output_double_register_3", double() },
273 {
"output_double_register_4", double() },
274 {
"output_double_register_5", double() },
275 {
"output_double_register_6", double() },
276 {
"output_double_register_7", double() },
277 {
"output_double_register_8", double() },
278 {
"output_double_register_9", double() },
279 {
"output_double_register_10", double() },
280 {
"output_double_register_11", double() },
281 {
"output_double_register_12", double() },
282 {
"output_double_register_13", double() },
283 {
"output_double_register_14", double() },
284 {
"output_double_register_15", double() },
285 {
"output_double_register_16", double() },
286 {
"output_double_register_17", double() },
287 {
"output_double_register_18", double() },
288 {
"output_double_register_19", double() },
289 {
"output_double_register_20", double() },
290 {
"output_double_register_21", double() },
291 {
"output_double_register_22", double() },
292 {
"output_double_register_23", double() },
293 {
"output_double_register_24", double() },
294 {
"output_double_register_25", double() },
295 {
"output_double_register_26", double() },
296 {
"output_double_register_27", double() },
297 {
"output_double_register_28", double() },
298 {
"output_double_register_29", double() },
299 {
"output_double_register_30", double() },
300 {
"output_double_register_31", double() },
301 {
"output_double_register_32", double() },
302 {
"output_double_register_33", double() },
303 {
"output_double_register_34", double() },
304 {
"output_double_register_35", double() },
305 {
"output_double_register_36", double() },
306 {
"output_double_register_37", double() },
307 {
"output_double_register_38", double() },
308 {
"output_double_register_39", double() },
309 {
"output_double_register_40", double() },
310 {
"output_double_register_41", double() },
311 {
"output_double_register_42", double() },
312 {
"output_double_register_43", double() },
313 {
"output_double_register_44", double() },
314 {
"output_double_register_45", double() },
315 {
"output_double_register_46", double() },
316 {
"output_double_register_47", double() },
317 {
"input_bit_registers0_to_31", uint32_t() },
318 {
"input_bit_registers32_to_63", uint32_t() },
319 {
"input_bit_register_0", bool() },
320 {
"input_bit_register_1", bool() },
321 {
"input_bit_register_2", bool() },
322 {
"input_bit_register_3", bool() },
323 {
"input_bit_register_4", bool() },
324 {
"input_bit_register_5", bool() },
325 {
"input_bit_register_6", bool() },
326 {
"input_bit_register_7", bool() },
327 {
"input_bit_register_8", bool() },
328 {
"input_bit_register_9", bool() },
329 {
"input_bit_register_10", bool() },
330 {
"input_bit_register_11", bool() },
331 {
"input_bit_register_12", bool() },
332 {
"input_bit_register_13", bool() },
333 {
"input_bit_register_14", bool() },
334 {
"input_bit_register_15", bool() },
335 {
"input_bit_register_16", bool() },
336 {
"input_bit_register_17", bool() },
337 {
"input_bit_register_18", bool() },
338 {
"input_bit_register_19", bool() },
339 {
"input_bit_register_20", bool() },
340 {
"input_bit_register_21", bool() },
341 {
"input_bit_register_22", bool() },
342 {
"input_bit_register_23", bool() },
343 {
"input_bit_register_24", bool() },
344 {
"input_bit_register_25", bool() },
345 {
"input_bit_register_26", bool() },
346 {
"input_bit_register_27", bool() },
347 {
"input_bit_register_28", bool() },
348 {
"input_bit_register_29", bool() },
349 {
"input_bit_register_30", bool() },
350 {
"input_bit_register_31", bool() },
351 {
"input_bit_register_32", bool() },
352 {
"input_bit_register_33", bool() },
353 {
"input_bit_register_34", bool() },
354 {
"input_bit_register_35", bool() },
355 {
"input_bit_register_36", bool() },
356 {
"input_bit_register_37", bool() },
357 {
"input_bit_register_38", bool() },
358 {
"input_bit_register_39", bool() },
359 {
"input_bit_register_40", bool() },
360 {
"input_bit_register_41", bool() },
361 {
"input_bit_register_42", bool() },
362 {
"input_bit_register_43", bool() },
363 {
"input_bit_register_44", bool() },
364 {
"input_bit_register_45", bool() },
365 {
"input_bit_register_46", bool() },
366 {
"input_bit_register_47", bool() },
367 {
"input_bit_register_48", bool() },
368 {
"input_bit_register_49", bool() },
369 {
"input_bit_register_50", bool() },
370 {
"input_bit_register_51", bool() },
371 {
"input_bit_register_52", bool() },
372 {
"input_bit_register_53", bool() },
373 {
"input_bit_register_54", bool() },
374 {
"input_bit_register_55", bool() },
375 {
"input_bit_register_56", bool() },
376 {
"input_bit_register_57", bool() },
377 {
"input_bit_register_58", bool() },
378 {
"input_bit_register_59", bool() },
379 {
"input_bit_register_60", bool() },
380 {
"input_bit_register_61", bool() },
381 {
"input_bit_register_62", bool() },
382 {
"input_bit_register_63", bool() },
383 {
"input_bit_register_64", bool() },
384 {
"input_bit_register_65", bool() },
385 {
"input_bit_register_66", bool() },
386 {
"input_bit_register_67", bool() },
387 {
"input_bit_register_68", bool() },
388 {
"input_bit_register_69", bool() },
389 {
"input_bit_register_70", bool() },
390 {
"input_bit_register_71", bool() },
391 {
"input_bit_register_72", bool() },
392 {
"input_bit_register_73", bool() },
393 {
"input_bit_register_74", bool() },
394 {
"input_bit_register_75", bool() },
395 {
"input_bit_register_76", bool() },
396 {
"input_bit_register_77", bool() },
397 {
"input_bit_register_78", bool() },
398 {
"input_bit_register_79", bool() },
399 {
"input_bit_register_80", bool() },
400 {
"input_bit_register_81", bool() },
401 {
"input_bit_register_82", bool() },
402 {
"input_bit_register_83", bool() },
403 {
"input_bit_register_84", bool() },
404 {
"input_bit_register_85", bool() },
405 {
"input_bit_register_86", bool() },
406 {
"input_bit_register_87", bool() },
407 {
"input_bit_register_88", bool() },
408 {
"input_bit_register_89", bool() },
409 {
"input_bit_register_90", bool() },
410 {
"input_bit_register_91", bool() },
411 {
"input_bit_register_92", bool() },
412 {
"input_bit_register_93", bool() },
413 {
"input_bit_register_94", bool() },
414 {
"input_bit_register_95", bool() },
415 {
"input_bit_register_96", bool() },
416 {
"input_bit_register_97", bool() },
417 {
"input_bit_register_98", bool() },
418 {
"input_bit_register_99", bool() },
419 {
"input_bit_register_100", bool() },
420 {
"input_bit_register_101", bool() },
421 {
"input_bit_register_102", bool() },
422 {
"input_bit_register_103", bool() },
423 {
"input_bit_register_104", bool() },
424 {
"input_bit_register_105", bool() },
425 {
"input_bit_register_106", bool() },
426 {
"input_bit_register_107", bool() },
427 {
"input_bit_register_108", bool() },
428 {
"input_bit_register_109", bool() },
429 {
"input_bit_register_110", bool() },
430 {
"input_bit_register_111", bool() },
431 {
"input_bit_register_112", bool() },
432 {
"input_bit_register_113", bool() },
433 {
"input_bit_register_114", bool() },
434 {
"input_bit_register_115", bool() },
435 {
"input_bit_register_116", bool() },
436 {
"input_bit_register_117", bool() },
437 {
"input_bit_register_118", bool() },
438 {
"input_bit_register_119", bool() },
439 {
"input_bit_register_120", bool() },
440 {
"input_bit_register_121", bool() },
441 {
"input_bit_register_122", bool() },
442 {
"input_bit_register_123", bool() },
443 {
"input_bit_register_124", bool() },
444 {
"input_bit_register_125", bool() },
445 {
"input_bit_register_126", bool() },
446 {
"input_bit_register_127", bool() },
447 {
"input_int_register_0", int32_t() },
448 {
"input_int_register_1", int32_t() },
449 {
"input_int_register_2", int32_t() },
450 {
"input_int_register_3", int32_t() },
451 {
"input_int_register_4", int32_t() },
452 {
"input_int_register_5", int32_t() },
453 {
"input_int_register_6", int32_t() },
454 {
"input_int_register_7", int32_t() },
455 {
"input_int_register_8", int32_t() },
456 {
"input_int_register_9", int32_t() },
457 {
"input_int_register_10", int32_t() },
458 {
"input_int_register_11", int32_t() },
459 {
"input_int_register_12", int32_t() },
460 {
"input_int_register_13", int32_t() },
461 {
"input_int_register_14", int32_t() },
462 {
"input_int_register_15", int32_t() },
463 {
"input_int_register_16", int32_t() },
464 {
"input_int_register_17", int32_t() },
465 {
"input_int_register_18", int32_t() },
466 {
"input_int_register_19", int32_t() },
467 {
"input_int_register_20", int32_t() },
468 {
"input_int_register_21", int32_t() },
469 {
"input_int_register_22", int32_t() },
470 {
"input_int_register_23", int32_t() },
471 {
"input_int_register_24", int32_t() },
472 {
"input_int_register_25", int32_t() },
473 {
"input_int_register_26", int32_t() },
474 {
"input_int_register_27", int32_t() },
475 {
"input_int_register_28", int32_t() },
476 {
"input_int_register_29", int32_t() },
477 {
"input_int_register_30", int32_t() },
478 {
"input_int_register_31", int32_t() },
479 {
"input_int_register_32", int32_t() },
480 {
"input_int_register_33", int32_t() },
481 {
"input_int_register_34", int32_t() },
482 {
"input_int_register_35", int32_t() },
483 {
"input_int_register_36", int32_t() },
484 {
"input_int_register_37", int32_t() },
485 {
"input_int_register_38", int32_t() },
486 {
"input_int_register_39", int32_t() },
487 {
"input_int_register_40", int32_t() },
488 {
"input_int_register_41", int32_t() },
489 {
"input_int_register_42", int32_t() },
490 {
"input_int_register_43", int32_t() },
491 {
"input_int_register_44", int32_t() },
492 {
"input_int_register_45", int32_t() },
493 {
"input_int_register_46", int32_t() },
494 {
"input_int_register_47", int32_t() },
495 {
"input_double_register_0", double() },
496 {
"input_double_register_1", double() },
497 {
"input_double_register_2", double() },
498 {
"input_double_register_3", double() },
499 {
"input_double_register_4", double() },
500 {
"input_double_register_5", double() },
501 {
"input_double_register_6", double() },
502 {
"input_double_register_7", double() },
503 {
"input_double_register_8", double() },
504 {
"input_double_register_9", double() },
505 {
"input_double_register_10", double() },
506 {
"input_double_register_11", double() },
507 {
"input_double_register_12", double() },
508 {
"input_double_register_13", double() },
509 {
"input_double_register_14", double() },
510 {
"input_double_register_15", double() },
511 {
"input_double_register_16", double() },
512 {
"input_double_register_17", double() },
513 {
"input_double_register_18", double() },
514 {
"input_double_register_19", double() },
515 {
"input_double_register_20", double() },
516 {
"input_double_register_21", double() },
517 {
"input_double_register_22", double() },
518 {
"input_double_register_23", double() },
519 {
"input_double_register_24", double() },
520 {
"input_double_register_25", double() },
521 {
"input_double_register_26", double() },
522 {
"input_double_register_27", double() },
523 {
"input_double_register_28", double() },
524 {
"input_double_register_29", double() },
525 {
"input_double_register_30", double() },
526 {
"input_double_register_31", double() },
527 {
"input_double_register_32", double() },
528 {
"input_double_register_33", double() },
529 {
"input_double_register_34", double() },
530 {
"input_double_register_35", double() },
531 {
"input_double_register_36", double() },
532 {
"input_double_register_37", double() },
533 {
"input_double_register_38", double() },
534 {
"input_double_register_39", double() },
535 {
"input_double_register_40", double() },
536 {
"input_double_register_41", double() },
537 {
"input_double_register_42", double() },
538 {
"input_double_register_43", double() },
539 {
"input_double_register_44", double() },
540 {
"input_double_register_45", double() },
541 {
"input_double_register_46", double() },
542 {
"input_double_register_47", double() },
543 {
"speed_slider_mask", uint32_t() },
544 {
"speed_slider_fraction", double() },
545 {
"standard_digital_output_mask", uint8_t() },
546 {
"standard_digital_output", uint8_t() },
547 {
"configurable_digital_output_mask", uint8_t() },
548 {
"configurable_digital_output", uint8_t() },
549 {
"tool_digital_output_mask", uint8_t() },
550 {
"tool_digital_output", uint8_t() },
551 {
"standard_analog_output_mask", uint8_t() },
552 {
"standard_analog_output_type", uint8_t() },
553 {
"standard_analog_output_0", double() },
554 {
"standard_analog_output_1", double() },
559 for (
auto& item : recipe_)
561 if (g_type_list.find(item) != g_type_list.end())
571 bp.
parse(recipe_id_);
572 for (
auto& item : recipe_)
574 if (g_type_list.find(item) != g_type_list.end())
577 auto bound_visitor = std::bind(
ParseVisitor(), std::placeholders::_1, bp);
578 boost::apply_visitor(bound_visitor, entry);
591 std::stringstream ss;
592 for (
auto& item : data_)
594 ss << item.first <<
": ";
595 ss << boost::apply_visitor(
StringVisitor{}, item.second) << std::endl;
602 uint16_t payload_size =
sizeof(recipe_id_);
604 for (
auto& item : data_)
606 payload_size += boost::apply_visitor(
SizeVisitor{}, item.second);
611 for (
auto& item : recipe_)
613 auto bound_visitor = std::bind(
SerializeVisitor(), std::placeholders::_1, buffer + size);
614 size += boost::apply_visitor(bound_visitor, data_[item]);
void parse(T &val)
Parses the next bytes as given type.
The BinParser class handles a byte buffer and functionality to iteratively parse the content...
std::array< double, 3 > vector3d_t
boost::variant< bool, uint8_t, uint32_t, uint64_t, int32_t, double, vector3d_t, vector6d_t, vector6int32_t, vector6uint32_t, std::string > _rtde_type_variant
virtual std::string toString() const
Produces a human readable representation of the package object.
std::array< int32_t, 6 > vector6int32_t
virtual bool parseWith(comm::BinParser &bp)
Sets the attributes of the package by parsing a serialized representation of the package.
size_t serializePackage(uint8_t *buffer)
Serializes the package.
static size_t serialize(uint8_t *buffer, T val)
A generalized serialization method for arbitrary datatypes.
std::array< double, 6 > vector6d_t
void initEmpty()
Initializes to contained list with empty values based on the recipe.
static std::unordered_map< std::string, _rtde_type_variant > g_type_list