示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
        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);
        }
示例#4
0
        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);
        }
示例#6
0
        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.");
        }
示例#8
0
        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();
        }
示例#9
0
        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");
            }
        }
示例#11
0
        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;
                }
            }
        }
示例#12
0
        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");
            }
        }
示例#14
0
 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));
 }
        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");
            }
        }
示例#16
0
 public DisplayLamp(LampStateConsumer consumer, AllJoynAboutDataView about)
 {
     this.consumer = consumer;
     this.about    = about;
 }
示例#17
0
        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);
            }
        }
示例#18
0
 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);
 }