24 #include <interfaces/Roomba500Interface.h>
26 #include <core/exceptions/software.h>
46 Roomba500Interface::Roomba500Interface() : Interface()
48 data_size =
sizeof(Roomba500Interface_data_t);
49 data_ptr = malloc(data_size);
50 data = (Roomba500Interface_data_t *)data_ptr;
51 data_ts = (interface_data_ts_t *)data_ptr;
52 memset(data_ptr, 0, data_size);
53 enum_map_Mode[(int)MODE_OFF] =
"MODE_OFF";
54 enum_map_Mode[(int)MODE_PASSIVE] =
"MODE_PASSIVE";
55 enum_map_Mode[(int)MODE_SAFE] =
"MODE_SAFE";
56 enum_map_Mode[(int)MODE_FULL] =
"MODE_FULL";
57 enum_map_InfraredCharacter[(int)IR_NONE] =
"IR_NONE";
58 enum_map_InfraredCharacter[(int)IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
59 enum_map_InfraredCharacter[(int)IR_REMOTE_FORWARD] =
"IR_REMOTE_FORWARD";
60 enum_map_InfraredCharacter[(int)IR_REMOTE_RIGHT] =
"IR_REMOTE_RIGHT";
61 enum_map_InfraredCharacter[(int)IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
62 enum_map_InfraredCharacter[(int)IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
63 enum_map_InfraredCharacter[(int)IR_REMOTE_SMALL] =
"IR_REMOTE_SMALL";
64 enum_map_InfraredCharacter[(int)IR_REMOTE_MEDIUM] =
"IR_REMOTE_MEDIUM";
65 enum_map_InfraredCharacter[(int)IR_REMOTE_LARGE_CLEAN] =
"IR_REMOTE_LARGE_CLEAN";
66 enum_map_InfraredCharacter[(int)IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
67 enum_map_InfraredCharacter[(int)IR_REMOTE_POWER] =
"IR_REMOTE_POWER";
68 enum_map_InfraredCharacter[(int)IR_REMOTE_ARC_LEFT] =
"IR_REMOTE_ARC_LEFT";
69 enum_map_InfraredCharacter[(int)IR_REMOTE_ARC_RIGHT] =
"IR_REMOTE_ARC_RIGHT";
70 enum_map_InfraredCharacter[(int)IR_REMOTE_STOP2] =
"IR_REMOTE_STOP2";
71 enum_map_InfraredCharacter[(int)IR_SCHED_REMOTE_DOWNLOAD] =
"IR_SCHED_REMOTE_DOWNLOAD";
72 enum_map_InfraredCharacter[(int)IR_SCHED_REMOTE_SEEK_DOCK] =
"IR_SCHED_REMOTE_SEEK_DOCK";
73 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_RESERVED] =
"IR_DISC_DOCK_RESERVED";
74 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_RED_BUOY] =
"IR_DISC_DOCK_RED_BUOY";
75 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_GREEN_BUOY] =
"IR_DISC_DOCK_GREEN_BUOY";
76 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_FORCE_FIELD] =
"IR_DISC_DOCK_FORCE_FIELD";
77 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_RED_GREEN_BUOY] =
"IR_DISC_DOCK_RED_GREEN_BUOY";
78 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_RED_BUOY_FORCE_FIELD] =
"IR_DISC_DOCK_RED_BUOY_FORCE_FIELD";
79 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_GREEN_BUOY_FORCE_FIELD] =
"IR_DISC_DOCK_GREEN_BUOY_FORCE_FIELD";
80 enum_map_InfraredCharacter[(int)IR_DISC_DOCK_RED_GREEN_BUOY_FORCE_FIELD] =
"IR_DISC_DOCK_RED_GREEN_BUOY_FORCE_FIELD";
81 enum_map_InfraredCharacter[(int)IR_DOCK_RESERVED] =
"IR_DOCK_RESERVED";
82 enum_map_InfraredCharacter[(int)IR_DOCK_RED_BUOY] =
"IR_DOCK_RED_BUOY";
83 enum_map_InfraredCharacter[(int)IR_DOCK_GREEN_BUOY] =
"IR_DOCK_GREEN_BUOY";
84 enum_map_InfraredCharacter[(int)IR_DOCK_FORCE_FIELD] =
"IR_DOCK_FORCE_FIELD";
85 enum_map_InfraredCharacter[(int)IR_DOCK_RED_GREEN_BUOY] =
"IR_DOCK_RED_GREEN_BUOY";
86 enum_map_InfraredCharacter[(int)IR_DOCK_RED_BUOY_FORCE_FIELD] =
"IR_DOCK_RED_BUOY_FORCE_FIELD";
87 enum_map_InfraredCharacter[(int)IR_DOCK_GREEN_BUOY_FORCE_FIELD] =
"IR_DOCK_GREEN_BUOY_FORCE_FIELD";
88 enum_map_InfraredCharacter[(int)IR_DOCK_RED_GREEN_BUOY_FORCE_FIELD] =
"IR_DOCK_RED_GREEN_BUOY_FORCE_FIELD";
89 enum_map_InfraredCharacter[(int)IR_VIRTUAL_WALL] =
"IR_VIRTUAL_WALL";
90 enum_map_ChargingState[(int)CHARGING_NO] =
"CHARGING_NO";
91 enum_map_ChargingState[(int)CHARGING_RECONDITIONING] =
"CHARGING_RECONDITIONING";
92 enum_map_ChargingState[(int)CHARGING_FULL] =
"CHARGING_FULL";
93 enum_map_ChargingState[(int)CHARGING_TRICKLE] =
"CHARGING_TRICKLE";
94 enum_map_ChargingState[(int)CHARGING_WAITING] =
"CHARGING_WAITING";
95 enum_map_ChargingState[(int)CHARGING_ERROR] =
"CHARGING_ERROR";
96 enum_map_BrushState[(int)BRUSHSTATE_OFF] =
"BRUSHSTATE_OFF";
97 enum_map_BrushState[(int)BRUSHSTATE_FORWARD] =
"BRUSHSTATE_FORWARD";
98 enum_map_BrushState[(int)BRUSHSTATE_BACKWARD] =
"BRUSHSTATE_BACKWARD";
99 add_fieldinfo(IFT_ENUM,
"mode", 1, &data->mode,
"Mode", &enum_map_Mode);
100 add_fieldinfo(IFT_BOOL,
"wheel_drop_left", 1, &data->wheel_drop_left);
101 add_fieldinfo(IFT_BOOL,
"wheel_drop_right", 1, &data->wheel_drop_right);
102 add_fieldinfo(IFT_BOOL,
"bump_left", 1, &data->bump_left);
103 add_fieldinfo(IFT_BOOL,
"bump_right", 1, &data->bump_right);
104 add_fieldinfo(IFT_BOOL,
"wall", 1, &data->wall);
105 add_fieldinfo(IFT_BOOL,
"cliff_left", 1, &data->cliff_left);
106 add_fieldinfo(IFT_BOOL,
"cliff_front_left", 1, &data->cliff_front_left);
107 add_fieldinfo(IFT_BOOL,
"cliff_front_right", 1, &data->cliff_front_right);
108 add_fieldinfo(IFT_BOOL,
"cliff_right", 1, &data->cliff_right);
109 add_fieldinfo(IFT_BOOL,
"virtual_wall", 1, &data->virtual_wall);
110 add_fieldinfo(IFT_BOOL,
"overcurrent_side_brush", 1, &data->overcurrent_side_brush);
111 add_fieldinfo(IFT_BOOL,
"overcurrent_main_brush", 1, &data->overcurrent_main_brush);
112 add_fieldinfo(IFT_BOOL,
"overcurrent_left_wheel", 1, &data->overcurrent_left_wheel);
113 add_fieldinfo(IFT_BOOL,
"overcurrent_right_wheel", 1, &data->overcurrent_right_wheel);
114 add_fieldinfo(IFT_BOOL,
"dirt_detect", 1, &data->dirt_detect);
115 add_fieldinfo(IFT_ENUM,
"ir_opcode_omni", 1, &data->ir_opcode_omni,
"InfraredCharacter", &enum_map_InfraredCharacter);
116 add_fieldinfo(IFT_BOOL,
"button_clean", 1, &data->button_clean);
117 add_fieldinfo(IFT_BOOL,
"button_spot", 1, &data->button_spot);
118 add_fieldinfo(IFT_BOOL,
"button_dock", 1, &data->button_dock);
119 add_fieldinfo(IFT_BOOL,
"button_minute", 1, &data->button_minute);
120 add_fieldinfo(IFT_BOOL,
"button_hour", 1, &data->button_hour);
121 add_fieldinfo(IFT_BOOL,
"button_day", 1, &data->button_day);
122 add_fieldinfo(IFT_BOOL,
"button_schedule", 1, &data->button_schedule);
123 add_fieldinfo(IFT_BOOL,
"button_clock", 1, &data->button_clock);
124 add_fieldinfo(IFT_INT16,
"distance", 1, &data->distance);
125 add_fieldinfo(IFT_INT16,
"angle", 1, &data->angle);
126 add_fieldinfo(IFT_ENUM,
"charging_state", 1, &data->charging_state,
"ChargingState", &enum_map_ChargingState);
127 add_fieldinfo(IFT_UINT16,
"voltage", 1, &data->voltage);
128 add_fieldinfo(IFT_INT16,
"current", 1, &data->current);
129 add_fieldinfo(IFT_INT8,
"temperature", 1, &data->temperature);
130 add_fieldinfo(IFT_UINT16,
"battery_charge", 1, &data->battery_charge);
131 add_fieldinfo(IFT_UINT16,
"battery_capacity", 1, &data->battery_capacity);
132 add_fieldinfo(IFT_UINT16,
"wall_signal", 1, &data->wall_signal);
133 add_fieldinfo(IFT_UINT16,
"cliff_left_signal", 1, &data->cliff_left_signal);
134 add_fieldinfo(IFT_UINT16,
"cliff_front_left_signal", 1, &data->cliff_front_left_signal);
135 add_fieldinfo(IFT_UINT16,
"cliff_front_right_signal", 1, &data->cliff_front_right_signal);
136 add_fieldinfo(IFT_UINT16,
"cliff_right_signal", 1, &data->cliff_right_signal);
137 add_fieldinfo(IFT_BOOL,
"home_base_charger_available", 1, &data->home_base_charger_available);
138 add_fieldinfo(IFT_BOOL,
"internal_charger_available", 1, &data->internal_charger_available);
139 add_fieldinfo(IFT_UINT8,
"song_number", 1, &data->song_number);
140 add_fieldinfo(IFT_BOOL,
"song_playing", 1, &data->song_playing);
141 add_fieldinfo(IFT_INT16,
"velocity", 1, &data->velocity);
142 add_fieldinfo(IFT_INT16,
"radius", 1, &data->radius);
143 add_fieldinfo(IFT_INT16,
"velocity_right", 1, &data->velocity_right);
144 add_fieldinfo(IFT_INT16,
"velocity_left", 1, &data->velocity_left);
145 add_fieldinfo(IFT_UINT16,
"encoder_counts_left", 1, &data->encoder_counts_left);
146 add_fieldinfo(IFT_UINT16,
"encoder_counts_right", 1, &data->encoder_counts_right);
147 add_fieldinfo(IFT_BOOL,
"bumper_left", 1, &data->bumper_left);
148 add_fieldinfo(IFT_BOOL,
"bumper_front_left", 1, &data->bumper_front_left);
149 add_fieldinfo(IFT_BOOL,
"bumper_center_left", 1, &data->bumper_center_left);
150 add_fieldinfo(IFT_BOOL,
"bumper_center_right", 1, &data->bumper_center_right);
151 add_fieldinfo(IFT_BOOL,
"bumper_front_right", 1, &data->bumper_front_right);
152 add_fieldinfo(IFT_BOOL,
"bumper_right", 1, &data->bumper_right);
153 add_fieldinfo(IFT_UINT16,
"light_bump_left", 1, &data->light_bump_left);
154 add_fieldinfo(IFT_UINT16,
"light_bump_front_left", 1, &data->light_bump_front_left);
155 add_fieldinfo(IFT_UINT16,
"light_bump_center_left", 1, &data->light_bump_center_left);
156 add_fieldinfo(IFT_UINT16,
"light_bump_center_right", 1, &data->light_bump_center_right);
157 add_fieldinfo(IFT_UINT16,
"light_bump_front_right", 1, &data->light_bump_front_right);
158 add_fieldinfo(IFT_UINT16,
"light_bump_right", 1, &data->light_bump_right);
159 add_fieldinfo(IFT_ENUM,
"ir_opcode_left", 1, &data->ir_opcode_left,
"InfraredCharacter", &enum_map_InfraredCharacter);
160 add_fieldinfo(IFT_ENUM,
"ir_opcode_right", 1, &data->ir_opcode_right,
"InfraredCharacter", &enum_map_InfraredCharacter);
161 add_fieldinfo(IFT_INT16,
"left_motor_current", 1, &data->left_motor_current);
162 add_fieldinfo(IFT_INT16,
"right_motor_current", 1, &data->right_motor_current);
163 add_fieldinfo(IFT_INT16,
"main_brush_current", 1, &data->main_brush_current);
164 add_fieldinfo(IFT_INT16,
"side_brush_current", 1, &data->side_brush_current);
165 add_fieldinfo(IFT_BOOL,
"caster_stasis", 1, &data->caster_stasis);
166 add_messageinfo(
"StopMessage");
167 add_messageinfo(
"DockMessage");
168 add_messageinfo(
"SetModeMessage");
169 add_messageinfo(
"DriveStraightMessage");
170 add_messageinfo(
"DriveMessage");
171 add_messageinfo(
"SetMotorsMessage");
172 unsigned char tmp_hash[] = {0x60, 0xa1, 0x1e, 0x86, 0x89, 0x2, 0x20, 0x34, 0x89, 0x32, 0xdb, 0x69, 0xee, 0x12, 0x86, 0x43};
177 Roomba500Interface::~Roomba500Interface()
186 Roomba500Interface::tostring_Mode(Mode value)
const
189 case MODE_OFF:
return "MODE_OFF";
190 case MODE_PASSIVE:
return "MODE_PASSIVE";
191 case MODE_SAFE:
return "MODE_SAFE";
192 case MODE_FULL:
return "MODE_FULL";
193 default:
return "UNKNOWN";
201 Roomba500Interface::tostring_InfraredCharacter(InfraredCharacter value)
const
204 case IR_NONE:
return "IR_NONE";
205 case IR_REMOTE_LEFT:
return "IR_REMOTE_LEFT";
206 case IR_REMOTE_FORWARD:
return "IR_REMOTE_FORWARD";
207 case IR_REMOTE_RIGHT:
return "IR_REMOTE_RIGHT";
208 case IR_REMOTE_SPOT:
return "IR_REMOTE_SPOT";
209 case IR_REMOTE_MAX:
return "IR_REMOTE_MAX";
210 case IR_REMOTE_SMALL:
return "IR_REMOTE_SMALL";
211 case IR_REMOTE_MEDIUM:
return "IR_REMOTE_MEDIUM";
212 case IR_REMOTE_LARGE_CLEAN:
return "IR_REMOTE_LARGE_CLEAN";
213 case IR_REMOTE_STOP:
return "IR_REMOTE_STOP";
214 case IR_REMOTE_POWER:
return "IR_REMOTE_POWER";
215 case IR_REMOTE_ARC_LEFT:
return "IR_REMOTE_ARC_LEFT";
216 case IR_REMOTE_ARC_RIGHT:
return "IR_REMOTE_ARC_RIGHT";
217 case IR_REMOTE_STOP2:
return "IR_REMOTE_STOP2";
218 case IR_SCHED_REMOTE_DOWNLOAD:
return "IR_SCHED_REMOTE_DOWNLOAD";
219 case IR_SCHED_REMOTE_SEEK_DOCK:
return "IR_SCHED_REMOTE_SEEK_DOCK";
220 case IR_DISC_DOCK_RESERVED:
return "IR_DISC_DOCK_RESERVED";
221 case IR_DISC_DOCK_RED_BUOY:
return "IR_DISC_DOCK_RED_BUOY";
222 case IR_DISC_DOCK_GREEN_BUOY:
return "IR_DISC_DOCK_GREEN_BUOY";
223 case IR_DISC_DOCK_FORCE_FIELD:
return "IR_DISC_DOCK_FORCE_FIELD";
224 case IR_DISC_DOCK_RED_GREEN_BUOY:
return "IR_DISC_DOCK_RED_GREEN_BUOY";
225 case IR_DISC_DOCK_RED_BUOY_FORCE_FIELD:
return "IR_DISC_DOCK_RED_BUOY_FORCE_FIELD";
226 case IR_DISC_DOCK_GREEN_BUOY_FORCE_FIELD:
return "IR_DISC_DOCK_GREEN_BUOY_FORCE_FIELD";
227 case IR_DISC_DOCK_RED_GREEN_BUOY_FORCE_FIELD:
return "IR_DISC_DOCK_RED_GREEN_BUOY_FORCE_FIELD";
228 case IR_DOCK_RESERVED:
return "IR_DOCK_RESERVED";
229 case IR_DOCK_RED_BUOY:
return "IR_DOCK_RED_BUOY";
230 case IR_DOCK_GREEN_BUOY:
return "IR_DOCK_GREEN_BUOY";
231 case IR_DOCK_FORCE_FIELD:
return "IR_DOCK_FORCE_FIELD";
232 case IR_DOCK_RED_GREEN_BUOY:
return "IR_DOCK_RED_GREEN_BUOY";
233 case IR_DOCK_RED_BUOY_FORCE_FIELD:
return "IR_DOCK_RED_BUOY_FORCE_FIELD";
234 case IR_DOCK_GREEN_BUOY_FORCE_FIELD:
return "IR_DOCK_GREEN_BUOY_FORCE_FIELD";
235 case IR_DOCK_RED_GREEN_BUOY_FORCE_FIELD:
return "IR_DOCK_RED_GREEN_BUOY_FORCE_FIELD";
236 case IR_VIRTUAL_WALL:
return "IR_VIRTUAL_WALL";
237 default:
return "UNKNOWN";
245 Roomba500Interface::tostring_ChargingState(ChargingState value)
const
248 case CHARGING_NO:
return "CHARGING_NO";
249 case CHARGING_RECONDITIONING:
return "CHARGING_RECONDITIONING";
250 case CHARGING_FULL:
return "CHARGING_FULL";
251 case CHARGING_TRICKLE:
return "CHARGING_TRICKLE";
252 case CHARGING_WAITING:
return "CHARGING_WAITING";
253 case CHARGING_ERROR:
return "CHARGING_ERROR";
254 default:
return "UNKNOWN";
262 Roomba500Interface::tostring_BrushState(BrushState value)
const
265 case BRUSHSTATE_OFF:
return "BRUSHSTATE_OFF";
266 case BRUSHSTATE_FORWARD:
return "BRUSHSTATE_FORWARD";
267 case BRUSHSTATE_BACKWARD:
return "BRUSHSTATE_BACKWARD";
268 default:
return "UNKNOWN";
276 Roomba500Interface::Mode
277 Roomba500Interface::mode()
const
279 return (Roomba500Interface::Mode)data->mode;
287 Roomba500Interface::maxlenof_mode()
const
297 Roomba500Interface::set_mode(
const Mode new_mode)
299 data->mode = new_mode;
308 Roomba500Interface::is_wheel_drop_left()
const
310 return data->wheel_drop_left;
318 Roomba500Interface::maxlenof_wheel_drop_left()
const
328 Roomba500Interface::set_wheel_drop_left(
const bool new_wheel_drop_left)
330 data->wheel_drop_left = new_wheel_drop_left;
339 Roomba500Interface::is_wheel_drop_right()
const
341 return data->wheel_drop_right;
349 Roomba500Interface::maxlenof_wheel_drop_right()
const
359 Roomba500Interface::set_wheel_drop_right(
const bool new_wheel_drop_right)
361 data->wheel_drop_right = new_wheel_drop_right;
370 Roomba500Interface::is_bump_left()
const
372 return data->bump_left;
380 Roomba500Interface::maxlenof_bump_left()
const
390 Roomba500Interface::set_bump_left(
const bool new_bump_left)
392 data->bump_left = new_bump_left;
401 Roomba500Interface::is_bump_right()
const
403 return data->bump_right;
411 Roomba500Interface::maxlenof_bump_right()
const
421 Roomba500Interface::set_bump_right(
const bool new_bump_right)
423 data->bump_right = new_bump_right;
432 Roomba500Interface::is_wall()
const
442 Roomba500Interface::maxlenof_wall()
const
452 Roomba500Interface::set_wall(
const bool new_wall)
454 data->wall = new_wall;
463 Roomba500Interface::is_cliff_left()
const
465 return data->cliff_left;
473 Roomba500Interface::maxlenof_cliff_left()
const
483 Roomba500Interface::set_cliff_left(
const bool new_cliff_left)
485 data->cliff_left = new_cliff_left;
494 Roomba500Interface::is_cliff_front_left()
const
496 return data->cliff_front_left;
504 Roomba500Interface::maxlenof_cliff_front_left()
const
514 Roomba500Interface::set_cliff_front_left(
const bool new_cliff_front_left)
516 data->cliff_front_left = new_cliff_front_left;
525 Roomba500Interface::is_cliff_front_right()
const
527 return data->cliff_front_right;
535 Roomba500Interface::maxlenof_cliff_front_right()
const
545 Roomba500Interface::set_cliff_front_right(
const bool new_cliff_front_right)
547 data->cliff_front_right = new_cliff_front_right;
556 Roomba500Interface::is_cliff_right()
const
558 return data->cliff_right;
566 Roomba500Interface::maxlenof_cliff_right()
const
576 Roomba500Interface::set_cliff_right(
const bool new_cliff_right)
578 data->cliff_right = new_cliff_right;
587 Roomba500Interface::is_virtual_wall()
const
589 return data->virtual_wall;
597 Roomba500Interface::maxlenof_virtual_wall()
const
607 Roomba500Interface::set_virtual_wall(
const bool new_virtual_wall)
609 data->virtual_wall = new_virtual_wall;
618 Roomba500Interface::is_overcurrent_side_brush()
const
620 return data->overcurrent_side_brush;
628 Roomba500Interface::maxlenof_overcurrent_side_brush()
const
638 Roomba500Interface::set_overcurrent_side_brush(
const bool new_overcurrent_side_brush)
640 data->overcurrent_side_brush = new_overcurrent_side_brush;
649 Roomba500Interface::is_overcurrent_main_brush()
const
651 return data->overcurrent_main_brush;
659 Roomba500Interface::maxlenof_overcurrent_main_brush()
const
669 Roomba500Interface::set_overcurrent_main_brush(
const bool new_overcurrent_main_brush)
671 data->overcurrent_main_brush = new_overcurrent_main_brush;
680 Roomba500Interface::is_overcurrent_left_wheel()
const
682 return data->overcurrent_left_wheel;
690 Roomba500Interface::maxlenof_overcurrent_left_wheel()
const
700 Roomba500Interface::set_overcurrent_left_wheel(
const bool new_overcurrent_left_wheel)
702 data->overcurrent_left_wheel = new_overcurrent_left_wheel;
711 Roomba500Interface::is_overcurrent_right_wheel()
const
713 return data->overcurrent_right_wheel;
721 Roomba500Interface::maxlenof_overcurrent_right_wheel()
const
731 Roomba500Interface::set_overcurrent_right_wheel(
const bool new_overcurrent_right_wheel)
733 data->overcurrent_right_wheel = new_overcurrent_right_wheel;
742 Roomba500Interface::is_dirt_detect()
const
744 return data->dirt_detect;
752 Roomba500Interface::maxlenof_dirt_detect()
const
762 Roomba500Interface::set_dirt_detect(
const bool new_dirt_detect)
764 data->dirt_detect = new_dirt_detect;
773 Roomba500Interface::ir_opcode_omni()
const
783 Roomba500Interface::maxlenof_ir_opcode_omni()
const
793 Roomba500Interface::set_ir_opcode_omni(
const InfraredCharacter new_ir_opcode_omni)
795 data->ir_opcode_omni = new_ir_opcode_omni;
804 Roomba500Interface::is_button_clean()
const
806 return data->button_clean;
814 Roomba500Interface::maxlenof_button_clean()
const
824 Roomba500Interface::set_button_clean(
const bool new_button_clean)
826 data->button_clean = new_button_clean;
835 Roomba500Interface::is_button_spot()
const
837 return data->button_spot;
845 Roomba500Interface::maxlenof_button_spot()
const
855 Roomba500Interface::set_button_spot(
const bool new_button_spot)
857 data->button_spot = new_button_spot;
866 Roomba500Interface::is_button_dock()
const
868 return data->button_dock;
876 Roomba500Interface::maxlenof_button_dock()
const
886 Roomba500Interface::set_button_dock(
const bool new_button_dock)
888 data->button_dock = new_button_dock;
897 Roomba500Interface::is_button_minute()
const
899 return data->button_minute;
907 Roomba500Interface::maxlenof_button_minute()
const
917 Roomba500Interface::set_button_minute(
const bool new_button_minute)
919 data->button_minute = new_button_minute;
928 Roomba500Interface::is_button_hour()
const
930 return data->button_hour;
938 Roomba500Interface::maxlenof_button_hour()
const
948 Roomba500Interface::set_button_hour(
const bool new_button_hour)
950 data->button_hour = new_button_hour;
959 Roomba500Interface::is_button_day()
const
961 return data->button_day;
969 Roomba500Interface::maxlenof_button_day()
const
979 Roomba500Interface::set_button_day(
const bool new_button_day)
981 data->button_day = new_button_day;
990 Roomba500Interface::is_button_schedule()
const
992 return data->button_schedule;
1000 Roomba500Interface::maxlenof_button_schedule()
const
1010 Roomba500Interface::set_button_schedule(
const bool new_button_schedule)
1012 data->button_schedule = new_button_schedule;
1013 data_changed =
true;
1021 Roomba500Interface::is_button_clock()
const
1023 return data->button_clock;
1031 Roomba500Interface::maxlenof_button_clock()
const
1041 Roomba500Interface::set_button_clock(
const bool new_button_clock)
1043 data->button_clock = new_button_clock;
1044 data_changed =
true;
1052 Roomba500Interface::distance()
const
1054 return data->distance;
1062 Roomba500Interface::maxlenof_distance()
const
1072 Roomba500Interface::set_distance(
const int16_t new_distance)
1074 data->distance = new_distance;
1075 data_changed =
true;
1083 Roomba500Interface::angle()
const
1093 Roomba500Interface::maxlenof_angle()
const
1103 Roomba500Interface::set_angle(
const int16_t new_angle)
1105 data->angle = new_angle;
1106 data_changed =
true;
1114 Roomba500Interface::charging_state()
const
1124 Roomba500Interface::maxlenof_charging_state()
const
1134 Roomba500Interface::set_charging_state(
const ChargingState new_charging_state)
1136 data->charging_state = new_charging_state;
1137 data_changed =
true;
1145 Roomba500Interface::voltage()
const
1147 return data->voltage;
1155 Roomba500Interface::maxlenof_voltage()
const
1165 Roomba500Interface::set_voltage(
const uint16_t new_voltage)
1167 data->voltage = new_voltage;
1168 data_changed =
true;
1176 Roomba500Interface::current()
const
1178 return data->current;
1186 Roomba500Interface::maxlenof_current()
const
1196 Roomba500Interface::set_current(
const int16_t new_current)
1198 data->current = new_current;
1199 data_changed =
true;
1207 Roomba500Interface::temperature()
const
1209 return data->temperature;
1217 Roomba500Interface::maxlenof_temperature()
const
1227 Roomba500Interface::set_temperature(
const int8_t new_temperature)
1229 data->temperature = new_temperature;
1230 data_changed =
true;
1238 Roomba500Interface::battery_charge()
const
1240 return data->battery_charge;
1248 Roomba500Interface::maxlenof_battery_charge()
const
1258 Roomba500Interface::set_battery_charge(
const uint16_t new_battery_charge)
1260 data->battery_charge = new_battery_charge;
1261 data_changed =
true;
1269 Roomba500Interface::battery_capacity()
const
1271 return data->battery_capacity;
1279 Roomba500Interface::maxlenof_battery_capacity()
const
1289 Roomba500Interface::set_battery_capacity(
const uint16_t new_battery_capacity)
1291 data->battery_capacity = new_battery_capacity;
1292 data_changed =
true;
1300 Roomba500Interface::wall_signal()
const
1302 return data->wall_signal;
1310 Roomba500Interface::maxlenof_wall_signal()
const
1320 Roomba500Interface::set_wall_signal(
const uint16_t new_wall_signal)
1322 data->wall_signal = new_wall_signal;
1323 data_changed =
true;
1331 Roomba500Interface::cliff_left_signal()
const
1333 return data->cliff_left_signal;
1341 Roomba500Interface::maxlenof_cliff_left_signal()
const
1351 Roomba500Interface::set_cliff_left_signal(
const uint16_t new_cliff_left_signal)
1353 data->cliff_left_signal = new_cliff_left_signal;
1354 data_changed =
true;
1363 Roomba500Interface::cliff_front_left_signal()
const
1365 return data->cliff_front_left_signal;
1373 Roomba500Interface::maxlenof_cliff_front_left_signal()
const
1384 Roomba500Interface::set_cliff_front_left_signal(
const uint16_t new_cliff_front_left_signal)
1386 data->cliff_front_left_signal = new_cliff_front_left_signal;
1387 data_changed =
true;
1396 Roomba500Interface::cliff_front_right_signal()
const
1398 return data->cliff_front_right_signal;
1406 Roomba500Interface::maxlenof_cliff_front_right_signal()
const
1417 Roomba500Interface::set_cliff_front_right_signal(
const uint16_t new_cliff_front_right_signal)
1419 data->cliff_front_right_signal = new_cliff_front_right_signal;
1420 data_changed =
true;
1428 Roomba500Interface::cliff_right_signal()
const
1430 return data->cliff_right_signal;
1438 Roomba500Interface::maxlenof_cliff_right_signal()
const
1448 Roomba500Interface::set_cliff_right_signal(
const uint16_t new_cliff_right_signal)
1450 data->cliff_right_signal = new_cliff_right_signal;
1451 data_changed =
true;
1460 Roomba500Interface::is_home_base_charger_available()
const
1462 return data->home_base_charger_available;
1470 Roomba500Interface::maxlenof_home_base_charger_available()
const
1481 Roomba500Interface::set_home_base_charger_available(
const bool new_home_base_charger_available)
1483 data->home_base_charger_available = new_home_base_charger_available;
1484 data_changed =
true;
1493 Roomba500Interface::is_internal_charger_available()
const
1495 return data->internal_charger_available;
1503 Roomba500Interface::maxlenof_internal_charger_available()
const
1514 Roomba500Interface::set_internal_charger_available(
const bool new_internal_charger_available)
1516 data->internal_charger_available = new_internal_charger_available;
1517 data_changed =
true;
1525 Roomba500Interface::song_number()
const
1527 return data->song_number;
1535 Roomba500Interface::maxlenof_song_number()
const
1545 Roomba500Interface::set_song_number(
const uint8_t new_song_number)
1547 data->song_number = new_song_number;
1548 data_changed =
true;
1556 Roomba500Interface::is_song_playing()
const
1558 return data->song_playing;
1566 Roomba500Interface::maxlenof_song_playing()
const
1576 Roomba500Interface::set_song_playing(
const bool new_song_playing)
1578 data->song_playing = new_song_playing;
1579 data_changed =
true;
1587 Roomba500Interface::velocity()
const
1589 return data->velocity;
1597 Roomba500Interface::maxlenof_velocity()
const
1607 Roomba500Interface::set_velocity(
const int16_t new_velocity)
1609 data->velocity = new_velocity;
1610 data_changed =
true;
1618 Roomba500Interface::radius()
const
1620 return data->radius;
1628 Roomba500Interface::maxlenof_radius()
const
1638 Roomba500Interface::set_radius(
const int16_t new_radius)
1640 data->radius = new_radius;
1641 data_changed =
true;
1649 Roomba500Interface::velocity_right()
const
1651 return data->velocity_right;
1659 Roomba500Interface::maxlenof_velocity_right()
const
1669 Roomba500Interface::set_velocity_right(
const int16_t new_velocity_right)
1671 data->velocity_right = new_velocity_right;
1672 data_changed =
true;
1680 Roomba500Interface::velocity_left()
const
1682 return data->velocity_left;
1690 Roomba500Interface::maxlenof_velocity_left()
const
1700 Roomba500Interface::set_velocity_left(
const int16_t new_velocity_left)
1702 data->velocity_left = new_velocity_left;
1703 data_changed =
true;
1711 Roomba500Interface::encoder_counts_left()
const
1713 return data->encoder_counts_left;
1721 Roomba500Interface::maxlenof_encoder_counts_left()
const
1731 Roomba500Interface::set_encoder_counts_left(
const uint16_t new_encoder_counts_left)
1733 data->encoder_counts_left = new_encoder_counts_left;
1734 data_changed =
true;
1742 Roomba500Interface::encoder_counts_right()
const
1744 return data->encoder_counts_right;
1752 Roomba500Interface::maxlenof_encoder_counts_right()
const
1762 Roomba500Interface::set_encoder_counts_right(
const uint16_t new_encoder_counts_right)
1764 data->encoder_counts_right = new_encoder_counts_right;
1765 data_changed =
true;
1773 Roomba500Interface::is_bumper_left()
const
1775 return data->bumper_left;
1783 Roomba500Interface::maxlenof_bumper_left()
const
1793 Roomba500Interface::set_bumper_left(
const bool new_bumper_left)
1795 data->bumper_left = new_bumper_left;
1796 data_changed =
true;
1804 Roomba500Interface::is_bumper_front_left()
const
1806 return data->bumper_front_left;
1814 Roomba500Interface::maxlenof_bumper_front_left()
const
1824 Roomba500Interface::set_bumper_front_left(
const bool new_bumper_front_left)
1826 data->bumper_front_left = new_bumper_front_left;
1827 data_changed =
true;
1835 Roomba500Interface::is_bumper_center_left()
const
1837 return data->bumper_center_left;
1845 Roomba500Interface::maxlenof_bumper_center_left()
const
1855 Roomba500Interface::set_bumper_center_left(
const bool new_bumper_center_left)
1857 data->bumper_center_left = new_bumper_center_left;
1858 data_changed =
true;
1866 Roomba500Interface::is_bumper_center_right()
const
1868 return data->bumper_center_right;
1876 Roomba500Interface::maxlenof_bumper_center_right()
const
1886 Roomba500Interface::set_bumper_center_right(
const bool new_bumper_center_right)
1888 data->bumper_center_right = new_bumper_center_right;
1889 data_changed =
true;
1897 Roomba500Interface::is_bumper_front_right()
const
1899 return data->bumper_front_right;
1907 Roomba500Interface::maxlenof_bumper_front_right()
const
1917 Roomba500Interface::set_bumper_front_right(
const bool new_bumper_front_right)
1919 data->bumper_front_right = new_bumper_front_right;
1920 data_changed =
true;
1928 Roomba500Interface::is_bumper_right()
const
1930 return data->bumper_right;
1938 Roomba500Interface::maxlenof_bumper_right()
const
1948 Roomba500Interface::set_bumper_right(
const bool new_bumper_right)
1950 data->bumper_right = new_bumper_right;
1951 data_changed =
true;
1959 Roomba500Interface::light_bump_left()
const
1961 return data->light_bump_left;
1969 Roomba500Interface::maxlenof_light_bump_left()
const
1979 Roomba500Interface::set_light_bump_left(
const uint16_t new_light_bump_left)
1981 data->light_bump_left = new_light_bump_left;
1982 data_changed =
true;
1991 Roomba500Interface::light_bump_front_left()
const
1993 return data->light_bump_front_left;
2001 Roomba500Interface::maxlenof_light_bump_front_left()
const
2012 Roomba500Interface::set_light_bump_front_left(
const uint16_t new_light_bump_front_left)
2014 data->light_bump_front_left = new_light_bump_front_left;
2015 data_changed =
true;
2024 Roomba500Interface::light_bump_center_left()
const
2026 return data->light_bump_center_left;
2034 Roomba500Interface::maxlenof_light_bump_center_left()
const
2045 Roomba500Interface::set_light_bump_center_left(
const uint16_t new_light_bump_center_left)
2047 data->light_bump_center_left = new_light_bump_center_left;
2048 data_changed =
true;
2057 Roomba500Interface::light_bump_center_right()
const
2059 return data->light_bump_center_right;
2067 Roomba500Interface::maxlenof_light_bump_center_right()
const
2078 Roomba500Interface::set_light_bump_center_right(
const uint16_t new_light_bump_center_right)
2080 data->light_bump_center_right = new_light_bump_center_right;
2081 data_changed =
true;
2090 Roomba500Interface::light_bump_front_right()
const
2092 return data->light_bump_front_right;
2100 Roomba500Interface::maxlenof_light_bump_front_right()
const
2111 Roomba500Interface::set_light_bump_front_right(
const uint16_t new_light_bump_front_right)
2113 data->light_bump_front_right = new_light_bump_front_right;
2114 data_changed =
true;
2122 Roomba500Interface::light_bump_right()
const
2124 return data->light_bump_right;
2132 Roomba500Interface::maxlenof_light_bump_right()
const
2142 Roomba500Interface::set_light_bump_right(
const uint16_t new_light_bump_right)
2144 data->light_bump_right = new_light_bump_right;
2145 data_changed =
true;
2154 Roomba500Interface::ir_opcode_left()
const
2164 Roomba500Interface::maxlenof_ir_opcode_left()
const
2175 Roomba500Interface::set_ir_opcode_left(
const InfraredCharacter new_ir_opcode_left)
2177 data->ir_opcode_left = new_ir_opcode_left;
2178 data_changed =
true;
2187 Roomba500Interface::ir_opcode_right()
const
2197 Roomba500Interface::maxlenof_ir_opcode_right()
const
2208 Roomba500Interface::set_ir_opcode_right(
const InfraredCharacter new_ir_opcode_right)
2210 data->ir_opcode_right = new_ir_opcode_right;
2211 data_changed =
true;
2219 Roomba500Interface::left_motor_current()
const
2221 return data->left_motor_current;
2229 Roomba500Interface::maxlenof_left_motor_current()
const
2239 Roomba500Interface::set_left_motor_current(
const int16_t new_left_motor_current)
2241 data->left_motor_current = new_left_motor_current;
2242 data_changed =
true;
2250 Roomba500Interface::right_motor_current()
const
2252 return data->right_motor_current;
2260 Roomba500Interface::maxlenof_right_motor_current()
const
2270 Roomba500Interface::set_right_motor_current(
const int16_t new_right_motor_current)
2272 data->right_motor_current = new_right_motor_current;
2273 data_changed =
true;
2281 Roomba500Interface::main_brush_current()
const
2283 return data->main_brush_current;
2291 Roomba500Interface::maxlenof_main_brush_current()
const
2301 Roomba500Interface::set_main_brush_current(
const int16_t new_main_brush_current)
2303 data->main_brush_current = new_main_brush_current;
2304 data_changed =
true;
2312 Roomba500Interface::side_brush_current()
const
2314 return data->side_brush_current;
2322 Roomba500Interface::maxlenof_side_brush_current()
const
2332 Roomba500Interface::set_side_brush_current(
const int16_t new_side_brush_current)
2334 data->side_brush_current = new_side_brush_current;
2335 data_changed =
true;
2343 Roomba500Interface::is_caster_stasis()
const
2345 return data->caster_stasis;
2353 Roomba500Interface::maxlenof_caster_stasis()
const
2363 Roomba500Interface::set_caster_stasis(
const bool new_caster_stasis)
2365 data->caster_stasis = new_caster_stasis;
2366 data_changed =
true;
2371 Roomba500Interface::create_message(
const char *type)
const
2373 if ( strncmp(
"StopMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
2375 }
else if ( strncmp(
"DockMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
2377 }
else if ( strncmp(
"SetModeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
2378 return new SetModeMessage();
2379 }
else if ( strncmp(
"DriveStraightMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
2380 return new DriveStraightMessage();
2381 }
else if ( strncmp(
"DriveMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
2382 return new DriveMessage();
2383 }
else if ( strncmp(
"SetMotorsMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
2384 return new SetMotorsMessage();
2386 throw UnknownTypeException(
"The given type '%s' does not match any known "
2387 "message type for this interface type.", type);
2396 Roomba500Interface::copy_values(
const Interface *other)
2398 const Roomba500Interface *oi =
dynamic_cast<const Roomba500Interface *
>(other);
2400 throw TypeMismatchException(
"Can only copy values from interface of same type (%s vs. %s)",
2401 type(), other->type());
2403 memcpy(data, oi->data,
sizeof(Roomba500Interface_data_t));
2407 Roomba500Interface::enum_tostring(
const char *enumtype,
int val)
const
2409 if (strcmp(enumtype,
"Mode") == 0) {
2410 return tostring_Mode((Mode)val);
2412 if (strcmp(enumtype,
"InfraredCharacter") == 0) {
2415 if (strcmp(enumtype,
"ChargingState") == 0) {
2416 return tostring_ChargingState((ChargingState)val);
2418 if (strcmp(enumtype,
"BrushState") == 0) {
2419 return tostring_BrushState((BrushState)val);
2421 throw UnknownTypeException(
"Unknown enum type %s", enumtype);
2433 Roomba500Interface::StopMessage::StopMessage() : Message(
"StopMessage")
2438 data = (StopMessage_data_t *)
data_ptr;
2440 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2442 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2443 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2444 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2445 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
2448 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
2449 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
2453 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
2477 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
2479 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
2502 data = (StopMessage_data_t *)
data_ptr;
2530 data = (DockMessage_data_t *)
data_ptr;
2532 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2534 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2535 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2536 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2537 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
2540 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
2541 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
2545 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
2569 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
2571 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
2594 data = (DockMessage_data_t *)
data_ptr;
2621 data_size =
sizeof(SetModeMessage_data_t);
2624 data = (SetModeMessage_data_t *)
data_ptr;
2626 data->mode = ini_mode;
2627 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2629 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2630 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2631 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2632 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
2635 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
2636 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
2640 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
2664 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
2666 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
2678 data_size =
sizeof(SetModeMessage_data_t);
2681 data = (SetModeMessage_data_t *)
data_ptr;
2683 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2685 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2686 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2687 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2688 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
2691 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
2692 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
2696 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
2720 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
2722 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
2746 data = (SetModeMessage_data_t *)
data_ptr;
2778 data->mode = new_mode;
2803 data_size =
sizeof(DriveStraightMessage_data_t);
2806 data = (DriveStraightMessage_data_t *)
data_ptr;
2808 data->velocity = ini_velocity;
2809 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2811 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2812 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2813 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2814 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
2817 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
2818 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
2822 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
2846 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
2848 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
2860 data_size =
sizeof(DriveStraightMessage_data_t);
2863 data = (DriveStraightMessage_data_t *)
data_ptr;
2865 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2867 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2868 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2869 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2870 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
2873 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
2874 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
2878 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
2902 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
2904 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
2928 data = (DriveStraightMessage_data_t *)
data_ptr;
2940 return data->velocity;
2960 data->velocity = new_velocity;
2986 data_size =
sizeof(DriveMessage_data_t);
2989 data = (DriveMessage_data_t *)
data_ptr;
2991 data->velocity = ini_velocity;
2992 data->radius = ini_radius;
2993 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
2995 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
2996 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
2997 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
2998 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
3001 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
3002 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
3006 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
3030 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
3032 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
3045 data_size =
sizeof(DriveMessage_data_t);
3048 data = (DriveMessage_data_t *)
data_ptr;
3050 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
3052 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
3053 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
3054 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
3055 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
3058 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
3059 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
3063 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
3087 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
3089 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
3114 data = (DriveMessage_data_t *)
data_ptr;
3126 return data->velocity;
3146 data->velocity = new_velocity;
3156 return data->radius;
3176 data->radius = new_radius;
3203 data_size =
sizeof(SetMotorsMessage_data_t);
3206 data = (SetMotorsMessage_data_t *)
data_ptr;
3208 data->vacuuming = ini_vacuuming;
3209 data->main = ini_main;
3210 data->side = ini_side;
3211 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
3213 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
3214 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
3215 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
3216 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
3219 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
3220 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
3224 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
3248 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
3250 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
3264 data_size =
sizeof(SetMotorsMessage_data_t);
3267 data = (SetMotorsMessage_data_t *)
data_ptr;
3269 enum_map_Mode[(int)
MODE_OFF] =
"MODE_OFF";
3271 enum_map_Mode[(int)
MODE_SAFE] =
"MODE_SAFE";
3272 enum_map_Mode[(int)
MODE_FULL] =
"MODE_FULL";
3273 enum_map_InfraredCharacter[(int)
IR_NONE] =
"IR_NONE";
3274 enum_map_InfraredCharacter[(int)
IR_REMOTE_LEFT] =
"IR_REMOTE_LEFT";
3277 enum_map_InfraredCharacter[(int)
IR_REMOTE_SPOT] =
"IR_REMOTE_SPOT";
3278 enum_map_InfraredCharacter[(int)
IR_REMOTE_MAX] =
"IR_REMOTE_MAX";
3282 enum_map_InfraredCharacter[(int)
IR_REMOTE_STOP] =
"IR_REMOTE_STOP";
3306 enum_map_ChargingState[(int)
CHARGING_NO] =
"CHARGING_NO";
3308 enum_map_ChargingState[(int)
CHARGING_FULL] =
"CHARGING_FULL";
3334 data = (SetMotorsMessage_data_t *)
data_ptr;
3346 return data->vacuuming;
3366 data->vacuuming = new_vacuuming;
3396 data->main = new_main;
3426 data->side = new_side;
3454 const SetModeMessage *m2 =
dynamic_cast<const SetModeMessage *
>(message);
3458 const DriveStraightMessage *m3 =
dynamic_cast<const DriveStraightMessage *
>(message);
3462 const DriveMessage *m4 =
dynamic_cast<const DriveMessage *
>(message);
3466 const SetMotorsMessage *m5 =
dynamic_cast<const SetMotorsMessage *
>(message);
3474 EXPORT_INTERFACE(Roomba500Interface)