betfsm.betfsm.Concurrent

Bases: GeneratorWithList

Implements Concurrency, the children are executed at each tick concurrently until a child returns an outcome different from TICKING. After such an outcome, the other children are also reset/stopped.

stateDiagram-v2 direction TB classDef successClass fill:darkgreen,color:white classDef tickingClass fill:yellow,color:black classDef otherClass fill:darkorange,color:white classDef abortClass fill:darkred,color:white state fork_state <<fork>> [*] --> fork_state fork_state --> state_1 fork_state --> state_2 state_1 --> OTHER : OTHER outcome state_2 --> OTHER : OTHER outcome state_1 --> TICKING : TICKING state_2 --> TICKING : TICKING state "returns TICKING <br> when one are more TICK transitions <br> are received" as TICKING state "returns OTHER <br>when first outcome that arrives <br>" as OTHER class SUCCEED successClass class OTHER otherClass class TICKING tickingClass class TIMEOUT abortClass

__init__(name, children=[])

Implements Concurrency, the children are executed at each tick concurrently until a child returns an outcome different from TICKING.

Parameters:
  • name (str) –

    name of the sequence

  • children (List[TickingState], default: [] ) –

    a list of states you can use add_state(...) to add children.

co_execute(blackboard)

Python generator routine (co-routine). You can use yield <outcome> to return intermediate results

Parameters:
  • blackboard (Blackboard) –