hsm.core.CallbackState
- class CallbackState(name, callback, *args, **kwargs)
Bases:
ProcessingState
State executing a given function while being active.
Methods
Add a new event callback.
Add a transition from self to target_state
Method executed while this state is active
is_active
Check whether the state is a substate of self.
request_preempt
ros_subscribe
Attributes
Get the root state in a states hierarchy.
- add_handler(events, func, prepend=False)
Add a new event callback.
- Parameters:
trigger (str) – name of triggering event
func (callable) – callback function
- add_transition(events, target_state, condition=None, action=None, before=None, after=None)
Add a transition from self to target_state
All callbacks take two arguments - state and event. See parameters description for details.
It is possible to create conditional if/elif/else-like logic for transitions. To do so, add many same transition rules with different condition callbacks. First met condition will trigger a transition, if no condition is met, no transition is performed.
- Parameters:
target_state (
State
, None) – Target state. If None, then it’s an internal transitionevents (
Iterable
ofHashable
) – List of events that trigger the transitioncondition (
Callable
) –Condition callback - if returns True transition may be initiated.
condition callback takes two arguments:
state: Leaf state before transition
event: Event that triggered the transition
action (
Callable
) –Action callback that is called during the transition after all states have been left but before the new one is entered.
action callback takes two arguments:
state: Leaf state before transition
event: Event that triggered the transition
before (
Callable
) –Action callback that is called right before the transition.
before callback takes two arguments:
state: Leaf state before transition
event: Event that triggered the transition
after (
Callable
) –Action callback that is called just after the transition
after callback takes two arguments:
state: Leaf state after transition
event: Event that triggered the transition
- execute(event=None)
Method executed while this state is active
The return value of this function triggers a corresponding event.
- is_substate(state)
Check whether the state is a substate of self.
Also self is considered a substate of self.