Ejemplo n.º 1
0
def test_parse_dummy_action():
    ''' Parse a simple action from JSON '''
    json_filename = os.path.join(json_dir, 'execute_dummy_action.js')
    request_str = open(json_filename).read()
    request_dict = json.loads(request_str)
    sm = parser.create_state_machine_from_action_dict(request_dict,
                                                      {'Dummy': Dummy})
    sm.execute()
def test_parse_dummy_action():
    ''' Parse a simple action from JSON '''
    json_filename = os.path.join(json_dir, 'execute_dummy_action.js')
    request_str = open(json_filename).read()
    request_dict = json.loads(request_str)
    sm = parser.create_state_machine_from_action_dict(
        request_dict, {'Dummy':Dummy})
    sm.execute()
    def execute_action(self, action_dict):
        # create a state machine wrapper for the action
        self.sm = parser.create_state_machine_from_action_dict(action_dict, self.actions)
        
        # execute the state machine
        rospy.loginfo('Executing state machine')
        sis = smach_ros.IntrospectionServer('executer_server_introspection', self.sm, '/EXECUTER_SERVER')
        sis.start()
        outcome = self.sm.execute()
        outputs = ""
        registered_output_keys = self.sm.get_registered_output_keys()
        rospy.loginfo("registered output keys: %s"%str(registered_output_keys))
        if "outputs" in self.sm.get_registered_output_keys():
            outputs = self.sm.userdata.outputs
        else:
            rospy.loginfo("no outputs in state's registered output keys")

        # state machine executed successfully; return outcome
        rospy.loginfo('State machine executed successfully with outcome: %s' % outcome)
        return (outcome, outputs)
Ejemplo n.º 4
0
    def execute_action(self, action_dict):
        # create a state machine wrapper for the action
        self.sm = parser.create_state_machine_from_action_dict(action_dict, self.actions)
        
        # execute the state machine
        rospy.loginfo('Executing state machine')
        sis = smach_ros.IntrospectionServer('executer_server_introspection', self.sm, '/EXECUTER_SERVER')
        sis.start()
        outcome = self.sm.execute()
        outputs = ""
        registered_output_keys = self.sm.get_registered_output_keys()
        rospy.loginfo("registered output keys: %s"%str(registered_output_keys))
        if "outputs" in self.sm.get_registered_output_keys():
            outputs = self.sm.userdata.outputs
        else:
            rospy.loginfo("no outputs in state's registered output keys")

        # state machine executed successfully; return outcome
        rospy.loginfo('State machine executed successfully with outcome: %s' % outcome)
        return (outcome, outputs)
Ejemplo n.º 5
0
def test_parse_empty_dict():
    ''' Expect a ValueError when parsing an empty dicitionary '''
    try:
        a = parser.create_state_machine_from_action_dict({}, {})
    except ValueError:
        return
def test_parse_empty_dict():
    ''' Expect a ValueError when parsing an empty dicitionary '''
    try:
        a = parser.create_state_machine_from_action_dict({}, {})
    except ValueError:
        return