Exemplo n.º 1
0
        internal RCReceiver(remotecontrolvehicleConsumer rcc)
        {
            rcConsumer = rcc;
            rcConsumer.Session.Lost += RcConsumer_SessionLost;
            //rcConsumer.SessionMemberAdded

            Task.Run(async() =>
            {
                receiverName = await GetReceiverNameTask();
                OnPropertyChanged("receiverName");
                manufacturer = await GetManufacturerNameTask();
                OnPropertyChanged("manufacturer");
                deviceType = await GetDeviceTypeTask();
                OnPropertyChanged("deviceType");
            });
        }
Exemplo n.º 2
0
        private async void Watcher_Added(DeviceWatcher sender, DeviceInformation args)
        {
            try
            {
                remotecontrolvehicleConsumer consumer = null;
                try
                {
                    consumer = await remotecontrolvehicleConsumer.FromIdAsync(args.Id, bus);
                }
                catch (FileNotFoundException)
                {
                    // Give it some time and try again.
                    await Task.Delay(1000);

                    consumer = await remotecontrolvehicleConsumer.FromIdAsync(args.Id, bus);
                }

                if (consumer != null)
                {
                    consumer.Session.Lost += Consumer_SessionLost;
                    var newReceiver = new RCReceiver(consumer);
                    discoveredReceivers.Add(consumer.Session.Id, newReceiver);

                    if (discovered != null)
                    {
                        RCReceiverDiscovered handler = discovered;
                        var ignore = CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                        {
                            handler(this, newReceiver);
                        });
                    }

                    OnPropertyChanged("receivers");
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.ToString());
            }
        }