public void WriteToFile(WdaqReading reading, string currentFile) { _lock.Wait(); if (_cache == null) { _cache = new ConcurrentBag <WdaqReading>(); } if (_cache.Count == MAX_SIZE) { var data = _cache.ToList(); var tr = new Thread(() => StoreFile(data, currentFile)); tr.Start(); _cache = null; } else { _cache.Add(reading); } _lock.Release(); }
private void WdaqReadingReceived(object sender, WdaqReading reading) { temp_chart.Series.First().Values.Add(reading.Temperature); humidity_chart.Series.First().Values.Add(reading.Humidity); pressure_chart.Series[0].Values.Add(reading.Pressure.Temperature); pressure_chart.Series[1].Values.Add(reading.Pressure.Pressure); pressure_chart.Series[2].Values.Add(reading.Pressure.Altitude); accelerometer.Series[0].Values.Add(reading.Accelerometer.XValue); accelerometer.Series[1].Values.Add(reading.Accelerometer.YValue); accelerometer.Series[2].Values.Add(reading.Accelerometer.ZValue); gyroscope.Series[0].Values.Add(reading.Gyroscope.XValue); gyroscope.Series[1].Values.Add(reading.Gyroscope.YValue); gyroscope.Series[2].Values.Add(reading.Gyroscope.ZValue); control_box.Invoke((MethodInvoker)(() => { altitude_txt.Text = $"Altitud: {reading.Pressure.Altitude}"; wind_speed_label.Text = $"Velocidad de viento: {reading.WindSensor.WindMph}"; })); }