我已经在这里潜伏了一段时间,并且仅仅通过提问就学到了很多东西。不过,我对某些事情感到很困惑。我正在使用C#,并且正在尝试使用 IO.Ports 与 USB 设备进行通信。
我的代码工作假定正确的串行端口,但有时我的设备在插入时会在不同的端口上结束,我希望能够运行我的代码而不必更改一个变量并重新编译。因此,我希望代码轮询用户以获取端口号,尝试打开端口,在端口名称错误时捕获 IOException,然后重新轮询直到给出有效端口。
这是我到目前为止所拥有的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
namespace USBDev1
{
class Program
{
static void Main(string[] args)
{
String portname = "COM";
SerialPort port = new SerialPort();
port.BaudRate = 9600;
bool loopthing = true;
while (loopthing == true)
{
Console.WriteLine("Which port?");
portname = "COM" + Console.ReadLine();
try
{
port.PortName = portname;
port.Open();
loopthing = false;
}
catch (System.IO.IOException e)
{
Console.WriteLine("Didn't work, yo");
throw (e);
}
}
// Body code
}
}
}