Esempio n. 1
0
        private void GraphUpdate(EventArgs e)
        {
            if (_lastGraphUpdate != null && DateTime.Now - _lastGraphUpdate < TimeSpan.FromSeconds(1))
            {
                return;
            }

            var eventArgs = (SerialPortEventArgs)e;
            var moment    = _model.DetermineMoment(eventArgs.Left, eventArgs.Right);

            var t = (DateTime.Now - _t0).TotalSeconds;

            MomentValues.Add(new MeasureModel(t, moment));
            if (MomentValues.Count > 100)
            {
                MomentValues.RemoveAt(0);
            }

            _model.Training.GenerateTargetAt(t + 50.0, out double target, out double minTarget, out double maxTarget);
            TargetValues.Add(new MeasureModel(t + 50.0, target));
            UpperTargetValues.Add(new MeasureModel(t + 50.0, maxTarget));
            LowerTargetValues.Add(new MeasureModel(t + 50.0, minTarget));

            if (UpperTargetValues.Count > 100)
            {
                TargetValues.RemoveAt(0);
                LowerTargetValues.RemoveAt(0);
                UpperTargetValues.RemoveAt(0);
            }

            UpdateAxisLimits(t);

            _lastGraphUpdate = DateTime.Now;
        }