public NormalizingPlotter(NPlot.Windows.PlotSurface2D plotSurface, TimeSpan displayPeriod) : base(plotSurface) { this.DisplayPeriod = displayPeriod; HeartRate heartRate = HeartRate.Instance; NormalizerFilter normalizerFilter = new NormalizerFilter(TimeSpan.FromSeconds(1.5)); LightStoneDevice.Instance.RawHeartSignalOutput.Add(normalizerFilter); int bufferSize = (int)(m_DisplayPeriod.Ticks / LightStoneDevice.SamplingInterval.Ticks); m_PointBuffer = TimeSpanBuffer<double>.Synchronized(m_DisplayPeriod, bufferSize); normalizerFilter.Output.Add(m_PointBuffer); this.PlotSurface.Clear(); m_LinePlot = new LinePlot(); m_LinePlot.Pen = new Pen(Color.Red, 2.0f); this.PlotSurface.Add(m_LinePlot); this.PlotSurface.XAxis1 = new DateTimeAxis(this.PlotSurface.XAxis1); this.PlotSurface.XAxis1.NumberFormat = "hh:mm:ss"; this.PlotSurface.Title = "Normalized Heart Signal"; this.PlotSurface.XAxis1.Label = "Time"; this.PlotSurface.YAxis1.Label = "Magnitude"; Refresh(); }
protected override void OnCreateControl() { if (!this.DesignMode) { HeartRate heartRate = HeartRate.Instance; NormalizerFilter normalizerFilter = new NormalizerFilter(TimeSpan.FromSeconds(1.5)); LightStoneDevice.Instance.RawHeartSignalOutput.Add(normalizerFilter); int bufferSize = (int)(this.DisplayPeriod.Ticks / LightStoneDevice.SamplingInterval.Ticks); m_PointBuffer = TimeSpanBuffer<double>.Synchronized(this.DisplayPeriod, bufferSize); normalizerFilter.Output.Add(m_PointBuffer); base.PlotSurface.Clear(); m_LinePlot = new LinePlot(); m_LinePlot.Pen = new Pen(Color.Red, 2.0f); base.PlotSurface.Add(m_LinePlot); base.PlotSurface.XAxis1 = new DateTimeAxis(base.PlotSurface.XAxis1); base.PlotSurface.XAxis1.NumberFormat = "mm:ss"; base.PlotSurface.Title = "Normalized Heart Signal"; base.PlotSurface.XAxis1.Label = "Time"; base.PlotSurface.YAxis1.Label = "Magnitude"; RefreshGraph(); base.StartTimer(100); } base.OnCreateControl(); }