hsm.core.CallbackState

class CallbackState(name, callback, *args, **kwargs)

Bases: ProcessingState

State executing a given function while being active.

Methods

add_handler

Add a new event callback.

add_transition

Add a transition from self to target_state

execute

Method executed while this state is active

is_active

is_substate

Check whether the state is a substate of self.

request_preempt

ros_subscribe

Attributes

root

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 transition

  • events (Iterable of Hashable) – List of events that trigger the transition

  • condition (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.

Parameters:

state (State) – State to verify

Returns:

True if state is a substate of self, False otherwise

Return type:

bool

property root

Get the root state in a states hierarchy.

Returns:

Root state in the states hierarchy

Return type:

State