def on_succeed(self, event): self.condition.acquire() try: self.result_msg = yaml_msg_str(self.action_type.result, self.result.GetValue()) buff = StringIO() self.result_msg.serialize(buff) self.execute_type = SUCCEED self.condition.notify() except roslib.message.SerializationError as e: self.result_msg = None wx.MessageBox(str(e), "Error serializing result", wx.OK) self.condition.release()
def on_feedback(self, event): self.condition.acquire() try: self.feedback_msg = yaml_msg_str(self.action_type.feedback, self.feedback.GetValue()) buff = StringIO() self.feedback_msg.serialize(buff) self.execute_type = SEND_FEEDBACK self.condition.notify() except roslib.message.SerializationError as e: self.feedback_msg = None wx.MessageBox(str(e), "Error serializing feedback", wx.OK) self.condition.release()
def on_goal(self, event): try: self.goal_msg = yaml_msg_str(self.action_type.goal, self.goal.GetValue()) buff = StringIO() self.goal_msg.serialize(buff) # send the goal to the action server and register the relevant # callbacks self.client.send_goal(self.goal_msg, self.done_cb, self.active_cb, self.feedback_cb) self.set_status("Goal is pending", wx.Colour(255, 174, 59)) self.set_cancel_button(True) except roslib.message.SerializationError as e: self.goal_msg = None wx.MessageBox(str(e), "Error serializing goal", wx.OK)