public void Init(ModuleParams parameters) { Params = parameters as Heart_Class_Params; Aborted = false; if (!Runnable()) _ended = true; else { _ended = false; InputEcGbaselineWorker = new ECG_Baseline_Data_Worker(Params.AnalysisName); InputEcGbaselineWorker.Load(); InputECGbaselineData = InputEcGbaselineWorker.Data; InputRpeaksWorker = new R_Peaks_Data_Worker(Params.AnalysisName); InputRpeaksWorker.Load(); InputRpeaksData = InputRpeaksWorker.Data; InputWavesWorker = new Waves_Data_Worker(Params.AnalysisName); InputWavesWorker.Load(); InputWavesData = InputWavesWorker.Data; OutputWorker = new Heart_Class_Data_Worker(Params.AnalysisName); OutputData = new Heart_Class_Data(); _currentChannelIndex = 0; _samplesProcessed = 0; NumberOfChannels = InputECGbaselineData.SignalsFiltered.Count; _currentChannelLength = InputECGbaselineData.SignalsFiltered[_currentChannelIndex].Item2.Count; _currentVector = Vector<Double>.Build.Dense(_currentChannelLength); qrsEndStep = 10; i = 10; step = InputWavesData.QRSEnds[_currentChannelIndex].Item2[qrsEndStep]; //ilośc próbek, aż do indeksu końca 10 załamka _tempClassResult = new List<Tuple<int, int>>(); } }
public void DisplayR_Peaks() { if (first) { _r_Peaks_Data_Worker = new R_Peaks_Data_Worker(); _r_Peaks_Data_Worker.Load(); first = false; //var lineraYAxis = new LinearAxis(); //lineraYAxis.Position = AxisPosition.Left; //lineraYAxis.Minimum = -100.0; //lineraYAxis.Maximum = 80.0; //lineraYAxis.MajorGridlineStyle = LineStyle.Solid; //lineraYAxis.MinorGridlineStyle = LineStyle.Dot; //lineraYAxis.Title = "Voltage [mV]"; //CurrentPlot.Axes.Add(lineraYAxis); } else { ClearPlot(); } foreach (var signal in _r_Peaks_Data_Worker.Data.RPeaks) { Vector<double> signalVector = signal.Item2; LineSeries ls = new LineSeries(); ls.Title = signal.Item1; ls.MarkerStrokeThickness = 1; for (int i = _beginingPoint; (i <= (_beginingPoint + _windowSize) && i < signalVector.Count()); i++) { ls.Points.Add(new DataPoint(i, signalVector[i])); } CurrentPlot.Series.Add(ls); } RefreshPlot(); }