diff --git a/include/iri_ros_tools/module_action.h b/include/iri_ros_tools/module_action.h index edc6a9af233e014c7dbf6fc640d3c6e31683d16c..182f780b2cf3d2ee60730329c3eb50a496c18524 100644 --- a/include/iri_ros_tools/module_action.h +++ b/include/iri_ros_tools/module_action.h @@ -217,26 +217,29 @@ class CModuleAction void action_done(const actionlib::SimpleClientGoalState& state,const ResultConstPtr& result) { this->action_access.enter(); - if(state==actionlib::SimpleClientGoalState::ABORTED) + if(this->status==ACTION_RUNNING) { - ROS_ERROR_STREAM("CModuleAction::action_done: goal on server " << this->name << " aborted"); - this->status=ACTION_ABORTED; - } - if(state==actionlib::SimpleClientGoalState::REJECTED) - { - ROS_ERROR_STREAM("CModuleAction::action_done: goal on server " << this->name << " rejected"); - this->status=ACTION_REJECTED; - } - else if(state==actionlib::SimpleClientGoalState::PREEMPTED) - { - ROS_WARN_STREAM("CModuleAction::action_done: goal on server " << this->name << " preempted"); - this->status=ACTION_PREEMPTED; + if(state==actionlib::SimpleClientGoalState::ABORTED) + { + ROS_ERROR_STREAM("CModuleAction::action_done: goal on server " << this->name << " aborted"); + this->status=ACTION_ABORTED; + } + if(state==actionlib::SimpleClientGoalState::REJECTED) + { + ROS_ERROR_STREAM("CModuleAction::action_done: goal on server " << this->name << " rejected"); + this->status=ACTION_REJECTED; + } + else if(state==actionlib::SimpleClientGoalState::PREEMPTED) + { + ROS_WARN_STREAM("CModuleAction::action_done: goal on server " << this->name << " preempted"); + this->status=ACTION_PREEMPTED; + } + else if(state==actionlib::SimpleClientGoalState::SUCCEEDED) + { + ROS_INFO_STREAM("CModuleAction::action_done: goal on server " << this->name << " successfull"); + this->status=ACTION_SUCCESS; + } } - else if(state==actionlib::SimpleClientGoalState::SUCCEEDED) - { - ROS_INFO_STREAM("CModuleAction::action_done: goal on server " << this->name << " successfull"); - this->status=ACTION_SUCCESS; - } this->action_result_msg=*result; this->action_feedback_msg=Feedback(); this->action_timeout.stop();