private void ResetButton_Click(object sender, RoutedEventArgs e) { BMDatabase db = GetSelectedDB(); if (db != null) { db.Records.Clear(); UpdateDeviceList(); UpdateChart(); } }
private void UpdateChart(BluetoothDevice device = null) { BMDatabase selected = GetSelectedDB(); if (selected != null) { if (device == null || selected.Device.Address == device.Address) { UpdateChartFromSelectedDB(selected); } } }
private void UpdateOrAddBMDeviceRecordVM(BMDatabase db) { BMDeviceRecordVM dev = _devices.FirstOrDefault(d => d.DeviceAddress == db.Device.Address); if (dev == null) { dev = new BMDeviceRecordVM(db); _devices.Add(dev); } dev.Index = _devices.IndexOf(dev); dev.Update(db); }
private void _listDevices_SelectionChanged(object sender, SelectionChangedEventArgs e) { BMDatabase db = GetSelectedDB(); if (db != null) { UpdateChartFromSelectedDB(db); } else //no selection { ClearChart(); } }
private void SaveDillutedButton_Click(object sender, RoutedEventArgs e) { BMDatabase db = GetSelectedDB(); if (db == null) { return; } double bucketIntervalInSec = 60 * double.Parse(((ComboBoxItem)_cmbInterval.SelectedItem).Tag.ToString()); SaveDatabaseAs(db, bucketIntervalInSec); }
private void SaveDatabaseAs(BMDatabase db, double bucketIntervalInSec) { SaveFileDialog _saveFileDialog = new SaveFileDialog() { RestoreDirectory = true, Filter = "All supported files|*.xml|All files (*.*)|*.*", FileName = db.GenerateFileName() //InitialDirectory = _openDirectory }; if (_saveFileDialog.ShowDialog(this).Value) { this.Cursor = Cursors.Wait; db.SaveAs(_saveFileDialog.FileName, bucketIntervalInSec); this.Cursor = Cursors.Arrow; } }
private void OpenButton_Click(object sender, RoutedEventArgs e) { OpenFileDialog _openFileDialog = new OpenFileDialog() { Multiselect = true, RestoreDirectory = true, Filter = "All supported files|*.xml|All files (*.*)|*.*", //InitialDirectory = _openDirectory }; if (_openFileDialog.ShowDialog(this).Value) { this.Cursor = Cursors.Wait; //_openDirectory = Path.GetDirectoryName(_openFileDialog.FileName); List <string> fileNamesList = new List <string>(_openFileDialog.FileNames); fileNamesList.Sort(); BMDatabase dbAll = null; for (int i = 0; i < fileNamesList.Count; i++) { BMDatabase db = BMDatabase.Open(fileNamesList[i]); if (db != null) { dbAll = BMDatabaseMap.INSTANCE.Merge(db); } else { MessageBox.Show("Error open file: \n" + fileNamesList[i]); } } UpdateDeviceList(); UpdateChart(); this.Cursor = Cursors.Arrow; } }
public void Update(BMDatabase db) { Database = db; //alternate background //Background = (index%2==0)? Brushes.AliceBlue : Brushes.AntiqueWhite; //IsSelected = isSelected; BMRecordCurrent r = new BMRecordCurrent(); if (db.Records.Count > 0) { r = db.Records.Last(); } TimeSpan age = DateTime.Now - r.Date; IsActive = age.TotalSeconds < 60; Name = string.IsNullOrWhiteSpace(db.Device.DisplayName)?db.Device.Name : db.Device.DisplayName; System.Diagnostics.Debug.WriteLine("Display Name: " + Name); Address = "(" + db.Device.GetAddressString() + ")"; Interval = "Int: " + r.LoggingInterval.ToString(); Signal = "Sig: " + r.RSSI; LogsCount = "Logs: " + db.Records.Count; Battery = "Bat: " + r.BatteryLevel + "%"; Temperature.Value = (r.GetTemperature(db.Units)).ToString("0.0"); Temperature.Units = db.Units.TemperatureUnits.Desc; AirHumidity.Value = (r.GetAirHumidity()).ToString("0.0"); AirHumidity.Units = db.Units.RelativeHumidityUnits.Desc; AirPressure.Value = (r.GetAirPressure(db.Units)).ToString("0.0"); AirPressure.Units = db.Units.AirPressureUnits.Desc; AirDewPoint.Value = (r.GetAirDewPoint(db.Units)).ToString("0.0"); AirDewPoint.Units = db.Units.TemperatureUnits.Desc; }
private void UpdateChartFromSelectedDB(BMDatabase db) { if (_isInUpdate) { return; } _isInUpdate = true; DateTime startUpdateTime = DateTime.Now; this.Title = "Barometer - " + db.Device; this.Cursor = Cursors.AppStarting; db.Units.TemperatureUnits.Units = (eTemperatureUnits)_cmbTemperatureUnits.SelectedItem; db.Units.AirPressureUnits.Units = (eAirPressureUnits)_cmbAirPressureUnits.SelectedItem; double days = double.Parse(((ComboBoxItem)_cmbDays.SelectedItem).Tag.ToString()); TimeSpan daysBack = TimeSpan.FromDays(days); List <BMRecordCurrent> recordsIn = db.GetLastRecords(daysBack); List <BMRecordCurrent> recordsOut; //bool isIntervalZoom = false; //if (isIntervalZoom) //{ // if (_chkAutoZoom.IsChecked.Value) // { // int bucketSize = db.Records.Count / 1000; //1000 records after zoom // _sliderDillute.Value = Math.Ceiling(Math.Pow(bucketSize, 0.5)); // } // int zoom = (int)Math.Pow(2, _sliderDillute.Value); // _txtDilluteValue.Text = string.Format("Dillute x{0:0.0}", zoom); // recordsOut = db.DilluteByPointAndConvertUnits(recordsIn, zoom); //} //else //dillute by time { double bucketIntervalInSec = 60 * double.Parse(((ComboBoxItem)_cmbInterval.SelectedItem).Tag.ToString()); if (_chkAutoZoom.IsChecked.Value) { bucketIntervalInSec = 15; //_cmbInterval.SelectedIndex = 0; //all if (recordsIn.Count >= BMDatabase.MIN_RECORDS_TO_FILTER) { TimeSpan range = recordsIn.Last().Date - recordsIn.First().Date; bucketIntervalInSec = range.TotalSeconds / 1000; //interval in seconds to get 1000 points bucketIntervalInSec = GetClosestIntervalAndSetSelectInComboBox(bucketIntervalInSec); } } //////// // recordsOut = BMDatabase.DilluteByTime(recordsIn, bucketIntervalInSec); } BMDeviceRecordVM dev = _listDevices.SelectedItem as BMDeviceRecordVM; _chart1.UpdateChartTemperature(recordsOut, db.Units, dev.IsActive); _chart2.UpdateChartHumidity(recordsOut, db.Units, dev.IsActive); _chart3.UpdateChartAirPressure(recordsOut, db.Units, dev.IsActive); TimeSpan tsElapsed = DateTime.Now - startUpdateTime; _txtDilluteResult.Text = string.Format("Total: {0:###,###} -> {1:###,###} -> {2} ({3:0.0} ms)", db.Records.Count, recordsIn.Count, recordsOut.Count, tsElapsed.TotalMilliseconds); this.Cursor = Cursors.Arrow; _isInUpdate = false; }
public BMDeviceRecordVM(BMDatabase db) { Update(db); }