Opc.Ua.ServerTest.MonitoredItemTest.IncrementValue C# (CSharp) Метод

IncrementValue() приватный Метод

Returns a new value.
private IncrementValue ( TestVariable variable, double counter ) : object
variable TestVariable
counter double
Результат object
        private object IncrementValue(TestVariable variable, double counter)
        {
            BuiltInType builtInType = TypeInfo.GetBuiltInType(variable.Variable.DataType, Session.TypeTree);
            
            Range range = variable.EURange;

            if (range == null)
            {
                switch (builtInType)
                {
                    case BuiltInType.SByte:
                    {
                        range = new Range(SByte.MaxValue, 0);
                        break;
                    }

                    case BuiltInType.Byte:
                    {
                        range = new Range(Byte.MaxValue, 0);
                        break;
                    }

                    case BuiltInType.Int16:
                    {
                        range = new Range(Int16.MaxValue, 0);
                        break;
                    }

                    case BuiltInType.UInt16:
                    {
                        range = new Range(UInt16.MaxValue, 0);
                        break;
                    }
                        
                    case BuiltInType.Integer:
                    case BuiltInType.Int32:
                    {
                        range = new Range(Int32.MaxValue, 0);
                        break;
                    }

                    default:
                    {
                        range = new Range(Int32.MaxValue, 0);
                        break;
                    }
                }
            }

            if (counter > range.High)
            {
                counter = 0;
            }

            if (counter < range.Low)
            {
                counter = range.Low;
            }

            object value = TypeInfo.Cast(counter, builtInType);
            
            if (variable.Variable.ValueRank < 0)
            {
                return value;
            }
            
            Array array = TypeInfo.CreateArray(builtInType, 3);

            if (array.GetType().GetElementType() == typeof(Variant))
            {
                array.SetValue(new Variant(value), 0);
                array.SetValue(new Variant(value), 1);
                array.SetValue(new Variant(value), 2);
            }
            else
            {
                array.SetValue(value, 0);
                array.SetValue(value, 1);
                array.SetValue(value, 2);
            }

            return array;
        }