Public Member Functions | |
def | __init__ |
def | call_update_tree_view_cb |
def | execute |
State interface. | |
def | get_tree_view |
def | register_tree_view_cb |
Private Member Functions | |
def | _create_tree_view |
def | _state_runner |
def | _tree_view_disable_state |
def | _tree_view_enable_state |
Private Attributes | |
_child_outcomes | |
_datamodel | |
_onEntry | |
_onExit | |
_threads | |
_tree_view | |
_tree_view_cb | |
_tree_view_Lock | |
_user_code_exception | |
Copy the datamodel's value into the userData. |
Concurrence Container This state allows for simple split-join concurrency. The user adds a set of states which are all executed simultaneously. The concurrent split state can only transition once all conatained states are ready to transition. This container can be configured to return a given outcome as a function of the outcomes of the contained states. This is specified in the constructor of the class, or after construction with L{Concurrence.add_outcome_map}. While a concurrence will not terminate until all if its children terminate, it is possible for it to preempt a subset of states - All child states terminate - At least one child state terminates - A user-defined callback signals termination Given these causes of termination, the outcome can be determined in four ways: - A user-defined callback returns an outcome - A child-outcome map which requires ALL states to terminate is satisfied - A child-outcome map which requires ONE state to terminate is satisfied - No maps are satisfied, so the default outcome is returned The specification of the outcome maps and the outcome callback are described in the constructor documentation below. More than one policy can be supplied, and each policy has the potential to not be satisfied. In the situation in which multiple policies are provided, and a given policy is not satisfied, the outcome choice precedence is as follows: - Outcome callback - First-triggered outcome map - last-triggered outcome map - Default outcome In practive it is best to try to accomplish your task with just ONE outcome policy.
Definition at line 29 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence.__init__ | ( | self, | |
outcomes, | |||
input_keys = [] , |
|||
output_keys = [] , |
|||
outcome_map = {} , |
|||
outcome_cb = None , |
|||
child_termination_cb = None |
|||
) |
Definition at line 66 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence._create_tree_view | ( | self | ) | [private] |
Definition at line 284 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence._state_runner | ( | self, | |
label | |||
) | [private] |
Runs the states in parallel threads.
Definition at line 231 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence._tree_view_disable_state | ( | self, | |
label | |||
) | [private] |
Definition at line 297 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence._tree_view_enable_state | ( | self, | |
label | |||
) | [private] |
Definition at line 289 of file ssm_concurrence.py.
Definition at line 311 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence.execute | ( | self, | |
parent_ud = smach.UserData() |
|||
) |
State interface.
Overridden execute method. This starts all the threads.
Definition at line 88 of file ssm_concurrence.py.
Definition at line 305 of file ssm_concurrence.py.
def src.airbus_ssm_core.ssm_concurrence.ssmConcurrence.register_tree_view_cb | ( | self, | |
callback | |||
) |
Definition at line 308 of file ssm_concurrence.py.
Definition at line 90 of file ssm_concurrence.py.
Definition at line 66 of file ssm_concurrence.py.
Definition at line 66 of file ssm_concurrence.py.
Definition at line 66 of file ssm_concurrence.py.
Definition at line 92 of file ssm_concurrence.py.
Definition at line 66 of file ssm_concurrence.py.
Definition at line 66 of file ssm_concurrence.py.
Definition at line 66 of file ssm_concurrence.py.
Copy the datamodel's value into the userData.
Do the <onentry>
Definition at line 92 of file ssm_concurrence.py.