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";
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";
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";
277 Roomba500Interface::mode()
const 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 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 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 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 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) == 0 ) {
2375 }
else if ( strncmp(
"DockMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
2377 }
else if ( strncmp(
"SetModeMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
2379 }
else if ( strncmp(
"DriveStraightMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
2381 }
else if ( strncmp(
"DriveMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
2383 }
else if ( strncmp(
"SetMotorsMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
2387 "message type for this interface type.", type);
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) {
2418 if (strcmp(enumtype,
"BrushState") == 0) {
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;
size_t maxlenof_velocity() const
Get maximum length of velocity value.
virtual Message * clone() const
Clone this message.
void set_velocity(const int16_t new_velocity)
Set velocity value.
void * data_ptr
Pointer to memory that contains local data.
size_t maxlenof_mode() const
Get maximum length of mode value.
Roomba 500 dock: red and green buoy.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
Roomba Discovery dock: red buoy and force field.
ChargingState
Current charging state.
SetMotorsMessage()
Constructor.
IR Remote Control: spot button.
virtual Message * clone() const
Clone this message.
StopMessage Fawkes BlackBoard Interface Message.
bool is_vacuuming() const
Get vacuuming value.
StopMessage()
Constructor.
Brush is turning backward.
void set_radius(const int16_t new_radius)
Set radius value.
IR Remote Control: right arc button.
Roomba Discovery dock: red and green buoy and force field.
Roomba Discovery dock: green buoy and force field.
Fawkes library namespace.
IR Remote Control: max button.
Timestamp data, must be present and first entries for each interface data structs! This leans on time...
Mode mode() const
Get mode value.
Roomba 500 dock: reserved.
void set_main(const BrushState new_main)
Set main value.
Roomba 500 dock: green buoy.
InfraredCharacter
Infrared character values.
Passive mode, no control, only listening.
IR Remote Control: small button.
Base class for all Fawkes BlackBoard interfaces.
~DriveStraightMessage()
Destructor.
virtual Message * clone() const
Clone this message.
IR Remote Control: stop button.
IR Remote Control: left arc button.
IR Remote Control: medium button.
DockMessage Fawkes BlackBoard Interface Message.
Roomba Discovery dock: green buoy and force field.
IR scheduling remote: seek dock button.
message_data_ts_t * data_ts
data timestamp aliasing pointer
size_t maxlenof_side() const
Get maximum length of side value.
DriveStraightMessage()
Constructor.
unsigned int data_size
Size of memory needed to hold all data.
IR Remote Control: right button.
size_t maxlenof_radius() const
Get maximum length of radius value.
DockMessage()
Constructor.
Brush is turning forward.
IR Remote Control: forward button.
Roomba Discovery dock: red and green buoy.
IR Remote Control: left button.
const char * type() const
Get type of interface.
void set_side(const BrushState new_side)
Set side value.
void set_vacuuming(const bool new_vacuuming)
Set vacuuming value.
IR Remote Control: power button.
Roomba Discovery dock: green buoy.
~DockMessage()
Destructor.
IR scheduling remote: download button.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
SetMotorsMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_vacuuming() const
Get maximum length of vacuuming value.
void set_mode(const Mode new_mode)
Set mode value.
Roomba Discovery dock: red buoy.
int16_t radius() const
Get radius value.
BrushState main() const
Get main value.
Roomba 500 dock: red and green buoy and force field.
Roomba 500 dock: red buoy.
int16_t velocity() const
Get velocity value.
Roomba Discovery dock: reserved.
Roomba500Interface Fawkes BlackBoard Interface.
int16_t velocity() const
Get velocity value.
Control acquired, safety measures in place.
SetModeMessage Fawkes BlackBoard Interface Message.
IR Remote Control: stop button.
Control acquired, safety measures disabled.
BrushState side() const
Get side value.
~StopMessage()
Destructor.
size_t maxlenof_velocity() const
Get maximum length of velocity value.
DriveMessage()
Constructor.
Roomba 500 dock: green buoy and force field.
virtual Message * clone() const
Clone this message.
size_t maxlenof_main() const
Get maximum length of main value.
SetModeMessage()
Constructor.
void set_velocity(const int16_t new_velocity)
Set velocity value.
IR Remote Control: large/clean button.
Roomba 500 dock: red buoy and force field.
~DriveMessage()
Destructor.
void add_fieldinfo(interface_fieldtype_t type, const char *name, size_t length, void *value, const char *enumtype=0, const interface_enum_map_t *enum_map=0)
Add an entry to the info list.
DriveStraightMessage Fawkes BlackBoard Interface Message.
~SetModeMessage()
Destructor.
DriveMessage Fawkes BlackBoard Interface Message.
Roomba 500 dock: green buoy and force field.
BrushState
State of the brushes.
field with interface specific enum type
virtual Message * clone() const
Clone this message.
virtual Message * clone() const
Clone this message.
~SetMotorsMessage()
Destructor.