예제 #1
0
        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();
        }
예제 #2
0
        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}";
            }));
        }