C#串行端口问题
我正在尝试创建一个类似超级终端的终端来与GSM调制解调器通话(在Sierra wireless sl8080上开放)。调制解调器可以随机复位,也可以通过发送到通信端口的命令复位。当调制解调器复位时,所有通信都会丢失。我正在使用C#串行端口问题,c#,resources,serial-port,wmi,gsm,C#,Resources,Serial Port,Wmi,Gsm,我正在尝试创建一个类似超级终端的终端来与GSM调制解调器通话(在Sierra wireless sl8080上开放)。调制解调器可以随机复位,也可以通过发送到通信端口的命令复位。当调制解调器复位时,所有通信都会丢失。我正在使用 private void serialPort1_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e) { Console.WriteLine(serialPort1.R
private void serialPort1_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)
{
Console.WriteLine(serialPort1.ReadExisting());
}
从设备中读取。但重置后,我可以做任何事情,但什么也得不到
如果我在重置后尝试阅读,我会得到:
A first chance exception of type 'System.InvalidOperationException' occurred in System.dll
An unhandled exception of type 'System.InvalidOperationException' occurred in System.dll
Additional information: The port is closed.
如果我重置,则关闭我得到的端口:
A first chance exception of type 'System.IO.IOException' occurred in System.dll
An unhandled exception of type 'System.IO.IOException' occurred in System.dll
Additional information: The requested resource is in use.
如果不完全关闭应用程序,我无法从这种状态恢复。一年多以来,我一直在努力解决这个问题。我想出了许多其他的解决办法。主要使用Python和Java/RXTX,完美地处理来自设备的重置。我真的被难住了,现在要想弄明白这更像是个人的挑战
我尝试使用WMI检测usb设备的拔出并关闭commport,但结果仍然相同。您是否尝试过处理SerialPort对象而不是关闭它 如果SerialPort对象在读取操作期间被阻塞,请不要中止线程。相反,请关闭基本流或释放SerialPort对象
我有,也有同样的结果。始终必须关闭应用程序,有时还必须从设备上拔下USB,以防设备无法正常工作。对象是否已被处置?我还发现了这篇文章,你可能已经看过了。似乎是.net的一些错误。()