protected override bool OnSave(object sender) { var sensorSettings = new GenericAnalogSensorSettings(); sensorSettings.name = (string)settings["Name"].setting; if (sensorSettings.name == "Enter name") { MessageBox.Show("Invalid probe name"); return(false); } string channelString = (string)settings["Input Channel"].setting; if (channelString.IsEmpty()) { MessageBox.Show("Please select an channel"); return(false); } sensorSettings.channel = ParseIndividualControl(channelString); sensorSettings.lowPassFilterFactor = Convert.ToInt32(settings["LPF Factor"].setting); sensorCollection.UpdateSensor(sensorName, sensorSettings); sensorName = sensorSettings.name; return(true); }
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 TemperatureProbe(GenericAnalogSensorSettings settings) : base(settings) { var channelName = string.Format("{0}, Temperature Probe", name); Driver.AnalogInput.AddChannel(channel, channelName, lowPassFilterFactor); sensorDisconnectedAlarmIndex = Alarm.Subscribe("Temperature probe disconnected, " + name); Subscribe(Driver.AnalogInput.GetChannelEventPublisherKey(channelName)); }
public WaterLevelSensor(GenericAnalogSensorSettings settings) : base(settings) { var channelName = string.Format("{0}, Water Level Sensor", name); Driver.AnalogInput.AddChannel(channel, string.Format("{0}, Water Level Sensor", name), lowPassFilterFactor); sensorDisconnectedAlarmIndex = Alarm.Subscribe("Water level sensor disconnected, " + name); Subscribe(Driver.AnalogInput.GetChannelEventPublisherKey(channelName)); }
public PhProbe(GenericAnalogSensorSettings settings) : base(settings) { dataLogger = Factory.GetDataLogger(string.Format("{0}PhProbe", name.RemoveWhitespace())); var channelName = string.Format("{0}, pH Probe", name); Driver.PhOrp.AddChannel(channel, channelName, lowPassFilterFactor); sensorDisconnectedAlarmIndex = Alarm.Subscribe("pH probe disconnected, " + name); Subscribe(Driver.PhOrp.GetChannelEventPublisherKey(channelName)); }
protected override GenericAnalogSensor AnalogSensorCreater(GenericAnalogSensorSettings settings) { var sensor = new TemperatureProbe(settings); return(sensor); }
protected override GenericAnalogSensor AnalogSensorCreater(GenericAnalogSensorSettings settings) { var sensor = new WaterLevelSensor(settings); return(sensor); }