public ControlMessage(JObject obj) : base(obj) { Type = MessageType.Control; LampValue = new LampValue(); LampValue.On = (bool)obj["On"]; LampValue.Brightness = (uint)obj["Brightness"]; LampValue.ColorTemp = (uint)obj["ColorTemp"]; LampValue.Hue = (uint)obj["Hue"]; LampValue.Saturation = (uint)obj["Saturation"]; }
public async Task StartLightsAsync() { foreach (var consumer in Consumers) { if (consumer.Value != null) { await SetValuesAsync(consumer.Value, _defaulsWhenOn); } } _lastValues = _defaulsWhenOn; }
public LampHandler() { Consumers = new Dictionary<string, LampStateConsumer>(); _busAttachment = new AllJoynBusAttachment(); _watcher = new LampStateWatcher(_busAttachment); _watcher.Added += OnWatcherAdded; _watcher.Start(); _defaulsWhenOff = new LampValue() { On = false, Brightness = 100, ColorTemp = 9000, Hue = 260, Saturation = 100 }; _defaulsWhenOn = new LampValue() { On = true, Brightness = 100, ColorTemp = 9000, Hue = 260, Saturation = 100 }; _defaulsBeforeBlink = new LampValue() { On = true, Brightness = 100, ColorTemp = 9000, Hue = 260, Saturation = 100 }; _lastValues = null; }
private async Task SetValuesAsync(LampStateConsumer consumer, LampValue values) { if (_lastValues == null || _lastValues.On != values.On) await consumer.SetOnOffAsync(values.On); if (_lastValues == null || _lastValues.Brightness != values.Brightness) await consumer.SetBrightnessAsync(getAbsoluteValue(values.Brightness)); if (_lastValues == null || _lastValues.ColorTemp != values.ColorTemp) await consumer.SetColorTempAsync(getAbsoluteColorTemperatureValue(values.ColorTemp)); if (_lastValues == null || _lastValues.Hue != values.Hue) await consumer.SetHueAsync(getAbsoluteHueValue(values.Hue)); if (_lastValues == null || _lastValues.Saturation != values.Saturation) await consumer.SetSaturationAsync(getAbsoluteValue(values.Saturation)); }
public async Task ControlLightsAsync(ControlMessage controlMsg) { foreach (var consumer in Consumers) { if (consumer.Value != null) { await SetValuesAsync(consumer.Value, controlMsg.LampValue); } } _lastValues = controlMsg.LampValue; }