public async Task RenewDeviceList(string interfaceType) { connections.Clear(); Task <DeviceInformationCollection> task = null; switch (interfaceType) { case "Bluetooth": task = BluetoothSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>(); break; case "USB": task = UsbSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>(); break; case "DfRobot": task = DfRobotBleSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>(); break; } if (task != null) { await task.ContinueWith(listTask => { var result = listTask.Result; foreach (DeviceInformation device in result) { connections.Add(device.Name, device); } }); } }
private void RefreshDeviceList() { if (comboBox.SelectedValue != null) { if (comboBox.SelectedValue.Equals("Bluetooth LE")) { DfRobotBleSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>().ContinueWith(listTask => { var action = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => { _connections = new ObservableCollection <Connection>(); foreach (DeviceInformation device in listTask.Result) { _connections.Add(new Connection(device.Name, device)); } connectList.ItemsSource = _connections; // autoconnect if only 1 device is paired if (_connections.Count == 1) { connectList.SelectedItem = _connections[0]; Reconnect_Click(null, null); } })); }); } else if (comboBox.SelectedValue.Equals("Bluetooth")) { BluetoothSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>().ContinueWith(listTask => { var action = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => { _connections = new ObservableCollection <Connection>(); foreach (DeviceInformation device in listTask.Result) { _connections.Add(new Connection(device.Name, device)); } connectList.ItemsSource = _connections; // autoconnect if only 1 device is paired if (_connections.Count == 1) { connectList.SelectedItem = _connections[0]; Reconnect_Click(null, null); } })); }); } } }
public async Task <ObservableCollection <string> > GetDeviceList(string interfaceType, CancellationToken token) { ObservableCollection <string> output = new ObservableCollection <string>(); connections.Clear(); Task <DeviceInformationCollection> task = null; switch (interfaceType) { case "Bluetooth": task = BluetoothSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>(token); break; case "USB": task = UsbSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>(token); break; case "DfRobot": task = DfRobotBleSerial.listAvailableDevicesAsync().AsTask <DeviceInformationCollection>(token); break; } if (task != null) { await task.ContinueWith(listTask => { var result = listTask.Result; foreach (DeviceInformation device in result) { output.Add(device.Name); connections.Add(device.Name, device); } }); } return(output); }