예제 #1
0
        /// <summary>
        /// process dec data
        /// </summary>
        /// <param name="entry"></param>
        private void ProcessValues2(MonitorEntry entry)
        {
            var date  = entry.Datetime.ToLocalTime();
            var point = new PointModel {
                DateTime = date, Value = 0, Set = ChartValueSet.Values2
            };
            var msg = entry.Message.Split(',');

            double.TryParse(msg[2], out var steps);

            if (IsZeroBased)
            {
                var zero = Conversions.Deg2ArcSec(90) * decStepsPerSecond;
                steps -= zero;
            }

            switch (Scale)
            {
            case ChartScale.Degrees:
                point.Value = Conversions.ArcSec2Deg(steps / decStepsPerSecond);
                break;

            case ChartScale.Arcsecs:
                point.Value = steps / decStepsPerSecond;
                break;

            case ChartScale.Steps:
                point.Value = steps;
                break;

            default:
                return;
            }

            if (IsLogging)
            {
                ChartLogging.LogPoint(BaseLogName, ChartType.Plot, point);
            }

            Values2.Add(point);
            if (Values2.Count > MaxPoints)
            {
                Values2.RemoveAt(0);
            }

            var item = TitleItems.FirstOrDefault(x => x.TitleName == Values2Title);

            if (item == null)
            {
                return;
            }
            item.Value = point.Value;
        }