From 1b0f8f42c839ecf90d39718f4edfbb9604b2118a Mon Sep 17 00:00:00 2001 From: pokormat Date: Mon, 23 May 2011 13:20:30 +0200 Subject: [PATCH] cand, common, robofsm, types: change bumper rear to bumper rear left and bumper rear right --- src/cand/cand.cc | 3 ++- src/common/can_msg_def.h | 11 ++++++----- src/robofsm/fsmmove.cc | 6 ++++-- src/robofsm/robot_orte.c | 2 +- src/types/robottype.idl | 3 ++- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/cand/cand.cc b/src/cand/cand.cc index 4d0f3e01..bdd33a96 100644 --- a/src/cand/cand.cc +++ b/src/cand/cand.cc @@ -209,7 +209,8 @@ void cand_parse_frame(struct robottype_orte_data *orte, struct can_frame frame) orte->robot_bumpers.bumper_left_across = (frame.data[0] & CAN_BUMPER_LEFT_ACROSS) ? 0 : 1; orte->robot_bumpers.bumper_right = (frame.data[0] & CAN_BUMPER_RIGHT) ? 0 : 1; orte->robot_bumpers.bumper_right_across = (frame.data[0] & CAN_BUMPER_RIGHT_ACROSS) ? 0 : 1; - orte->robot_bumpers.bumper_rear = (frame.data[0] & CAN_BUMPER_REAR) ? 0 : 1; + orte->robot_bumpers.bumper_rear_left = (frame.data[0] & CAN_BUMPER_REAR_LEFT) ? 0 : 1; + orte->robot_bumpers.bumper_rear_right = (frame.data[0] & CAN_BUMPER_REAR_RIGHT) ? 0 : 1; ORTEPublicationSend(orte->publication_robot_bumpers); break; diff --git a/src/common/can_msg_def.h b/src/common/can_msg_def.h index 4eb1fa0c..f6d41bf7 100644 --- a/src/common/can_msg_def.h +++ b/src/common/can_msg_def.h @@ -19,9 +19,10 @@ #define CAN_SWITCH_STRATEGY 4 //flags sent in CAN_ROBOT_BUMPERS -#define CAN_BUMPER_REAR 1 -#define CAN_BUMPER_LEFT 2 -#define CAN_BUMPER_RIGHT 4 -#define CAN_BUMPER_LEFT_ACROSS 8 -#define CAN_BUMPER_RIGHT_ACROSS 16 +#define CAN_BUMPER_REAR_LEFT 1 +#define CAN_BUMPER_REAR_RIGHT 2 +#define CAN_BUMPER_LEFT 4 +#define CAN_BUMPER_RIGHT 8 +#define CAN_BUMPER_LEFT_ACROSS 16 +#define CAN_BUMPER_RIGHT_ACROSS 32 diff --git a/src/robofsm/fsmmove.cc b/src/robofsm/fsmmove.cc index 6592f2f9..f308338f 100644 --- a/src/robofsm/fsmmove.cc +++ b/src/robofsm/fsmmove.cc @@ -346,7 +346,8 @@ FSM_STATE(movement) if (robot.moves_backward && robot.use_back_bumpers && (robot.orte.robot_bumpers.bumper_left_across || robot.orte.robot_bumpers.bumper_right_across || - robot.orte.robot_bumpers.bumper_rear)) + robot.orte.robot_bumpers.bumper_rear_left || + robot.orte.robot_bumpers.bumper_rear_right)) FSM_TRANSITION(wait_and_try_again); break; case EV_OBSTACLE_SIDE: @@ -384,7 +385,8 @@ FSM_STATE(close_to_target) if (robot.moves_backward && robot.use_back_bumpers && (robot.orte.robot_bumpers.bumper_left_across || robot.orte.robot_bumpers.bumper_right_across || - robot.orte.robot_bumpers.bumper_rear)) + robot.orte.robot_bumpers.bumper_rear_left || + robot.orte.robot_bumpers.bumper_rear_right)) FSM_TRANSITION(wait_and_try_again); break; case EV_OBSTACLE_SIDE: diff --git a/src/robofsm/robot_orte.c b/src/robofsm/robot_orte.c index b6bd0c25..dbb444ee 100644 --- a/src/robofsm/robot_orte.c +++ b/src/robofsm/robot_orte.c @@ -435,7 +435,7 @@ void rcv_robot_bumpers_cb(const ORTERecvInfo *info, void *vinstance, static bool last_left, last_right; switch (info->status) { case NEW_DATA: - if (instance->bumper_right_across || instance->bumper_left_across || instance->bumper_rear) + if (instance->bumper_right_across || instance->bumper_left_across || instance->bumper_rear_left || instance->bumper_rear_right) FSM_SIGNAL(MOTION, EV_OBSTACLE_BEHIND, NULL); if (instance->bumper_left || instance->bumper_right) { diff --git a/src/types/robottype.idl b/src/types/robottype.idl index 941acdc6..92c5c301 100644 --- a/src/types/robottype.idl +++ b/src/types/robottype.idl @@ -72,7 +72,8 @@ struct robot_bumpers { boolean bumper_right; boolean bumper_right_across; boolean bumper_left_across; - boolean bumper_rear; + boolean bumper_rear_left; + boolean bumper_rear_right; }; struct can_msg { -- 2.39.2