return ret;
}
-bool back_bumpers() {
+inline bool back_bumpers() {
return robot.moves_backward && robot.use_back_bumpers &&
(robot.orte.robot_bumpers.bumper_left_across ||
robot.orte.robot_bumpers.bumper_right_across ||
}
-bool side_bumpers() {
+inline bool side_bumpers() {
return (robot.use_left_bumper && robot.orte.robot_bumpers.bumper_left) ||
(robot.use_right_bumper && robot.orte.robot_bumpers.bumper_right);
}
struct wait_for_command : TimedSimpleState< wait_for_command, MotionBase > {
target_status ret;
wait_for_command() {
+ printf("FSMMotion - wait_for_command\n");
stop();
}
sc::result react(const evNewTarget &event) {
};
struct movement : TimedSimpleState< movement, MotionBase > {
+ movement() {
+ printf("FSMMotion - movement\n");
+ }
sc::result react(const evTrajectoryDone &) {
robot.sched.queue_event(robot.MAIN, new evMotionDone());
return transit<wait_for_command>();
struct lost : TimedState< lost, MotionBase > {
Timer lost_tout;
lost(my_context ctx) : base_state(ctx) {
+ printf("FSMMotion - lost\n");
stop();
runTimer(lost_tout, 1000, new evTimer());
}
struct wait_and_try_again : TimedState< wait_and_try_again, MotionBase > {
Timer wait_tout;
wait_and_try_again(my_context ctx) : base_state(ctx) {
+ printf("FSMMotion - wait_and_try_again\n");
stop();
runTimer(wait_tout, 1000, new evTimer());
}