12/06/2021
When a FiniteStateMachineType is in a state that is a substate of another stage, should the CurrentState property of the parent machine display the outer state or the inner state?
So taking PackML as an example, if in the Execute state, I think it is clear that BaseStateMachine.MachineState.ExecuteState.CurrentState should be Execute.
But given that Execute is a substate of Running, which is a substate of Cleared...
I am unsure whether the value of BaseStateMachine.CurrentState should be Cleared or Execute.
Similarly unsure whether BaseStateMachine.MachineState.CurrentState should be Running or Executing.
07/05/2017
The current state only displays the state of the given StateMachine - i.e. cleared in the first item and running in the second item. There is a property in the StateVariableType that is used to display the effective state that includes substates.
from part 16 - "EffectiveDisplayName contains a human readable name for the current state of the state machine after taking the state of any SubStateMachines in account. There is no rule specified for which state or sub-state should be used. It is up to the Server and will depend on the semantics of the StateMachineType."
So the BaseStateMachine.CurrentState.EffectiveDislayName would be Execute as would the BaseStateMachine.MachineState.CurrentState.EffectiveDislayName.
1 Guest(s)