示例#1
0
        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);
 }
示例#5
0
        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
            {

            }
        }
示例#6
0
 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
         }
     }
 }
示例#7
0
 public virtual bool AddRawData(DataPoint data)
 {
     WriteLine(data.ToString());
     if (!IsPlotActivated)
         return true;
     try
     {
         SensorDataSet.Add(data);
     }
     catch { }
     return true;
 }
示例#8
0
 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
         }
     }
 }