private async void Button_Click(object sender, RoutedEventArgs e) { NetDeviceConnecterArgs args = null; try { IPAddress ip = IPAddress.Parse(TBoxIP.Text.ToString()); args = new NetDeviceConnecterArgs() { IPEndPoint = new IPEndPoint(ip, int.Parse(TBoxPort.Text)) }; } catch (Exception ex) { Logger.Warn(this, "Parse user input was failed", ex); new FastPanel(this.root.GridMain, new DevicesPanelMessageBox(App.Current.Resources["msgCheckInput"].ToString())) .Display(); return; } adder = new NetDeviceConnecter(); adder.Init(args); BtnAdd.Content = App.Current.Resources["btnConnecting"]; var result = await Task.Run(() => { var r = adder.Run(); return(r); }); BtnAdd.Content = App.Current.Resources["btnConnect"]; if (result.ResultType == ResultType.Successful) { Finish(); } else { new FastPanel(this.root.GridMain, new DevicesPanelMessageBox(App.Current.Resources["msgFailed"].ToString())).Display(); } }
private async void BtnOk_Click(object sender, RoutedEventArgs e) { //检查输入的端口是否正确 int port = int.Parse(TBoxPort.Text); if (port > 65535) //如果端口号不对 { //告诉用户不对 new FastPanel(this.root.GridMain, new DevicesPanelMessageBox( App.Current.Resources["msgPleaseInputAPort"].ToString() ) ).Display(); //并且将端口输入框重置 TBoxPort.Text = "5555"; //离开当前方法 return; } //如果进行到这里,说明检查通过了 var opener = new NetDebuggingOpener(); opener.Init(new NetDebuggingOpenerArgs() { DevBasicInfo = new DeviceBasicInfo() { Serial = _serial, State = DeviceState.Poweron, }, Port = (uint)port }); //异步开启该设备的网络调试 var result = await Task.Run(() => { return(opener.Run()); }); //如果开启成功了 if (result.ResultType == Basic.FlowFramework.ResultType.Successful) { try { //尝试连接到刚才开启调试的设备 await Task.Run(() => { Thread.Sleep(3000); var IP = new DeviceSoftwareInfoGetter(_serial).GetLocationIP(); if (IP != null) { this.Dispatcher.Invoke(() => { new FastPanel(root.GridMain, new DevicesPanelMessageBox( App.Current.Resources["msgGettedIP"].ToString() + Environment.NewLine + IP.ToString() + ":" + port ) ).Display(); }); var connecter = new NetDeviceConnecter(); connecter.Init(new NetDeviceConnecterArgs() { IPEndPoint = new IPEndPoint(IP, port) }); connecter.Run(); } }); } catch (Exception ex) { Logger.Warn(this, "auto connect failed....", ex); } } //无论如何,执行完后,都要关闭连接界面 await Task.Run(() => Thread.Sleep(10000)); Finish(); }