Пример #1
0
        private async Task RefreshDeviceList()
        {
            if (ConnectionMethodPicker.SelectedItem == null)
            {
                ConnectMessage.Text = "Select a connection method to continue.";
                return;
            }

            DevicePicker.ItemsSource = null;

            ObservableCollection <string> result = null;

            switch (ConnectionMethodPicker.SelectedItem as string)
            {
            default:
            case "Bluetooth":
                DevicePicker.IsVisible         = true;
                DevicesText.IsVisible          = true;
                NetworkHostNameEntry.IsEnabled = false;
                NetworkPortEntry.IsEnabled     = false;
                BaudRatePicker.IsEnabled       = true;
                NetworkHostNameEntry.Text      = "";
                NetworkPortEntry.Text          = "";

                cancelTokenSource = new CancellationTokenSource();
                cancelTokenSource.Token.Register(() => OnConnectionCancelled());

                result = await arduino.GetDeviceList("Bluetooth", cancelTokenSource.Token);

                if (result.Count > 0)
                {
                    DevicePicker.ItemsSource = result;
                }
                else
                {
                    ConnectMessage.Text    = "No items found.";
                    DevicePicker.IsVisible = false;
                }
                break;

            case "USB":
                DevicePicker.IsVisible         = true;
                DevicesText.IsVisible          = true;
                NetworkHostNameEntry.IsEnabled = false;
                NetworkPortEntry.IsEnabled     = false;
                BaudRatePicker.IsEnabled       = true;
                NetworkHostNameEntry.Text      = "";
                NetworkPortEntry.Text          = "";

                cancelTokenSource = new CancellationTokenSource();
                cancelTokenSource.Token.Register(() => OnConnectionCancelled());

                result = await arduino.GetDeviceList("USB", cancelTokenSource.Token);

                if (result.Count > 0)
                {
                    DevicePicker.ItemsSource = result;
                }
                else
                {
                    ConnectMessage.Text    = "No items found.";
                    DevicePicker.IsVisible = false;
                }

                break;

            case "DfRobot":
                DevicePicker.IsVisible         = true;
                DevicesText.IsVisible          = true;
                NetworkHostNameEntry.IsEnabled = false;
                NetworkPortEntry.IsEnabled     = false;
                BaudRatePicker.IsEnabled       = true;
                NetworkHostNameEntry.Text      = "";
                NetworkPortEntry.Text          = "";

                cancelTokenSource = new CancellationTokenSource();
                cancelTokenSource.Token.Register(() => OnConnectionCancelled());

                result = await arduino.GetDeviceList("DfRobot", cancelTokenSource.Token);

                if (result.Count > 0)
                {
                    DevicePicker.ItemsSource = result;
                }
                else
                {
                    ConnectMessage.Text    = "No items found.";
                    DevicePicker.IsVisible = false;
                }

                break;

            case "Network":
                DevicePicker.IsVisible         = false;
                DevicesText.IsVisible          = false;
                NetworkHostNameEntry.IsEnabled = true;
                NetworkPortEntry.IsEnabled     = true;
                BaudRatePicker.IsEnabled       = false;
                ConnectMessage.Text            = "Enter a host and port to connect.";
                break;
            }
        }