Пример #1
0
        private void ConnectButton_Clicked(object sender, EventArgs e)
        {
            SetUIEnabled(false);

            string device = "";

            if (DevicePicker.SelectedItem != null)
            {
                device = DevicePicker.SelectedItem as string;
            }
            else if ((ConnectionMethodPicker.SelectedItem as string) != "Network")
            {
                ConnectMessage.Text = "You must select an item to proceed.";
                SetUIEnabled(true);
                return;
            }

            uint baudRate = Convert.ToUInt32((BaudRatePicker.SelectedItem as string));

            arduino.DeviceReady            += OnDeviceReady;
            arduino.DeviceConnectionFailed += OnConnectionFailed;

            switch (ConnectionMethodPicker.SelectedItem as string)
            {
            default:
            case "Bluetooth":
                arduino.Connect("Bluetooth", device, baudRate);
                break;

            case "USB":
                arduino.Connect("USB", device, baudRate);
                break;

            case "DfRobot":
                arduino.Connect("DfRobot", device, baudRate);
                break;

            case "Network":
                string host    = NetworkHostNameEntry.Text;
                string port    = NetworkPortEntry.Text;
                ushort portnum = 0;

                if (Uri.CheckHostName(host) == UriHostNameType.Unknown)
                {
                    ConnectMessage.Text = "You have entered an invalid host or IP.";
                    return;
                }

                if (!ushort.TryParse(port, out portnum))
                {
                    ConnectMessage.Text = "You have entered an invalid port number.";
                    return;
                }

                arduino.Connect(host, portnum, baudRate);
                break;
            }

            timerShouldRun = true;
            Device.StartTimer(TimeSpan.FromSeconds(30), () =>
            {
                if (timerShouldRun)
                {
                    Connection_TimeOut();
                }
                return(false);
            });
        }