示例#1
0
        private UnitedSensorValue GetDoubleDataObject(List <double> values, DateTime barStartTime, DateTime barEndTime)
        {
            UnitedSensorValue result = new UnitedSensorValue();

            FillCommonData(result, barStartTime);
            DoubleBarData barData = new DoubleBarData();

            barData.LastValue = values.Any() ? GetRoundedNumber(values.Last()) : 0.0;
            FillNumericData(barData, values);
            barData.StartTime = barStartTime.ToUniversalTime();
            barData.EndTime   = barEndTime.ToUniversalTime();
            result.Data       = JsonConvert.SerializeObject(barData);
            return(result);
        }
示例#2
0
        private void FillNumericData(DoubleBarData data, List <double> values)
        {
            if (values.Any())
            {
                values.Sort();
                data.Max   = GetRoundedNumber(values.Last());
                data.Min   = GetRoundedNumber(values.First());
                data.Count = values.Count;
                data.Mean  = GetRoundedNumber(CountMean(values));
                data.Percentiles.Add(new PercentileValueDouble(GetRoundedNumber(GetPercentile(values, 0.25)), 0.25));
                data.Percentiles.Add(new PercentileValueDouble(GetRoundedNumber(GetPercentile(values, 0.5)), 0.5));
                data.Percentiles.Add(new PercentileValueDouble(GetRoundedNumber(GetPercentile(values, 0.75)), 0.75));
                return;
            }

            data.Max   = 0.0;
            data.Min   = 0.0;
            data.Count = 0;
            data.Mean  = 0.0;
        }