{% from "Utils.tpl.py" import render_transitions, render_remapping %} {% block class_defs %} # define state Bar class Bar(smach.State): def __init__(self): smach.State.__init__(self, outcomes=['outcome1']{% if remapping is defined %}, input_keys=['bar_counter_in']{% endif %}) def execute(self, userdata): rospy.loginfo('Executing state {{ name }}'){% if remapping is defined %} rospy.loginfo('Counter = %f'%userdata.bar_counter_in){% endif %} return 'outcome1' {% endblock class_defs %} {% block body %} smach.{{ parent_type }}.add('{{ name }}', Bar(){% if transitions is defined %}, {{ render_transitions(transitions) }}{% endif %}{% if remapping is defined %}, {{ render_remapping(remapping) }}{% endif %}) {% endblock body %}
{% from "Utils.tpl.py" import render_transitions %} {% block class_defs %} # define state Bas class Bas(smach.State): def __init__(self): smach.State.__init__(self, outcomes=['outcome3']) def execute(self, userdata): print('Executing state {{ name }}') return 'outcome3' {% endblock class_defs %} {% block body %} smach.{{ parent_type }}.add('{{ name }}', Bas(), {{ render_transitions(transitions) }}) {% endblock body %}
{% extends "State.tpl.py" %} {% block imports %} {{ super() }} {{ import_module(defined_headers, 'rospy') }} {% endblock imports %} {% block class_defs %} {{ super() }} {% if 'class_SleepState' not in defined_headers %} class SleepState(smach.State): def __init__(self, time, input_keys = [], output_keys = [], callbacks = [], outcomes=['succeeded']): smach.State.__init__(self, input_keys=input_keys, output_keys=output_keys, outcomes=outcomes) self._time = time def execute(self, userdata): rospy.sleep(self._time) return 'succeeded' {% do defined_headers.append('class_SleepState') %}{% endif %} {% endblock class_defs %} {% block body %} smach.{{ parent_type }}.add('{{ name }}', {{ '' | indent(23, true) }}SleepState({{ time }}){% if transitions is defined %}, {{ render_transitions(transitions) }}{% endif %}) {% endblock body %}