从我的形式运行下面的方法时,我得到了以下错误消息Access to the port 'COM5' is denied.
。我尝试从我的设备管理器的端口设置输入正确的波特率9600。我也尝试通过Portmon访问设备,但是有一个错误阻止了我的连接。任何替代解决这个问题?访问端口“COM5”被拒绝
//Fields
List<string> myReceivedLines = new List<string>();
//subscriber method for the port.DataReceived Event
private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
while (sp.BytesToRead > 0)
{
try
{
myReceivedLines.Add(sp.ReadLine());
}
catch (TimeoutException)
{
break;
}
}
}
protected override void SolveInstance(IGH_DataAccess DA)
{
string selectedportname = default(string);
DA.GetData(1, ref selectedportname);
int selectedbaudrate = default(int);
DA.GetData(2, ref selectedbaudrate);
bool connecttodevice = default(bool);
DA.GetData(3, ref connecttodevice);
port.DtrEnable = true; //enables the Data Terminal Ready (DTR) signal during serial communication (Handshaking)
port.Open(); //Open the port
if (!(port.IsOpen == true)) port.Open();
if (connecttodevice == true)
{
port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
DA.SetDataList(0, myReceivedLines);
}
你想访问什么类型的设备,以确保没有其他人正在尝试使用该设备。 –
如果程序崩溃,有时端口会卡住,需要重新启动。 – Brad
该端口已被另一个进程打开。或者你的,不要点击那个按钮两次。 –