executive_smach
executive_smach copied to clipboard
Constant userdata passing (or constant remapping)
Is it possible to define transitions between states with constant userdata?
I want the input variable var1
of FOO
to be set to test
every time after executing BAR
, without modifying the internals of BAR
.
Something along the lines of:
smach.StateMachine.add('BAR', Bar(),
transitions={'outcome1':'FOO'},
remapping={'bar_counter_in':'sm_counter'},
constants={'var1':'test'})
Or even making the remappings
aware that if some key does not exist as an input or output of BAR
, it should be treated as a constant:
smach.StateMachine.add('BAR', Bar(),
transitions={'outcome1':'FOO'},
remapping={'bar_counter_in':'sm_counter', 'test': 'var1'})
Or even:
smach.StateMachine.add('BAR', Bar(),
transitions={'outcome1':['FOO',{'var1': 'test'}]},
remapping={'bar_counter_in':'sm_counter'})
This would be VERY useful to me, as I have different instances of the same state pointing to another state, but depending on which instance I am coming from, I want different data to be passed in a constant manner.