【发布时间】:2013-07-09 21:06:07
【问题描述】:
我最近一直在使用 SerialPort 类。目前我正在尝试找出检查设备是否连接到我的应用程序使用的通信端口的正确方法。是否有任何正确的方法来检查设备是否连接到通信端口?我目前的方法如下:
while (isReading == true)
{
try
{
received += serialPort.ReadExisting();
if (received.Contains('>'))
isReading = false;
}
catch (Exception e)
{
}
if (tick == 10000)
if (received == "")
{
Console.WriteLine("No Data Received. Device isn't connected.");
isReading = false;
}
tick++;
}
Console.WriteLine(received);
它有效,但我觉得它有点老套和不可靠。如果需要,我可以保留它,但如果有合适的替代方法,我会喜欢它。
编辑:我实际上必须将刻度值设置为大约 10,000 以确保它是可靠的。否则我有时无法接收数据。即使将其设置为 1000 或 5000 也不可靠。即使这样,也不能保证在多台机器上可靠。
【问题讨论】:
-
你也在给设备编程吗?
-
@Rubixus 没有。这是一种称为 Fluke 5500A 多产品校准器的医疗设备。我什至没有自己更改它的内部设置。
-
设备在插入时是否在注册表中注册了驱动程序?是 USB 设备吗?
-
@NETscape 不。 5500没有。它通过 RS-232 连接进行连接。我所做的只是通过 SerialPort 类或终端发送命令。
-
那么一定要考虑使用
Stopwatch或Timer...然后你可以在停止收听之前确保n的毫秒数过去了。
标签: c# serial-port