Beispiel #1
0
        public CentralExtensionsViewModel(ICentralManager centralManager,
                                          IUserDialogs dialogs)
        {
            this.Tasks = new List <TaskViewModel>
            {
                new TaskViewModel(
                    "Scan Find Peripheral",
                    ct => centralManager
                    .ScanUntilPeripheralFound(this.PeripheralName)
                    .ToTask(ct),

                    this.WhenAny(
                        x => x.PeripheralName,
                        x => !x.GetValue().IsEmpty()
                        )
                    ),
                new TaskViewModel(
                    "Scan For Unique Peripherals",
                    ct => centralManager
                    .ScanForUniquePeripherals()
                    .ToTask(ct)
                    ),
                new TaskViewModel(
                    "Scan Interval",
                    ct => centralManager
                    .ScanInterval(
                        TimeSpan.FromSeconds(10),
                        TimeSpan.FromSeconds(10)
                        )
                    .ToTask(ct)
                    )
            };
        }
 void GetDeviceList()
 {
     if (_centralManager.IsScanning)
     {
         _scanDisposable?.Dispose();
     }
     else
     {
         if (_centralManager.Status == Shiny.AccessState.Available && !_centralManager.IsScanning)
         {
             _scanDisposable = _centralManager.ScanForUniquePeripherals().Subscribe(scanResult =>
             {
                 if (!string.IsNullOrEmpty(scanResult.Name) && !Peripherals.Contains(scanResult))
                 {
                     Peripherals.Add(scanResult);
                 }
             });
         }
     }
     IsScanning = _centralManager.IsScanning;
 }