Opc.Ua.Server.MinMaxAggregateCalculator.ComputeValue C# (CSharp) Method

ComputeValue() protected method

Computes the value for the timeslice.
protected ComputeValue ( Opc.Ua.Server.TimeSlice slice ) : DataValue
slice Opc.Ua.Server.TimeSlice
return DataValue
        protected override DataValue ComputeValue(TimeSlice slice)
        {
            uint? id = AggregateId.Identifier as uint?;

            if (id != null)
            {
                switch (id.Value)
                {
                    case Objects.AggregateFunction_Minimum:
                    {
                        return ComputeMinMax(slice, 1, false);
                    }

                    case Objects.AggregateFunction_MinimumActualTime:
                    {
                        return ComputeMinMax(slice, 1, true);
                    }

                    case Objects.AggregateFunction_Maximum:
                    {
                        return ComputeMinMax(slice, 2, false);
                    }

                    case Objects.AggregateFunction_MaximumActualTime:
                    {
                        return ComputeMinMax(slice, 2, true);
                    }

                    case Objects.AggregateFunction_Range:
                    {
                        return ComputeMinMax(slice, 3, false);
                    }

                    case Objects.AggregateFunction_Minimum2:
                    {
                        return ComputeMinMax2(slice, 1, false);
                    }

                    case Objects.AggregateFunction_MinimumActualTime2:
                    {
                        return ComputeMinMax2(slice, 1, true);
                    }

                    case Objects.AggregateFunction_Maximum2:
                    {
                        return ComputeMinMax2(slice, 2, false);
                    }

                    case Objects.AggregateFunction_MaximumActualTime2:
                    {
                        return ComputeMinMax2(slice, 2, true);
                    }

                    case Objects.AggregateFunction_Range2:
                    {
                        return ComputeMinMax2(slice, 3, false);
                    }
                }
            }

            return base.ComputeValue(slice);
        }
        #endregion