public EasyServerViewModel(IUserDialogs dialogs, IBleAdapter adapter)
        {
            this.adapter = adapter;
            this.dialogs = dialogs;
            adapter
            .WhenStatusChanged()
            .Subscribe(x => this.Status = x);

            this.ToggleServer = ReactiveCommand.CreateFromTask(
                _ =>
            {
                this.BuildServer();
                if (this.server.IsRunning)
                {
                    this.server.Stop();
                }
                else
                {
                    this.server.Start(new AdvertisementData
                    {
                        LocalName = "TestServer"
                    });
                }
                return(Task.FromResult(new object()));
            },
                this.WhenAny(
                    x => x.Status,
                    x => x.Value == AdapterStatus.PoweredOn
                    )
                );
            this.Clear = new Command(() => this.Output = String.Empty);
        }
Exemple #2
0
        private void DeviceDiscoveredHandler(IBleAdapter sender, BleDeviceEventArgs args)
        {
            var device   = args.Device;
            var deviceId = device.Id;
            var pd       = new ProxiedBleDevice(sender, device);

            _cachingProvider.Set(GetDeviceCacheKey(deviceId), pd, DiscoveredDeviceCachingTime);
        }
Exemple #3
0
        private void DeviceDisconnectedHandler(IBleAdapter sender, BleDeviceEventArgs args)
        {
            var device   = args.Device;
            var deviceId = device.Id;

            lock (lockObject)
            {
                Devices.Remove(deviceId);
                _cachingProvider.RemoveByPrefix(DiscoveredDeviceCachePrefix);
            }
        }
Exemple #4
0
        private void DeviceConnectedHandler(IBleAdapter sender, BleDeviceEventArgs args)
        {
            var device   = args.Device;
            var deviceId = device.Id;

            lock (lockObject)
            {
                if (!Devices.ContainsKey(deviceId))
                {
                    Devices[deviceId] = new ProxiedBleDevice(sender, device);
                }
            }
        }
Exemple #5
0
 public ProxiedBleDevice(IBleAdapter adapter, BleDevice device)
 {
     Device  = device;
     Adapter = adapter;
 }
Exemple #6
0
 private void DeviceValueChangedHandler(IBleAdapter sender, BleDeviceValueChangedEventArgs args)
 {
     Task.Run(() => _onDeviceValueChangedNotifier.Push(args.DeviceUuid, args));
 }