【发布时间】:2012-07-04 23:30:49
【问题描述】:
检查了很多页,但我仍然没有回答。
我的问题如下。我有一个设备,通过 RS232 连接到计算机。设备正在发送 TWICE 一秒钟,如下所示:
"*X;0;bbb;cc;d;eee;f\r\n"
这些字段是固定宽度的数字字段。每分钟一次,0 标志上升到 1 并且“cc”更改。那我需要这个号码。
在 C# 应用程序中,我无法让它工作。尝试使用recieve事件获取数据,但刷新结果需要10+秒才能处理。这意味着升旗后 10 秒我得到了结果。有时需要更长的时间。
我首先尝试了 RecieveEvent。我什至尝试填充缓冲区,直到它填满该行,但同样的结果。然后我尝试使用每 300 毫秒调用一次并读取一行的 Timer。还是一样的问题。
所以我的问题是,如何从串口读取和处理最新数据?
【问题讨论】:
-
你听起来很困惑,可能是我。如果计算一个结果需要 10 秒,而你想要它更快,那么你需要一台时间机器。你没有足够的jiggawatts。
-
不,这里的问题是有延迟。假设现在发送我感兴趣的字符串(时间= t),我通常会在(时间= t + 10 s)中收到它。它可能包含在某处的缓冲区中,但在 ReadLine() 函数到达它之前,要经过 10 秒或更长时间
标签: c# serial-port