我正在使用 C# 为 Windows 开发 OBD2 扫描仪应用程序。我希望有人能告诉我在从串行端口读取响应之前等待汽车 ecu 响应(使用 thread.Sleep())的最佳时间。
我正在使用蓝牙适配器进行开发,波特率为 9600。我目前将等待时间设置为 100 毫秒,但我希望尽可能短得多。我只是不想遇到在端口未准备好时尝试读取数据的情况。我想在流畅的 GUI 和舒适的错误余量之间取得良好的平衡。
更新:感谢这些想法。处理 DataReceived 是一个很好的一般想法,但我正在休眠线程的原因是我需要定期轮询 ECU,以便我可以执行诸如更新 RPM 仪表之类的操作。我正试图找到一个甜蜜点,在那里我可以从 ECU 获得尽可能多的代表,而不会压倒它。如果我只轮询一次,那么只需处理一个事件就可以了,但我需要知道轮询之间可接受的间隔是多少。我肯定会将我的代码更改为事件驱动的,但我仍然需要知道民意调查之间的可观时间有多长。