public override bool ComputeSignal() { DataPoint dp = null; //TODO: analyze the signal to look for stability //take the average... dp = new DataPoint(RawDataCache.First().Time, RawDataCache.Last().Time, this.RawDataCache.Select(p => p.YValue)); if (dp != null) { this.WriteLine(dp.ToString()); this.SensorDataSet.Add(dp); return true; } return false; }
public override bool AddRawData(DataPoint data) { RawDataCache.Add(data); //TODO: the oder here has to be optimized: //at least _MinimumSamples //try to detect a stable signal until the timer elapses //check if there's ENOUGH data or we waited for too long if (RawDataCache.Count > MinimumSamples || _MeasurementTimeElapsed) // changed { //reset the measurement interval _MeasurementTimeElapsed = false; timer.Stop(); timer.Start(); //now compute the signal bool res = ComputeSignal(); RawDataCache.Clear(); return res; } return false; }
public void AddPoint(DataPoint data) { SensorDataSet.Add(data); }
public void AddPoint(DataPoint data) { if (!initialDelay.IsCompleted) return; SensorDataSet.Add(data); //if (Target == CalibrationTarget.Stirrer) //{ // DataPoint prev = SensorDataSet.LastOrDefault(); // double preval = 0; // if (prev != null) // preval = prev.YValue; // DataPoint data2 = new DataPoint(data.Time, preval + data.YValue); // SensorDataSet.Add(data2); //} //else // SensorDataSet.Add(data); }
private void PrimarySerial_NewMessageReceived(object sender, Message message) { try { switch (message.MessageType) { case MessageType.Data: if (message.Contents[0] == Calibrator.CalibrationTargetSymbol) { double val = Convert.ToDouble(message.Contents[1]); DataPoint dp = new DataPoint(DateTime.Now, val); SensorDataSet.Add(dp); if (Calibrator.ActiveCalibrationSub != null) Calibrator.ActiveCalibrationSub.AddPoint(new DataPoint(DateTime.Now, val)); } break; case MessageType.Command: break; case MessageType.DataFormat: break; case MessageType.CommandFormat: break; default: break; } } catch { } }
private void LoadPointsFromFile(string filepath, ObservableCollection<DataPoint> targetCollection) { string[] lines = File.ReadAllLines(filepath); for (int i = 1; i < lines.Length; i++) { DataPoint dp = new DataPoint(lines[i]); try { targetCollection.Add(dp); } catch { //TODO: this feels dirty } } }
public virtual bool AddRawData(DataPoint data) { WriteLine(data.ToString()); if (!IsPlotActivated) return true; try { SensorDataSet.Add(data); } catch { } return true; }
public void ActivatePlot(DataLogBase.CalculateRuntimeMethodDelegate calculateRuntimeMethod) { IsPlotActivated = true; try { SensorDataSet.Clear(); } catch { } //create the data source DataSource = new EnumerableDataSource(SensorDataSet); DataSource.DataToPoint = new Func<object, Point>(dp => new Point(calculateRuntimeMethod.Invoke((dp as DataPoint).Time), (dp as DataPoint).YValue)); string[] lines = File.ReadAllLines(_FilePath); for (int i = 1; i < lines.Length; i++) { DataPoint dp = new DataPoint(lines[i]); try { SensorDataSet.Add(dp); } catch { //TODO: this feels dirty } } }