32英尺蓝牙c#当连接的设备关闭时抛出异常

本文关键字:抛出异常 连接 | 更新日期: 2023-09-27 17:59:28

我正在c#中开发一个蓝牙应用程序,使用32feet.net库从传感器读取数据。我能够与传感器通信,能够读取值、发送命令等。通信线程将等待对传感器的读取或写入命令。我原以为传感器突然断电时会引发IOException,但从未出现异常。

需要帮助来弄清楚当传感器突然断电时会引发什么样的异常?

32英尺蓝牙c#当连接的设备关闭时抛出异常

应该发生一个异常:20秒后,然后执行下一个IO操作。你等那么久吗?还是您的Read呼叫返回零?

参见第2页https://32feet.codeplex.com/wikipage?title=Connected%20Property

在我使用蓝牙进行的测试中,一台设备似乎需要大约20秒才能意识到另一台设备已经消失——尽管这可能是可配置的。这在蓝牙中被称为"链路监控超时"。因此,您将不得不等待很长时间,让系统知道连接丢失,然后您将在下一次IO操作中发现。例如,如果您在没有接收到数据的情况下开始读取,它将阻塞,直到连接失败或关闭(或接收到一些数据)。