private void Submit(object param) { Sensor sensor; switch (SelectedItem) { case "Temperature": sensor = new TemperatureSensor(Name, Url, Description, Latitude, Longitude, Tracking, MinValue, MaxValue); break; case "Humidity": sensor = new HumiditySensor(Name, Url, Description, Latitude, Longitude, Tracking, MinValue, MaxValue); break; case "Electricity Consumption": sensor = new PowerConsumptionSensor(Name, Url, Description, Latitude, Longitude, Tracking, MinValue, MaxValue); break; case "Noise": sensor = new TemperatureSensor(Name, Url, Description, Latitude, Longitude, Tracking, MinValue, MaxValue); break; case "Window/Door": sensor = new WindowDoorSensor(Name, Url, Description, Latitude, Longitude, Tracking, Opened); break; default: sensor = null; break; } sensors.List.Add(sensor); UpdateXml(sensors); }
/// <summary> /// Updates the sensors used in ZipatoSensors. /// </summary> public void Update() { for (int i = 0; i < VirtualMeters.Count; ++i) { var uuid = VirtualMeters[i].Uuid; VirtualMeters[i] = new VirtualMeter(_zipato, uuid); } for (int i = 0; i < ConsumptionMeters.Count; ++i) { var uuid = ConsumptionMeters[i].Uuid; ConsumptionMeters[i] = new ConsumptionMeter(_zipato, uuid); } for (int i = 0; i < TemperatureSensors.Count; ++i) { var uuid = TemperatureSensors[i].Uuid; TemperatureSensors[i] = new TemperatureSensor(_zipato, uuid); } for (int i = 0; i < HumiditySensors.Count; ++i) { var uuid = HumiditySensors[i].Uuid; HumiditySensors[i] = new HumiditySensor(_zipato, uuid); } for (int i = 0; i < LuminanceSensors.Count; ++i) { var uuid = LuminanceSensors[i].Uuid; LuminanceSensors[i] = new LuminanceSensor(_zipato, uuid); } Status = _zipato?.Data?.Status ?? Uncertain; }
private async void btnReadData_Click(object sender, RoutedEventArgs e) { byte[] tempValue = await tempSen.ReadValue(); double ambientTemp = IRTemperatureSensor.CalculateAmbientTemperature(tempValue, TemperatureScale.Celsius); double targetTemp = IRTemperatureSensor.CalculateTargetTemperature(tempValue, ambientTemp, TemperatureScale.Celsius); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { tbTemperature.Text = ambientTemp.ToString("0.00"); tbTargetTemperature.Text = targetTemp.ToString("0.00"); }); byte[] accValue = await acc.ReadValue(); double[] accAxis = Accelerometer.CalculateCoordinates(accValue, 1 / 64.0); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { tbAccelerometer.Text = "X: " + accAxis[0].ToString("0.00") + " Y: " + accAxis[1].ToString("0.00") + " Z: " + accAxis[2].ToString("0.00"); }); byte[] humValue = await hum.ReadValue(); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { tbHumidity.Text = HumiditySensor.CalculateHumidityInPercent(humValue).ToString("0.00") + "%"; }); }
public async Task <string> GetSensorData() { HumiditySensor hum = new HumiditySensor(); IRTemperatureSensor temp = new IRTemperatureSensor(); //hum.SensorValueChanged += SensorValueChanged; //temp.SensorValueChanged += SensorValueChanged; await hum.Initialize(); await hum.EnableSensor(); //await hum.EnableNotifications(); await temp.Initialize(); await temp.EnableSensor(); //await temp.EnableNotifications(); hum.SensorValueChanged += SensorValueChanged; temp.SensorValueChanged += SensorValueChanged; await hum.EnableNotifications(); await temp.EnableNotifications(); return("done"); }
public HumidityPage() { Model = new HumidityModel { IsSupported = HumiditySensor.IsSupported, SensorCount = HumiditySensor.Count }; InitializeComponent(); if (Model.IsSupported) { Humidity = new HumiditySensor(); Humidity.DataUpdated += Humidity_DataUpdated; canvas.Series = new List <Series>() { new Series() { Color = SKColors.Red, Name = "Humidity", FormattedText = "Humidity={0}", }, }; } }
public void Update(IDeviceState state, bool fromDatabase = false) { //TODO: update more properties? if (!fromDatabase) { if (Name == null && state.Name != null) { Name = state.Name; } if ((Type == null || Type.Equals(DeviceType.Unknown)) && state.Type != null) { Type = state.Type; } } Location = (state.Location == null) ? null : new Location(state.Location.GetParts()); IsConnected = state.IsConnected; CurrentAction = state.CurrentAction; BinarySwitch.Update(state.BinarySwitchState ?? ReadOnlyBinarySwitchSwitchState.Blank()); MultilevelSwitch.Update(state.MultilevelSwitchState ?? ReadOnlyMultilevelSwitchState.Blank()); ColorSwitch.Update(state.ColorSwitchState ?? ReadOnlyColorSwitchState.Blank()); BinarySensor.Update(state.BinarySensorState ?? ReadOnlyBinarySensorState.Blank()); PowerSensor.Update(state.PowerSensorState ?? ReadOnlyMultilevelSensorState <IPower> .Blank()); TemperatureSensor.Update(state.TemperatureSensorState ?? ReadOnlyMultilevelSensorState <ITemperature> .Blank()); HumiditySensor.Update(state.HumiditySensorState ?? ReadOnlyMultilevelSensorState <IHumidity> .Blank()); IlluminanceSensor.Update(state.IlluminanceSensorState ?? ReadOnlyMultilevelSensorState <IIlluminance> .Blank()); Thermostat.Update(state.ThermostatState ?? ReadOnlyThermostatState.Blank()); }
public int AddHumiditySensorHistory(HumiditySensor sensor) { if (sensor == null) { throw new Exception("Sensore object cannot be null"); } sensorHistory = new SensorHistory { HouseId = sensor.HouseId, SensorId = sensor.SensorId, Type = sensor.Type, Name = sensor.Name, Humidity = sensor.Humidity, IsOn = sensor.IsOn }; try { _databaseContext.SensorHistories.Add(sensorHistory); _databaseContext.SaveChanges(); } catch (Exception exp) { Console.WriteLine(exp.Message); } return(sensorHistory.SensorHistoryId); }
async void SensorValueChanged(object sender, X2CodingLab.SensorTag.SensorValueChangedEventArgs e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { switch (e.Origin) { case SensorName.Accelerometer: double[] accValues = Accelerometer.CalculateCoordinates(e.RawData, 1 / 64.0); tbAccelerometer.Text = "X: " + accValues[0].ToString("0.00") + " Y: " + accValues[1].ToString("0.00") + " Z: " + accValues[2].ToString("0.00"); break; case SensorName.Gyroscope: float[] axisValues = Gyroscope.CalculateAxisValue(e.RawData, GyroscopeAxis.XYZ); tbGyroscope.Text = "X: " + axisValues[0].ToString("0.00") + " Y: " + axisValues[1].ToString("0.00") + " Z: " + axisValues[2].ToString("0.00"); break; case SensorName.HumiditySensor: tbHumidity.Text = HumiditySensor.CalculateHumidityInPercent(e.RawData).ToString("0.00") + "%"; break; case SensorName.Magnetometer: float[] magnetValues = Magnetometer.CalculateCoordinates(e.RawData); tbMagnetometer.Text = "X: " + magnetValues[0].ToString("0.00") + " Y: " + magnetValues[1].ToString("0.00") + " Z: " + magnetValues[2].ToString("0.00"); break; case SensorName.PressureSensor: try { tbPressure.Text = (PressureSensor.CalculatePressure(e.RawData, ps.CalibrationData) / 100).ToString("0.00"); } catch (NullReferenceException) { // in case another(!) setup is executed, so ps is null } break; case SensorName.SimpleKeyService: if (SimpleKeyService.LeftKeyHit(e.RawData)) { tbLeftKey.Text = "hit!"; await Task.Delay(200); tbLeftKey.Text = ""; } else if (SimpleKeyService.RightKeyHit(e.RawData)) { tbRightKey.Text = "hit!"; await Task.Delay(200); tbRightKey.Text = ""; } break; case SensorName.TemperatureSensor: double ambient = IRTemperatureSensor.CalculateAmbientTemperature(e.RawData, TemperatureScale.Celsius); double target = IRTemperatureSensor.CalculateTargetTemperature(e.RawData, ambient, TemperatureScale.Celsius); tbTemperature.Text = ambient.ToString("0.00"); tbTargetTemperature.Text = target.ToString("0.00"); break; } }); }
public async Task <IActionResult> GetSecondaryDataAsync() { var temperatureSensor = new TemperatureSensor(_temperatureStorage); var pressureSensor = new PressureSensor(_pressureStorage); var humiditySensor = new HumiditySensor(_humidityStorage); var windDirectionSensor = new WindDirectionSensor(_windStorage); var windSpeedSensor = new WindSpeedSensor(_windStorage); var windChill = new WindChill(temperatureSensor, windSpeedSensor); var dewPoint = new DewPoint(temperatureSensor, humiditySensor); var timeSpan = new TimeSpan(3, 0, 0); var result = new SecondaryDataDTO() { WindChill = (int)windChill.CalculateWindChill(), DewPoint = (int)dewPoint.CalculateDewPoint(), MaximalTemperature = (int)temperatureSensor.HighValue().Value, MinimalTemperature = (int)temperatureSensor.LowValue().Value, MaximalHumidity = (int)humiditySensor.HighValue().Value, MinimalHumidity = (int)humiditySensor.LowValue().Value, MinimalPressure = (int)pressureSensor.LowValue().Value, MaximalPressure = (int)pressureSensor.HighValue().Value, MinimalTemperatureTime = temperatureSensor.TimeOfLowValue().TimeOfDay.Add(timeSpan).ToString().Substring(0, 5), MaximalTemperatureTime = temperatureSensor.TimeOfHighValue().TimeOfDay.Add(timeSpan).ToString().Substring(0, 5), MinimalHumidityTime = humiditySensor.TimeOfLowValue().TimeOfDay.Add(timeSpan).ToString().Substring(0, 5), MaximalHumidityTime = humiditySensor.TimeOfHighValue().TimeOfDay.Add(timeSpan).ToString().Substring(0, 5), MinimalPressureTime = pressureSensor.TimeOfLowValue().TimeOfDay.Add(timeSpan).ToString().Substring(0, 5), MaximalPressureTime = pressureSensor.TimeOfHighValue().TimeOfDay.Add(timeSpan).ToString().Substring(0, 5), }; return(Ok(result)); }
public IObservable <double> WhenReadingTaken() { this.observable = this.observable ?? Observable.Create <double>(ob => { var handler = new EventHandler <HumiditySensorDataUpdatedEventArgs>((sender, args) => ob.OnNext(args.Humidity) ); var sensor = new HumiditySensor { Interval = 250 }; sensor.DataUpdated += handler; sensor.Start(); return(() => { sensor.Stop(); sensor.DataUpdated -= handler; sensor.Dispose(); }); }) .Publish() .RefCount(); return(this.observable); }
public HumidityGaugeCtrl(HumiditySensor sensor) { InitializeComponent(); ToolTip = sensor.Name; lbl_Name.Content = sensor.Name; this.sensor = sensor; try { model = HttpService.SensorList.First(item => item.Tag == sensor.Link);; timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(model.MinPollingIntervalInSeconds) }; timer.Tick += Timer_Tick; timer.Start(); FirstTick(); } catch { label.Foreground = new SolidColorBrush(Colors.LightGray); unit.Foreground = new SolidColorBrush(Colors.LightGray); } }
public void ShouldKeepSensor_WhenAllValuesWithinOnePercentOfReference() { var sensor = new HumiditySensor("myHumiditySensor", 50m); sensor.AddReading("50.1"); sensor.AddReading("49.2"); Assert.That(sensor.GetStatus(), Is.EqualTo("keep")); }
/// <summary> /// Constructor of HumiditySensorAdapter. /// </summary> public HumiditySensorAdapter() { sensor = new HumiditySensor { Interval = 100, PausePolicy = SensorPausePolicy.None }; }
public async Task <IActionResult> GetForecastAsync() { var temperatureSensor = new TemperatureSensor(_temperatureStorage); var pressureSensor = new PressureSensor(_pressureStorage); var humiditySensor = new HumiditySensor(_humidityStorage); var windDirectionSensor = new WindDirectionSensor(_windStorage); var windSpeedSensor = new WindSpeedSensor(_windStorage); var windDirectionStr = ""; var direct = windDirectionSensor.CurrentDirection(); { if (direct >= 337 || direct < 22) { windDirectionStr = "N"; } if (direct >= 22 && direct < 67) { windDirectionStr = "NE"; } if (direct >= 67 && direct < 112) { windDirectionStr = "E"; } if (direct >= 112 && direct < 157) { windDirectionStr = "SE"; } if (direct >= 157 && direct < 202) { windDirectionStr = "S"; } if (direct >= 202 && direct < 247) { windDirectionStr = "SW"; } if (direct >= 247 && direct < 292) { windDirectionStr = "W"; } if (direct >= 292 && direct < 337) { windDirectionStr = "NW"; } } var result = new PrimaryDataDTO() { Date = DateTime.UtcNow.AddDays(-7).ToShortDateString(), Time = DateTime.Now.TimeOfDay.ToString().Substring(0, 5), Humidity = (int)humiditySensor.CurrentHumidity().Value, Pressure = pressureSensor.CurrentPressure().Value, Temperature = (int)temperatureSensor.CurrentTemperature().Value, WindDirection = windDirectionSensor.CurrentDirection(), WindSpeed = windSpeedSensor.CurrentSpeed().Value, WindDirectionStr = windDirectionStr }; return(Ok(result)); }
public void ShouldDiscardSensor_WhenAnyReadingGreaterThanOrEqualToOne() { var sensor = new HumiditySensor("myHumiditySensor", 50m); sensor.AddReading("50.1"); sensor.AddReading("49.2"); sensor.AddReading("49"); Assert.That(sensor.GetStatus(), Is.EqualTo("discard")); }
private void initializeSensors() { _humiditySensor = new HumiditySensor(); _mechanicalContaminationSensor = new MechanicalContaminationSensor(); _overheatSensor = new OverheatSensor(); _poisonContaminantsSensor = new PoisonContaminantsSensor(); _smokeSensor = new SmokeSensor(); _airSpeedSensor = new AirSpeedSensor(); _airTemperatureSensor = new AirTemperatureSensor(); }
IPhidgetViewModel CreateViewModel(HumiditySensor phidget) { var phigitViewModel = new HumidityPhidgetViewModel(phidget); if (phidget.DeviceClassName == "Humidity Phidget") { return(new HumidityPhidgetViewModel(phidget)); } phigitViewModel.AddPhidget(new HumiditySensorViewModel(phidget)); return(phigitViewModel); }
public IActionResult UpdateHumiditySensor([FromBody] HumiditySensor sensor) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _sensorRepository.UpdateHumiditySensor(sensor); return(new JsonResult(sensor.SensorId)); }
public int UpdateHumiditySensor(HumiditySensor sensor) { if (sensor == null) { throw new Exception("Sensore object cannot be null"); } _databaseContext.Sensors.Update(sensor); _databaseContext.SaveChanges(); return(sensor.SensorId); }
private static async Task <ISenseHat> GetSenseHatTask() { MainI2CDevice mainI2CDevice = await CreateDisplayJoystickI2CDevice().ConfigureAwait(false); ImuSensor imuSensor = await CreateImuSensor().ConfigureAwait(false); PressureSensor pressureSensor = await CreatePressureSensor().ConfigureAwait(false); HumiditySensor humiditySensor = await CreateHumiditySensor().ConfigureAwait(false); return(new SenseHat(mainI2CDevice, imuSensor, pressureSensor, humiditySensor)); }
private static ISenseHat CreateSenseHat() { MainI2CDevice mainI2CDevice = CreateDisplayJoystickI2CDevice(); ImuSensor imuSensor = CreateImuSensor(); PressureSensor pressureSensor = CreatePressureSensor(); HumiditySensor humiditySensor = CreateHumiditySensor(); return(new SenseHat(mainI2CDevice, imuSensor, pressureSensor, humiditySensor)); }
public SenseHat( MainI2CDevice mainI2CDevice, ImuSensor imuSensor, PressureSensor pressureSensor, HumiditySensor humiditySensor) { _mainI2CDevice = mainI2CDevice; Display = new SenseHatDisplay(_mainI2CDevice); Joystick = new SenseHatJoystick(_mainI2CDevice); Sensors = new SenseHatSensors(imuSensor, pressureSensor, humiditySensor); }
public async Task <string> GetSensorDataNew() { byte[] x = await hum.ReadValue(); SensorValues.Humidity = HumiditySensor.CalculateHumidityInPercent(x).ToString("0.00");; x = await temp.ReadValue(); SensorValues.AmbientTemperature = IRTemperatureSensor.CalculateAmbientTemperature(x, TemperatureScale.Farenheit); SensorValues.TargetTemperature = IRTemperatureSensor.CalculateTargetTemperature(x, TemperatureScale.Farenheit); return("done"); }
public SenseHatSensors( ImuSensor imuSensor, PressureSensor pressureSensor, HumiditySensor humiditySensor) { ImuSensor = imuSensor; PressureSensor = pressureSensor; HumiditySensor = humiditySensor; ImuSensor.OnReadingsChanged += (s, e) => ImuReadingsChanged(); PressureSensor.OnReadingsChanged += (s, e) => PressureReadingsChanged(); HumiditySensor.OnReadingsChanged += (s, e) => HumidityReadingsChanged(); }
private void Submit(object param) { Sensor sensor; CheckForBlanks(); //check for errors if (ErrorCollection.Count == 0) { switch (SelectedItem) { case "Temperature": sensor = new TemperatureSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude), Convert.ToDouble(Longitude), Tracking, Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue)); break; case "Humidity": sensor = new HumiditySensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude), Convert.ToDouble(Longitude), Tracking, Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue)); break; case "Electricity Consumption": sensor = new PowerConsumptionSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude), Convert.ToDouble(Longitude), Tracking, Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue)); break; case "Noise": sensor = new NoiseSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude), Convert.ToDouble(Longitude), Tracking, Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue)); break; case "Window/Door": sensor = new WindowDoorSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude), Convert.ToDouble(Longitude), Tracking, Open); break; default: sensor = null; break; } sensors.List.Add(sensor); UpdateXml(sensors); Snackbar.Enqueue($"{sensor.Name} added"); DialogHost.CloseDialogCommand.Execute(null, null); } }
public IHumiditySensor RegisterHumiditySensor(IArea area, Enum id, INumericSensorAdapter adapter) { if (area == null) { throw new ArgumentNullException(nameof(area)); } if (adapter == null) { throw new ArgumentNullException(nameof(adapter)); } var humditySensor = new HumiditySensor($"{area.Id}.{id}", adapter, _settingsService); area.RegisterComponent(humditySensor); return(humditySensor); }
public IHumiditySensor RegisterHumiditySensor(IArea area, Enum id, INumericValueSensorEndpoint endpoint) { if (area == null) { throw new ArgumentNullException(nameof(area)); } if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } var humditySensor = new HumiditySensor(ComponentIdGenerator.Generate(area.Id, id), _settingsService, endpoint); area.AddComponent(humditySensor); return(humditySensor); }
public StationViewModel() { light = new Light(); blinds = new Blinds(); air = new AirConditioner(); Modules = new List <ITurnOnOffModule>(); Modules.Add(light); Modules.Add(blinds); Modules.Add(air); term = new Termomethre(); humi = new HumiditySensor(); ligsens = new LightSensor(); disp = new Display(); }
public IActionResult AddHumiditySensor([FromBody] HumiditySensor sensor) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var house = _houseRepository.GetHouse(sensor.HouseId); if (house == null) { return(NotFound("Cannot find house with provided houseId.")); } _sensorRepository.AddHumiditySensor(sensor, house); return(new JsonResult(sensor.SensorId)); }
/// <summary> /// Adds sensor with the given "data" to the Sensors List /// </summary> /// <param name="data"></param> /// <param name="rangeBoundaries"></param> /// <returns>True if the sensor is added successfully, False otherwise</returns> public bool AddSensor(SensorData data, RangeBoundaries <string> rangeBoundaries) { bool success = true; Sensor sensor = null; try { switch (data.Type) { case "DoorSensor": sensor = new DoorSensor(data); break; case "ElPowerSensor": sensor = new ElPowerSensor(data, new RangeBoundaries <int>(int.Parse(rangeBoundaries.Min), int.Parse(rangeBoundaries.Max))); break; case "NoiseSensor": sensor = new NoiseSensor(data, new RangeBoundaries <int>(int.Parse(rangeBoundaries.Min), int.Parse(rangeBoundaries.Max))); break; case "HumiditySensor": sensor = new HumiditySensor(data, new RangeBoundaries <float>(float.Parse(rangeBoundaries.Min), float.Parse(rangeBoundaries.Max))); break; case "TemperatureSensor": sensor = new TemperatureSensor(data, new RangeBoundaries <double>(double.Parse(rangeBoundaries.Min), double.Parse(rangeBoundaries.Max))); break; default: break; } Sensors.Add(sensor); SaveState(); } catch (Exception) { MessageBox.Show("Failed to add the sensor!", "Error", MessageBoxButton.OK, MessageBoxImage.Error); success = false; } return(success); }