Fawkes API
Fawkes Development Version
|
00001 00002 /*************************************************************************** 00003 * Roomba500Interface.h - Fawkes BlackBoard Interface - Roomba500Interface 00004 * 00005 * Templated created: Thu Oct 12 10:49:19 2006 00006 * Copyright 2011 Tim Niemueller 00007 * 00008 ****************************************************************************/ 00009 00010 /* This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. A runtime exception applies to 00014 * this software (see LICENSE.GPL_WRE file mentioned below for details). 00015 * 00016 * This program is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Library General Public License for more details. 00020 * 00021 * Read the full text in the LICENSE.GPL_WRE file in the doc directory. 00022 */ 00023 00024 #ifndef __INTERFACES_ROOMBA500INTERFACE_H_ 00025 #define __INTERFACES_ROOMBA500INTERFACE_H_ 00026 00027 #include <interface/interface.h> 00028 #include <interface/message.h> 00029 #include <interface/field_iterator.h> 00030 00031 namespace fawkes { 00032 00033 class Roomba500Interface : public Interface 00034 { 00035 /// @cond INTERNALS 00036 INTERFACE_MGMT_FRIENDS(Roomba500Interface) 00037 /// @endcond 00038 public: 00039 /* constants */ 00040 00041 /** Open Interface mode. */ 00042 typedef enum { 00043 MODE_OFF = 0 /**< No connection. */, 00044 MODE_PASSIVE = 1 /**< Passive mode, no control, 00045 only listening. */, 00046 MODE_SAFE = 2 /**< Control acquired, safety measures 00047 in place. */, 00048 MODE_FULL = 3 /**< Control acquired, safety measures 00049 disabled. */ 00050 } Mode; 00051 const char * tostring_Mode(Mode value) const; 00052 00053 /** Infrared character values. */ 00054 typedef enum { 00055 IR_NONE = 0 /**< No valid IR signal */, 00056 IR_REMOTE_LEFT = 129 /**< IR Remote Control: left button */, 00057 IR_REMOTE_FORWARD = 130 /**< IR Remote Control: forward 00058 button */, 00059 IR_REMOTE_RIGHT = 131 /**< IR Remote Control: right 00060 button */, 00061 IR_REMOTE_SPOT = 132 /**< IR Remote Control: spot button */, 00062 IR_REMOTE_MAX = 133 /**< IR Remote Control: max button */, 00063 IR_REMOTE_SMALL = 134 /**< IR Remote Control: small 00064 button */, 00065 IR_REMOTE_MEDIUM = 135 /**< IR Remote Control: 00066 medium button */, 00067 IR_REMOTE_LARGE_CLEAN = 136 /**< IR Remote Control: 00068 large/clean button */, 00069 IR_REMOTE_STOP = 137 /**< IR Remote Control: stop button */, 00070 IR_REMOTE_POWER = 138 /**< IR Remote Control: 00071 power button */, 00072 IR_REMOTE_ARC_LEFT = 139 /**< IR Remote Control: 00073 left arc button */, 00074 IR_REMOTE_ARC_RIGHT = 140 /**< IR Remote Control: 00075 right arc button */, 00076 IR_REMOTE_STOP2 = 141 /**< IR Remote Control: 00077 stop button */, 00078 IR_SCHED_REMOTE_DOWNLOAD = 142 /**< IR scheduling remote: 00079 download button */, 00080 IR_SCHED_REMOTE_SEEK_DOCK = 143 /**< IR scheduling remote: 00081 seek dock button */, 00082 IR_DISC_DOCK_RESERVED = 240 /**< Roomba Discovery dock: 00083 reserved */, 00084 IR_DISC_DOCK_RED_BUOY = 248 /**< Roomba Discovery dock: 00085 red buoy */, 00086 IR_DISC_DOCK_GREEN_BUOY = 244 /**< Roomba Discovery dock: 00087 green buoy */, 00088 IR_DISC_DOCK_FORCE_FIELD = 242 /**< Roomba Discovery dock: 00089 red and green buoy */, 00090 IR_DISC_DOCK_RED_GREEN_BUOY = 252 /**< Roomba Discovery dock: 00091 red buoy and force field */, 00092 IR_DISC_DOCK_RED_BUOY_FORCE_FIELD = 250 /**< Roomba Discovery 00093 dock: green buoy and force field */, 00094 IR_DISC_DOCK_GREEN_BUOY_FORCE_FIELD = 246 /**< Roomba 00095 Discovery dock: green buoy and force field. */, 00096 IR_DISC_DOCK_RED_GREEN_BUOY_FORCE_FIELD = 254 /**< Roomba 00097 Discovery dock: red and green buoy and force field */, 00098 IR_DOCK_RESERVED = 160 /**< Roomba 500 dock: reserved */, 00099 IR_DOCK_RED_BUOY = 168 /**< Roomba 500 dock: red buoy */, 00100 IR_DOCK_GREEN_BUOY = 164 /**< Roomba 500 dock: green buoy */, 00101 IR_DOCK_FORCE_FIELD = 161 /**< Roomba 500 dock: red and green buoy */, 00102 IR_DOCK_RED_GREEN_BUOY = 172 /**< Roomba 500 dock: red buoy and force field */, 00103 IR_DOCK_RED_BUOY_FORCE_FIELD = 169 /**< Roomba 500 dock: green buoy and force field. */, 00104 IR_DOCK_GREEN_BUOY_FORCE_FIELD = 165 /**< Roomba 500 dock: green buoy and force field. */, 00105 IR_DOCK_RED_GREEN_BUOY_FORCE_FIELD = 173 /**< Roomba 500 dock: red and green buoy and force field. */, 00106 IR_VIRTUAL_WALL = 162 /**< IR Virtual Wall */ 00107 } InfraredCharacter; 00108 const char * tostring_InfraredCharacter(InfraredCharacter value) const; 00109 00110 /** 00111 Current charging state. 00112 */ 00113 typedef enum { 00114 CHARGING_NO = 0 /**< Not charging. */, 00115 CHARGING_RECONDITIONING = 1 /**< Reconditioning battery. */, 00116 CHARGING_FULL = 2 /**< Full charging cycle. */, 00117 CHARGING_TRICKLE = 3 /**< Trickle charging. */, 00118 CHARGING_WAITING = 4 /**< Waiting. */, 00119 CHARGING_ERROR = 5 /**< Fault condition. */ 00120 } ChargingState; 00121 const char * tostring_ChargingState(ChargingState value) const; 00122 00123 /** State of the brushes. */ 00124 typedef enum { 00125 BRUSHSTATE_OFF /**< Brush is off. */, 00126 BRUSHSTATE_FORWARD /**< Brush is turning forward. */, 00127 BRUSHSTATE_BACKWARD /**< Brush is turning backward. */ 00128 } BrushState; 00129 const char * tostring_BrushState(BrushState value) const; 00130 00131 private: 00132 #pragma pack(push,4) 00133 /** Internal data storage, do NOT modify! */ 00134 typedef struct { 00135 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00136 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00137 int32_t mode; /**< Open Interface mode. */ 00138 bool wheel_drop_left; /**< Left wheel drop sensor. */ 00139 bool wheel_drop_right; /**< Right wheel drop sensor. */ 00140 bool bump_left; /**< Bump on left. */ 00141 bool bump_right; /**< Bump on right. */ 00142 bool wall; /**< Wall sensor. */ 00143 bool cliff_left; /**< Cliff detected left. */ 00144 bool cliff_front_left; /**< Cliff detected front left. */ 00145 bool cliff_front_right; /**< Cliff detected front right. */ 00146 bool cliff_right; /**< Cliff detected right. */ 00147 bool virtual_wall; /**< Virtual wall detected. */ 00148 bool overcurrent_side_brush; /**< Overcurrent on side brush. */ 00149 bool overcurrent_main_brush; /**< Overcurrent on main brush. */ 00150 bool overcurrent_left_wheel; /**< Overcurrent on left wheel. */ 00151 bool overcurrent_right_wheel; /**< Overcurrent on right wheel. */ 00152 bool dirt_detect; /**< Dirt detected? */ 00153 int32_t ir_opcode_omni; /**< Omni IR receiver code. */ 00154 bool button_clean; /**< Clean button pressed. */ 00155 bool button_spot; /**< Spot button pressed. */ 00156 bool button_dock; /**< Dock button pressed. */ 00157 bool button_minute; /**< Minute button pressed. */ 00158 bool button_hour; /**< Hour button pressed. */ 00159 bool button_day; /**< Day button pressed. */ 00160 bool button_schedule; /**< Schedule button pressed. */ 00161 bool button_clock; /**< Clock button pressed. */ 00162 int16_t distance; /**< Travelled distance in m. */ 00163 int16_t angle; /**< Turned angle in radians. */ 00164 int32_t charging_state; /**< Charging state. */ 00165 uint16_t voltage; /**< Voltage in mV. */ 00166 int16_t current; /**< Current in mA. */ 00167 int8_t temperature; /**< Temperature in degree Celsius. */ 00168 uint16_t battery_charge; /**< Battery charge in mAh. */ 00169 uint16_t battery_capacity; /**< Battery capacity in mAh. */ 00170 uint16_t wall_signal; /**< Raw wall signal */ 00171 uint16_t cliff_left_signal; /**< Raw left cliff signal. */ 00172 uint16_t cliff_front_left_signal; /**< Raw front left 00173 cliff signal. */ 00174 uint16_t cliff_front_right_signal; /**< Raw front right 00175 cliff signal. */ 00176 uint16_t cliff_right_signal; /**< Raw right cliff signal. */ 00177 bool home_base_charger_available; /**< 00178 Home base charger available? */ 00179 bool internal_charger_available; /**< 00180 Internal charger available? */ 00181 uint8_t song_number; /**< Song number. */ 00182 bool song_playing; /**< Song playing? */ 00183 int16_t velocity; /**< Requested velocity in mm/s. */ 00184 int16_t radius; /**< Requested radius in mm. */ 00185 int16_t velocity_right; /**< Requested left velocity in mm/s. */ 00186 int16_t velocity_left; /**< Requested right velocity in mm/s. */ 00187 uint16_t encoder_counts_left; /**< Encoder count left. */ 00188 uint16_t encoder_counts_right; /**< Encoder count right. */ 00189 bool bumper_left; /**< Left bumper active? */ 00190 bool bumper_front_left; /**< Front left bumper active? */ 00191 bool bumper_center_left; /**< Center left bumper active? */ 00192 bool bumper_center_right; /**< Center right bumper active? */ 00193 bool bumper_front_right; /**< Front right bumper active? */ 00194 bool bumper_right; /**< Right bumper active? */ 00195 uint16_t light_bump_left; /**< Raw left bumper signal. */ 00196 uint16_t light_bump_front_left; /**< Raw front left bumper 00197 signal. */ 00198 uint16_t light_bump_center_left; /**< Raw center left 00199 bumper signal. */ 00200 uint16_t light_bump_center_right; /**< Raw center right 00201 bumper signal. */ 00202 uint16_t light_bump_front_right; /**< Raw front right 00203 bumper signal. */ 00204 uint16_t light_bump_right; /**< Raw right bumper signal. */ 00205 int32_t ir_opcode_left; /**< 00206 Left receiver opcode. */ 00207 int32_t ir_opcode_right; /**< 00208 Right receiver opcode. */ 00209 int16_t left_motor_current; /**< Left motor current in mA. */ 00210 int16_t right_motor_current; /**< Right motor current in mA. */ 00211 int16_t main_brush_current; /**< Main brush current in mA. */ 00212 int16_t side_brush_current; /**< Side brush current in mA. */ 00213 bool caster_stasis; /**< Caster wheel stasis. */ 00214 } Roomba500Interface_data_t; 00215 #pragma pack(pop) 00216 00217 Roomba500Interface_data_t *data; 00218 00219 public: 00220 /* messages */ 00221 class StopMessage : public Message 00222 { 00223 private: 00224 #pragma pack(push,4) 00225 /** Internal data storage, do NOT modify! */ 00226 typedef struct { 00227 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00228 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00229 } StopMessage_data_t; 00230 #pragma pack(pop) 00231 00232 StopMessage_data_t *data; 00233 00234 public: 00235 StopMessage(); 00236 ~StopMessage(); 00237 00238 StopMessage(const StopMessage *m); 00239 /* Methods */ 00240 virtual Message * clone() const; 00241 }; 00242 00243 class DockMessage : public Message 00244 { 00245 private: 00246 #pragma pack(push,4) 00247 /** Internal data storage, do NOT modify! */ 00248 typedef struct { 00249 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00250 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00251 } DockMessage_data_t; 00252 #pragma pack(pop) 00253 00254 DockMessage_data_t *data; 00255 00256 public: 00257 DockMessage(); 00258 ~DockMessage(); 00259 00260 DockMessage(const DockMessage *m); 00261 /* Methods */ 00262 virtual Message * clone() const; 00263 }; 00264 00265 class SetModeMessage : public Message 00266 { 00267 private: 00268 #pragma pack(push,4) 00269 /** Internal data storage, do NOT modify! */ 00270 typedef struct { 00271 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00272 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00273 int32_t mode; /**< Open Interface mode. */ 00274 } SetModeMessage_data_t; 00275 #pragma pack(pop) 00276 00277 SetModeMessage_data_t *data; 00278 00279 public: 00280 SetModeMessage(const Mode ini_mode); 00281 SetModeMessage(); 00282 ~SetModeMessage(); 00283 00284 SetModeMessage(const SetModeMessage *m); 00285 /* Methods */ 00286 Mode mode() const; 00287 void set_mode(const Mode new_mode); 00288 size_t maxlenof_mode() const; 00289 virtual Message * clone() const; 00290 }; 00291 00292 class DriveStraightMessage : public Message 00293 { 00294 private: 00295 #pragma pack(push,4) 00296 /** Internal data storage, do NOT modify! */ 00297 typedef struct { 00298 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00299 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00300 int16_t velocity; /**< Requested velocity in mm/s. */ 00301 } DriveStraightMessage_data_t; 00302 #pragma pack(pop) 00303 00304 DriveStraightMessage_data_t *data; 00305 00306 public: 00307 DriveStraightMessage(const int16_t ini_velocity); 00308 DriveStraightMessage(); 00309 ~DriveStraightMessage(); 00310 00311 DriveStraightMessage(const DriveStraightMessage *m); 00312 /* Methods */ 00313 int16_t velocity() const; 00314 void set_velocity(const int16_t new_velocity); 00315 size_t maxlenof_velocity() const; 00316 virtual Message * clone() const; 00317 }; 00318 00319 class DriveMessage : public Message 00320 { 00321 private: 00322 #pragma pack(push,4) 00323 /** Internal data storage, do NOT modify! */ 00324 typedef struct { 00325 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00326 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00327 int16_t velocity; /**< Requested velocity in mm/s. */ 00328 int16_t radius; /**< Requested radius in mm. */ 00329 } DriveMessage_data_t; 00330 #pragma pack(pop) 00331 00332 DriveMessage_data_t *data; 00333 00334 public: 00335 DriveMessage(const int16_t ini_velocity, const int16_t ini_radius); 00336 DriveMessage(); 00337 ~DriveMessage(); 00338 00339 DriveMessage(const DriveMessage *m); 00340 /* Methods */ 00341 int16_t velocity() const; 00342 void set_velocity(const int16_t new_velocity); 00343 size_t maxlenof_velocity() const; 00344 int16_t radius() const; 00345 void set_radius(const int16_t new_radius); 00346 size_t maxlenof_radius() const; 00347 virtual Message * clone() const; 00348 }; 00349 00350 class SetMotorsMessage : public Message 00351 { 00352 private: 00353 #pragma pack(push,4) 00354 /** Internal data storage, do NOT modify! */ 00355 typedef struct { 00356 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00357 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00358 bool vacuuming; /**< Enable vacuuming? */ 00359 int32_t main; /**< Main brush state. */ 00360 int32_t side; /**< Side brush state. */ 00361 } SetMotorsMessage_data_t; 00362 #pragma pack(pop) 00363 00364 SetMotorsMessage_data_t *data; 00365 00366 public: 00367 SetMotorsMessage(const bool ini_vacuuming, const BrushState ini_main, const BrushState ini_side); 00368 SetMotorsMessage(); 00369 ~SetMotorsMessage(); 00370 00371 SetMotorsMessage(const SetMotorsMessage *m); 00372 /* Methods */ 00373 bool is_vacuuming() const; 00374 void set_vacuuming(const bool new_vacuuming); 00375 size_t maxlenof_vacuuming() const; 00376 BrushState main() const; 00377 void set_main(const BrushState new_main); 00378 size_t maxlenof_main() const; 00379 BrushState side() const; 00380 void set_side(const BrushState new_side); 00381 size_t maxlenof_side() const; 00382 virtual Message * clone() const; 00383 }; 00384 00385 virtual bool message_valid(const Message *message) const; 00386 private: 00387 Roomba500Interface(); 00388 ~Roomba500Interface(); 00389 00390 public: 00391 /* Methods */ 00392 Mode mode() const; 00393 void set_mode(const Mode new_mode); 00394 size_t maxlenof_mode() const; 00395 bool is_wheel_drop_left() const; 00396 void set_wheel_drop_left(const bool new_wheel_drop_left); 00397 size_t maxlenof_wheel_drop_left() const; 00398 bool is_wheel_drop_right() const; 00399 void set_wheel_drop_right(const bool new_wheel_drop_right); 00400 size_t maxlenof_wheel_drop_right() const; 00401 bool is_bump_left() const; 00402 void set_bump_left(const bool new_bump_left); 00403 size_t maxlenof_bump_left() const; 00404 bool is_bump_right() const; 00405 void set_bump_right(const bool new_bump_right); 00406 size_t maxlenof_bump_right() const; 00407 bool is_wall() const; 00408 void set_wall(const bool new_wall); 00409 size_t maxlenof_wall() const; 00410 bool is_cliff_left() const; 00411 void set_cliff_left(const bool new_cliff_left); 00412 size_t maxlenof_cliff_left() const; 00413 bool is_cliff_front_left() const; 00414 void set_cliff_front_left(const bool new_cliff_front_left); 00415 size_t maxlenof_cliff_front_left() const; 00416 bool is_cliff_front_right() const; 00417 void set_cliff_front_right(const bool new_cliff_front_right); 00418 size_t maxlenof_cliff_front_right() const; 00419 bool is_cliff_right() const; 00420 void set_cliff_right(const bool new_cliff_right); 00421 size_t maxlenof_cliff_right() const; 00422 bool is_virtual_wall() const; 00423 void set_virtual_wall(const bool new_virtual_wall); 00424 size_t maxlenof_virtual_wall() const; 00425 bool is_overcurrent_side_brush() const; 00426 void set_overcurrent_side_brush(const bool new_overcurrent_side_brush); 00427 size_t maxlenof_overcurrent_side_brush() const; 00428 bool is_overcurrent_main_brush() const; 00429 void set_overcurrent_main_brush(const bool new_overcurrent_main_brush); 00430 size_t maxlenof_overcurrent_main_brush() const; 00431 bool is_overcurrent_left_wheel() const; 00432 void set_overcurrent_left_wheel(const bool new_overcurrent_left_wheel); 00433 size_t maxlenof_overcurrent_left_wheel() const; 00434 bool is_overcurrent_right_wheel() const; 00435 void set_overcurrent_right_wheel(const bool new_overcurrent_right_wheel); 00436 size_t maxlenof_overcurrent_right_wheel() const; 00437 bool is_dirt_detect() const; 00438 void set_dirt_detect(const bool new_dirt_detect); 00439 size_t maxlenof_dirt_detect() const; 00440 InfraredCharacter ir_opcode_omni() const; 00441 void set_ir_opcode_omni(const InfraredCharacter new_ir_opcode_omni); 00442 size_t maxlenof_ir_opcode_omni() const; 00443 bool is_button_clean() const; 00444 void set_button_clean(const bool new_button_clean); 00445 size_t maxlenof_button_clean() const; 00446 bool is_button_spot() const; 00447 void set_button_spot(const bool new_button_spot); 00448 size_t maxlenof_button_spot() const; 00449 bool is_button_dock() const; 00450 void set_button_dock(const bool new_button_dock); 00451 size_t maxlenof_button_dock() const; 00452 bool is_button_minute() const; 00453 void set_button_minute(const bool new_button_minute); 00454 size_t maxlenof_button_minute() const; 00455 bool is_button_hour() const; 00456 void set_button_hour(const bool new_button_hour); 00457 size_t maxlenof_button_hour() const; 00458 bool is_button_day() const; 00459 void set_button_day(const bool new_button_day); 00460 size_t maxlenof_button_day() const; 00461 bool is_button_schedule() const; 00462 void set_button_schedule(const bool new_button_schedule); 00463 size_t maxlenof_button_schedule() const; 00464 bool is_button_clock() const; 00465 void set_button_clock(const bool new_button_clock); 00466 size_t maxlenof_button_clock() const; 00467 int16_t distance() const; 00468 void set_distance(const int16_t new_distance); 00469 size_t maxlenof_distance() const; 00470 int16_t angle() const; 00471 void set_angle(const int16_t new_angle); 00472 size_t maxlenof_angle() const; 00473 ChargingState charging_state() const; 00474 void set_charging_state(const ChargingState new_charging_state); 00475 size_t maxlenof_charging_state() const; 00476 uint16_t voltage() const; 00477 void set_voltage(const uint16_t new_voltage); 00478 size_t maxlenof_voltage() const; 00479 int16_t current() const; 00480 void set_current(const int16_t new_current); 00481 size_t maxlenof_current() const; 00482 int8_t temperature() const; 00483 void set_temperature(const int8_t new_temperature); 00484 size_t maxlenof_temperature() const; 00485 uint16_t battery_charge() const; 00486 void set_battery_charge(const uint16_t new_battery_charge); 00487 size_t maxlenof_battery_charge() const; 00488 uint16_t battery_capacity() const; 00489 void set_battery_capacity(const uint16_t new_battery_capacity); 00490 size_t maxlenof_battery_capacity() const; 00491 uint16_t wall_signal() const; 00492 void set_wall_signal(const uint16_t new_wall_signal); 00493 size_t maxlenof_wall_signal() const; 00494 uint16_t cliff_left_signal() const; 00495 void set_cliff_left_signal(const uint16_t new_cliff_left_signal); 00496 size_t maxlenof_cliff_left_signal() const; 00497 uint16_t cliff_front_left_signal() const; 00498 void set_cliff_front_left_signal(const uint16_t new_cliff_front_left_signal); 00499 size_t maxlenof_cliff_front_left_signal() const; 00500 uint16_t cliff_front_right_signal() const; 00501 void set_cliff_front_right_signal(const uint16_t new_cliff_front_right_signal); 00502 size_t maxlenof_cliff_front_right_signal() const; 00503 uint16_t cliff_right_signal() const; 00504 void set_cliff_right_signal(const uint16_t new_cliff_right_signal); 00505 size_t maxlenof_cliff_right_signal() const; 00506 bool is_home_base_charger_available() const; 00507 void set_home_base_charger_available(const bool new_home_base_charger_available); 00508 size_t maxlenof_home_base_charger_available() const; 00509 bool is_internal_charger_available() const; 00510 void set_internal_charger_available(const bool new_internal_charger_available); 00511 size_t maxlenof_internal_charger_available() const; 00512 uint8_t song_number() const; 00513 void set_song_number(const uint8_t new_song_number); 00514 size_t maxlenof_song_number() const; 00515 bool is_song_playing() const; 00516 void set_song_playing(const bool new_song_playing); 00517 size_t maxlenof_song_playing() const; 00518 int16_t velocity() const; 00519 void set_velocity(const int16_t new_velocity); 00520 size_t maxlenof_velocity() const; 00521 int16_t radius() const; 00522 void set_radius(const int16_t new_radius); 00523 size_t maxlenof_radius() const; 00524 int16_t velocity_right() const; 00525 void set_velocity_right(const int16_t new_velocity_right); 00526 size_t maxlenof_velocity_right() const; 00527 int16_t velocity_left() const; 00528 void set_velocity_left(const int16_t new_velocity_left); 00529 size_t maxlenof_velocity_left() const; 00530 uint16_t encoder_counts_left() const; 00531 void set_encoder_counts_left(const uint16_t new_encoder_counts_left); 00532 size_t maxlenof_encoder_counts_left() const; 00533 uint16_t encoder_counts_right() const; 00534 void set_encoder_counts_right(const uint16_t new_encoder_counts_right); 00535 size_t maxlenof_encoder_counts_right() const; 00536 bool is_bumper_left() const; 00537 void set_bumper_left(const bool new_bumper_left); 00538 size_t maxlenof_bumper_left() const; 00539 bool is_bumper_front_left() const; 00540 void set_bumper_front_left(const bool new_bumper_front_left); 00541 size_t maxlenof_bumper_front_left() const; 00542 bool is_bumper_center_left() const; 00543 void set_bumper_center_left(const bool new_bumper_center_left); 00544 size_t maxlenof_bumper_center_left() const; 00545 bool is_bumper_center_right() const; 00546 void set_bumper_center_right(const bool new_bumper_center_right); 00547 size_t maxlenof_bumper_center_right() const; 00548 bool is_bumper_front_right() const; 00549 void set_bumper_front_right(const bool new_bumper_front_right); 00550 size_t maxlenof_bumper_front_right() const; 00551 bool is_bumper_right() const; 00552 void set_bumper_right(const bool new_bumper_right); 00553 size_t maxlenof_bumper_right() const; 00554 uint16_t light_bump_left() const; 00555 void set_light_bump_left(const uint16_t new_light_bump_left); 00556 size_t maxlenof_light_bump_left() const; 00557 uint16_t light_bump_front_left() const; 00558 void set_light_bump_front_left(const uint16_t new_light_bump_front_left); 00559 size_t maxlenof_light_bump_front_left() const; 00560 uint16_t light_bump_center_left() const; 00561 void set_light_bump_center_left(const uint16_t new_light_bump_center_left); 00562 size_t maxlenof_light_bump_center_left() const; 00563 uint16_t light_bump_center_right() const; 00564 void set_light_bump_center_right(const uint16_t new_light_bump_center_right); 00565 size_t maxlenof_light_bump_center_right() const; 00566 uint16_t light_bump_front_right() const; 00567 void set_light_bump_front_right(const uint16_t new_light_bump_front_right); 00568 size_t maxlenof_light_bump_front_right() const; 00569 uint16_t light_bump_right() const; 00570 void set_light_bump_right(const uint16_t new_light_bump_right); 00571 size_t maxlenof_light_bump_right() const; 00572 InfraredCharacter ir_opcode_left() const; 00573 void set_ir_opcode_left(const InfraredCharacter new_ir_opcode_left); 00574 size_t maxlenof_ir_opcode_left() const; 00575 InfraredCharacter ir_opcode_right() const; 00576 void set_ir_opcode_right(const InfraredCharacter new_ir_opcode_right); 00577 size_t maxlenof_ir_opcode_right() const; 00578 int16_t left_motor_current() const; 00579 void set_left_motor_current(const int16_t new_left_motor_current); 00580 size_t maxlenof_left_motor_current() const; 00581 int16_t right_motor_current() const; 00582 void set_right_motor_current(const int16_t new_right_motor_current); 00583 size_t maxlenof_right_motor_current() const; 00584 int16_t main_brush_current() const; 00585 void set_main_brush_current(const int16_t new_main_brush_current); 00586 size_t maxlenof_main_brush_current() const; 00587 int16_t side_brush_current() const; 00588 void set_side_brush_current(const int16_t new_side_brush_current); 00589 size_t maxlenof_side_brush_current() const; 00590 bool is_caster_stasis() const; 00591 void set_caster_stasis(const bool new_caster_stasis); 00592 size_t maxlenof_caster_stasis() const; 00593 virtual Message * create_message(const char *type) const; 00594 00595 virtual void copy_values(const Interface *other); 00596 virtual const char * enum_tostring(const char *enumtype, int val) const; 00597 00598 }; 00599 00600 } // end namespace fawkes 00601 00602 #endif