private async void Watcher_Added(LampStateWatcher sender, AllJoynServiceInfo args) { AllJoynAboutDataView aboutData = await AllJoynAboutDataView.GetDataBySessionPortAsync(args.UniqueName, busAttachment, args.SessionPort); if (aboutData != null && !string.IsNullOrWhiteSpace(aboutData.DeviceId)) { // Join session with the producer of the LampState interface. LampStateJoinSessionResult joinSessionResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinSessionResult.Status == AllJoynStatus.Ok) { if (string.Equals(aboutData.DeviceId, lampDeviceId)) { consumer = joinSessionResult.Consumer; LampFound?.Invoke(this, new EventArgs()); consumer.Signals.LampStateChangedReceived += Signals_LampStateChangedReceived; } if (!arrLamp.Contains(joinSessionResult.Consumer)) { arrLamp.Add(joinSessionResult.Consumer); } } } }
private async void FoundLight(LampStateConsumer consumer, AllJoynAboutDataView about) { // consumer.Signals.LampStateChanged() foreach (DisplayLamp d in bulbs) { if (about.DeviceId.Equals(d.about.DeviceId) && about.DeviceName.Equals(d.about.DeviceId)) { return; } } consumer.Signals.LampStateChangedReceived += Signals_LampStateChangedReceived; DisplayLamp dl = new DisplayLamp(consumer, about); bulbs.Add(dl); bool ret = await updateLamp(dl); await updateLamp(dl); var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher; await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, () => { var vm = this.DataContext as ViewModels.MainPageViewModel; vm.AddBulb(about.DeviceName, about.DeviceId); updateBulbDisplay(dl); }); }
private async Task SetLampColorAsync(LampStateConsumer consumer) { var color = _cheerlights.Colors[_currentColor]; await consumer.SetHueAsync(color.Hue); await Task.Delay(200); await consumer.SetSaturationAsync(color.Saturation); await Task.Delay(200); }
private async void Watcher_Added(org.allseen.LSF.LampState.LampStateWatcher sender, Windows.Devices.AllJoyn.AllJoynServiceInfo args) { Debug.Write("Watcher_Added"); string name = args.UniqueName; var session = await LampStateConsumer.JoinSessionAsync(args, sender); if (session.Status == AllJoynStatus.Ok) { AllJoynAboutDataView about = await AllJoynAboutDataView.GetDataBySessionPortAsync(args.UniqueName, bus, args.SessionPort); if (about != null) { FoundLight(session.Consumer, about); } } else { if (session.Status == AllJoynStatus.AuthenticationFailed) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.ConnectionRefused) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.Fail) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.InsufficientSecurity) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.OperationTimedOut) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.OtherEndClosed) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.SslConnectFailed) { Debug.WriteLine(""); } if (session.Status == AllJoynStatus.SslIdentityVerificationFailed) { Debug.WriteLine(""); } } }
private async void Watcher_Added(LampStateWatcher sender, AllJoynServiceInfo args) { var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinResult.Status != AllJoynStatus.Ok) { return; } _consumer = joinResult.Consumer; await _consumer.SetOnOffAsync(false); }
private async void FoundLight(LampStateConsumer consumer, AllJoynAboutDataView about) { consumer.Signals.LampStateChangedReceived += Signals_LampStateChangedReceived; DisplayLamp dl = new DisplayLamp(consumer, about); BulbManager.Instance.AddBulb(dl); var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher; await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, () => { App.MainMenu.Count = $"({BulbManager.Instance.NumberOfLamps()})";; }); }
private async void LampStateWatcher_Added(LampStateWatcher sender, AllJoynServiceInfo args) { var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinResult.Status != AllJoynStatus.Ok) { return; } // success _lampStateConsumers.Add(joinResult.Consumer); await SetLampColorAsync(joinResult.Consumer); System.Diagnostics.Debug.WriteLine("LampStateConsumer successfully added."); }
private void FindLamp() { LampStateWatcher watcher = new LampStateWatcher(new AllJoynBusAttachment()); watcher.Added += async(sender, args) => { var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinResult.Status == AllJoynStatus.Ok) { this._lamp = joinResult.Consumer; txtLamp.Text = "LIFX Color 1000 BR30: найдена"; } ; }; watcher.Start(); }
private async void Watcher_Added(LampStateWatcher sender, AllJoynServiceInfo args) { Debug.Write("Watcher_Added"); string name = args.UniqueName; var session = await LampStateConsumer.JoinSessionAsync(args, sender); if (session.Status == AllJoynStatus.Ok) { AllJoynAboutDataView about = await AllJoynAboutDataView.GetDataBySessionPortAsync(args.UniqueName, bus, args.SessionPort); if (about != null) { FoundLight(session.Consumer, about); } } }
private async void LampFound(LampStateWatcher sender, AllJoynServiceInfo args) { Debug.WriteLine("Lamp found, attempt to join session.."); var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinResult.Status == AllJoynStatus.Ok) { _lampState = joinResult.Consumer; Debug.WriteLine("Consumer has been susccessfully initialized"); await _lampState.SetOnOffAsync(PowerSwitch.IsOn); await _lampState.SetBrightnessAsync(/* 10% */ Convert.ToUInt32(UInt32.MaxValue * 0.1)); } else { Debug.WriteLine("Ubable to join session"); } }
private async void LampStateWatcher_Added(LampStateWatcher sender, AllJoynServiceInfo args) { var aboutData = await AllJoynAboutDataView.GetDataBySessionPortAsync(args.UniqueName, _lampStateBusAttachment, args.SessionPort); if (aboutData.Manufacturer.ToLower().Contains("philips")) { var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinResult.Status == AllJoynStatus.Ok) { _lampStateConsumer = joinResult.Consumer; _lampStateConsumer.SessionLost += this.Consumer_SessionLost; // subscribe to value changes _lampStateConsumer.Signals.LampStateChangedReceived += this.lampStateConsumer_LampStateChangedReceived; // populate initial values this.GetCurrentValuesAsync(); this.IsConnected = true; } } }
private async void LampStateWatcher_Added(LampStateWatcher sender, AllJoynServiceInfo args) { var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); if (joinResult.Status != AllJoynStatus.Ok) { return; } // success var consumer = (LampStateConsumer)joinResult.Consumer; consumer.Signals.LampStateChangedReceived += Signals_LampStateChangedReceived; _lampStateConsumers.Add(consumer); try { await SetLampStateAsync(); } catch { } // TODO: For some reason this sometimes blows up during startup. Investigate better way to handle. System.Diagnostics.Debug.WriteLine("LampStateConsumer successfully added."); }
private async void LampFound(LampStateWatcher sender, AllJoynServiceInfo args) { Debug.WriteLine("Attempt to join session.."); var joinResult = await LampStateConsumer.JoinSessionAsync(args, sender); AJNetwork.Mode = BindingMode.OneTime; AJNetwork.Source = "Test Network"; //Debug.WriteLine(AJnetworkData.AppId.ToString(), "AppID"); if (joinResult.Status == AllJoynStatus.Ok) { _lampState = joinResult.Consumer; Debug.WriteLine("Consumer has been susccessfully initialized"); await _lampState.SetOnOffAsync(true); PowerSwitch.IsOn = true; } else { Debug.WriteLine("Join session has failed"); } }
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 DisplayLamp(LampStateConsumer consumer, AllJoynAboutDataView about) { this.consumer = consumer; this.about = about; }
private void OnConsumerSessionLost(LampStateConsumer sender, AllJoynSessionLostEventArgs args) { string id = string.Empty; foreach(var consumer in Consumers) { if(consumer.Value == sender) { id = consumer.Key; } } if(id != string.Empty) { Consumers[id].SessionLost -= OnConsumerSessionLost; Consumers[id] = null; Consumers.Remove(id); } Debug.WriteLine("LampState session lost. ID:" + id); if (NewEventReceived != null) { NewEventReceived(this, "LampState session lost. ID:" + id); } }
public async Task BlinkLightsAsync(LampStateConsumer consumer) { Dictionary<String, object> from = new Dictionary<string, object>(); from.Add("Hue", 200); Dictionary<String, object> to = new Dictionary<string, object>(); to.Add("Hue", 300); await consumer.ApplyPulseEffectAsync(from, to, 100, 200, 2, 0); }