public AnalogSensorSettingsDialog( GenericAnalogSensorSettings settings, GenericAnalogSensorCollection sensorCollection, GenericAnalogInputBase analogInputDriver, Window parent) : base(settings, sensorCollection, analogInputDriver, parent) { var t = new SettingsTextBox("LPF Factor"); t.textBox.text = sensorName.IsNotEmpty() ? settings.lowPassFilterFactor.ToString() : "5"; t.textBox.TextChangedEvent += (sender, args) => { try { var factor = Convert.ToInt32(args.text); if (factor < 0) { MessageBox.Show("Low passs filter factor can't be negative"); args.keepText = false; return; } } catch { MessageBox.Show("Improper Low passs filter factor format"); args.keepText = false; } }; AddSetting(t); DrawSettings(); }
public AnalogSensorWidget( string sensorTypeLabel, GenericAnalogSensorCollection sensorCollection, GenericAnalogInputBase analogInputDriver, Type settingsType ) { this.sensorCollection = sensorCollection; this.analogInputDriver = analogInputDriver; if (!settingsType.TypeIs(typeof(GenericAnalogSensorSettings))) { throw new ArgumentException("The settings type must derive GenericAnalogSensorSettings", nameof(settingsType)); } this.settingsType = settingsType; SetSizeRequest(370, 188); var label = new TouchLabel(); label.text = sensorTypeLabel; label.textColor = "seca"; label.textSize = 12; Put(label, 0, 3); label.Show(); var sensorSettingsButton = new TouchButton(); sensorSettingsButton.text = "\u2699"; sensorSettingsButton.SetSizeRequest(30, 30); sensorSettingsButton.buttonColor = "pri"; sensorSettingsButton.ButtonReleaseEvent += OnSensorSettingsButtonReleaseEvent; Put(sensorSettingsButton, 340, 0); sensorSettingsButton.Show(); var b = new TouchButton(); b.text = "Calibrate"; b.SetSizeRequest(100, 60); b.ButtonReleaseEvent += OnCalibrationButtonReleaseEvent; Put(b, 0, 118); b.Show(); sensorLabel = new TouchLabel(); sensorLabel.text = sensorTypeLabel; sensorLabel.textAlignment = TouchAlignment.Center; sensorLabel.textColor = "grey3"; sensorLabel.WidthRequest = 370; Put(sensorLabel, 0, 78); sensorLabel.Show(); sensorStateTextbox = new TouchLabel(); sensorStateTextbox.WidthRequest = 370; sensorStateTextbox.textSize = 20; sensorStateTextbox.textAlignment = TouchAlignment.Center; sensorStateTextbox.textRender.unitOfMeasurement = UnitsOfMeasurement.None; Put(sensorStateTextbox, 0, 43); sensorStateTextbox.Show(); sensorCombo = new TouchComboBox(); sensorCombo.WidthRequest = 200; var allSensors = sensorCollection.GetAllGadgetNames(); if (allSensors.Length > 0) { sensorCombo.comboList.AddRange(allSensors); sensorName = allSensors[0]; } else { sensorName = string.Empty; } sensorCombo.comboList.Add("New sensor..."); sensorCombo.activeIndex = 0; sensorCombo.ComboChangedEvent += OnSensorComboChanged; Put(sensorCombo, 135, 0); sensorCombo.Show(); GetSensorData(); Show(); }