Opc.Ua.FiniteStateMachineState.UpdateTransitionVariable C# (CSharp) Method

UpdateTransitionVariable() protected method

Updates the last transition variable.
protected UpdateTransitionVariable ( ISystemContext context, uint transitionId, FiniteTransitionVariableState variable ) : void
context ISystemContext
transitionId uint
variable FiniteTransitionVariableState
return void
        protected void UpdateTransitionVariable(ISystemContext context, uint transitionId, FiniteTransitionVariableState variable)
        {
            if (variable == null)
            {
                return;
            }

            if (transitionId == 0)
            {
                variable.Value = null;
                variable.Id.Value = null;

                if (variable.TransitionTime != null)
                {
                    variable.TransitionTime.Value = DateTime.MinValue;
                }

                if (variable.Number != null)
                {
                    variable.Number.Value = 0;
                }

                return;
            }

            ElementInfo[] transitionTable = TransitionTable;

            if (transitionTable == null)
            {
                return;
            }

            for (int ii = 0; ii < transitionTable.Length; ii++)
            {
                ElementInfo transition = transitionTable[ii];

                if (transition.Id == transitionId)
                {
                    variable.Value = transition.Name;
                    variable.Id.Value = new NodeId(transition.Id, ElementNamespaceIndex);

                    if (variable.TransitionTime != null)
                    {
                        variable.TransitionTime.Value = DateTime.UtcNow;
                    }

                    if (variable.Number != null)
                    {
                        variable.Number.Value = transition.Number;
                    }

                    return;
                }
            }
        }
        #endregion