def provide_task_status_handler(self, missionId): # If mission found... for mission in self.missions: if mission['missionId'] == missionId: taskStatus = MSGConstructor.TaskStatusConstructor( missionId=mission['missionId'], taskId=mission['taskId'], statusCode=mission['statusCode'], statusDescription=mission['statusDescription'], when=mission['when']) return taskStatus # If mission not found taskStatus = MSGConstructor.TaskStatusConstructor( missionId='null', taskId='null', statusCode=12, statusDescription='null', when=rospy.get_rostime()) return taskStatus
def update_mission_status(self, missionId, taskId, statusCode, statusDescription): if statusCode in [1, 3, 11]: rospy.loginfo('[TaskManager] [' + str(self.robotId) + '] [' + str(missionId) + '] ' + str(statusDescription)) elif statusCode in [4, 12]: rospy.logerr('[TaskManager] [' + str(self.robotId) + '] [' + str(missionId) + '] ' + str(statusDescription)) if self.taskStatusPub is not None: taskStatus = MSGConstructor.TaskStatusConstructor( missionId=missionId, taskId=taskId, statusCode=statusCode, statusDescription=statusDescription, when=rospy.get_rostime()) self.taskStatusPub.publish(taskStatus) for mission in self.missions: if mission['missionId'] == missionId: mission['taskId'] = taskId mission['statusCode'] = statusCode mission['statusDescription'] = statusDescription mission['when'] = rospy.get_rostime()