Opc.Ua.Server.StateMachine.SetSubState C# (CSharp) Method

SetSubState() public method

Sets the state for the machine.
public SetSubState ( OperationContext context, QualifiedName stateName, QualifiedName substateMachine, QualifiedName substateName ) : void
context OperationContext
stateName QualifiedName
substateMachine QualifiedName
substateName QualifiedName
return void
        public virtual void SetSubState(
            OperationContext context, 
            QualifiedName    stateName, 
            QualifiedName    substateMachine, 
            QualifiedName    substateName)
        {
            lock (DataLock)
            {
                Transition transition = BeginTransitionToState(context, stateName);
                
                OnBeforeTransition(context, transition, null);
                
                UpdateState(transition.ToState, transition);
                
                // update submachine before reporting effect.
                foreach (StateMachine submachine in m_substateMachines)
                {
                    // check for match.
                    if (substateMachine != submachine.BrowseName)
                    {
                        continue;
                    }

                    // update state.
                    State substate = null;

                    if (submachine.m_states.TryGetValue(substateName, out substate))
                    {
                        submachine.UpdateState(substate, transition);
                    }
                }            

                EndTransition(context, transition, null);

                OnAfterTransition(context, transition, null);
            }
        }