public TemperatureSensor(ComponentId id, ISettingsService settingsService, INumericValueSensorEndpoint endpoint) : base(id) { if (settingsService == null) { throw new ArgumentNullException(nameof(settingsService)); } if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } settingsService.CreateSettingsMonitor <SingleValueSensorSettings>(Id, s => Settings = s); SetState(new ComponentState(0)); endpoint.ValueChanged += (s, e) => { // TODO: Create base class. if (!GetDifferenceIsLargeEnough(e.NewValue)) { return; } SetState(new ComponentState(e.NewValue)); }; }
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 static IArea WithTemperatureSensor(this IArea area, Enum id, INumericValueSensorEndpoint endpoint) { if (area == null) { throw new ArgumentNullException(nameof(area)); } if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } area.AddComponent(new TemperatureSensor(ComponentIdFactory.Create(area.Id, id), endpoint)); return(area); }
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 HumiditySensor(ComponentId id, ISettingsService settingsService, INumericValueSensorEndpoint endpoint) : base(id) { if (settingsService == null) throw new ArgumentNullException(nameof(settingsService)); if (endpoint == null) throw new ArgumentNullException(nameof(endpoint)); settingsService.CreateSettingsMonitor<SingleValueSensorSettings>(Id, s => Settings = s); SetState(new ComponentState(0)); endpoint.ValueChanged += (s, e) => { if (!GetDifferenceIsLargeEnough(e.NewValue)) { return; } SetState(new ComponentState(e.NewValue)); }; }
public HumiditySensor(ComponentId id, INumericValueSensorEndpoint endpoint) : base(id) { if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } Settings.SetValue(SingleValueSensorSettings.MinDelta, 0.15F); SetState(new NumericSensorValue(0)); endpoint.ValueChanged += (s, e) => { if (!GetDifferenceIsLargeEnough(e.NewValue)) { return; } SetState(new NumericSensorValue(e.NewValue)); }; }