示例#1
0
    def __init__(self, goal_id=None, status=None, goal=None):
        """
        @brief create status tracker. Either pass goal_id and status OR goal
        """
        self.goal = None
        self.handle_tracker = None
        self.status = actionlib_msgs.msg.GoalStatus()

        self.handle_destruction_time = rospy.Time()

        self.id_generator = goal_id_generator.GoalIDGenerator()

        if goal_id:
            #set the goal id and status appropriately
            self.status.goal_id = goal_id
            self.status.status = status
        else:
            self.goal = goal
            self.status.goal_id = goal.goal_id

            #initialize the status of the goal to pending
            self.status.status = actionlib_msgs.msg.GoalStatus.PENDING

            #if the goal id is zero, then we need to make up an id for the goal
            if self.status.goal_id.id == "":
                self.status.goal_id = self.id_generator.generate_ID()

            #if the timestamp of the goal is zero, then we'll set it to now()
            if self.status.goal_id.stamp == rospy.Time():
                self.status.goal_id.stamp = rospy.Time.now()
    def test_generator(self):
        gen1 = goal_id_generator.GoalIDGenerator();
        
        id1 = gen1.generate_ID()
        id2 = gen1.generate_ID()
        id3 = gen1.generate_ID()
        nn1,s1,ts1 = id1.id.split('-');
        nn2,s2,ts2 = id2.id.split('-');
        nn3,s3,ts3 = id3.id.split('-');

        self.assertEquals(nn1, "/test_goal_id_generator","node names are different")
        self.assertEquals(nn1, nn2, "node names are different")
        self.assertEquals(nn1, nn3, "node names are different")

        self.assertEquals(s1, "1", "Sequence numbers mismatch")
        self.assertEquals(s2, "2", "Sequence numbers mismatch")
        self.assertEquals(s3, "3", "Sequence numbers mismatch")
 def gen_ids(tID=1,num_ids=1000):
     gen = goal_id_generator.GoalIDGenerator();
     for i in range(0,num_ids):
         id=gen.generate_ID();
         ids_lists[tID].append(id);