【问题标题】:Discarding data in a buffered reader丢弃缓冲读取器中的数据
【发布时间】:2023-03-11 02:13:01
【问题描述】:

我正在使用 rxtx 库通过串行从我的 arduino 将传感器数据发送到 java 程序。问题是新值被如此快速地推送到 BufferedReader 中,以至于我无法实时处理这些值。我从基于事件的实现转移到每 100 毫秒轮询一次,并希望丢弃其间的所有值。

是否有可能在不知道我必须跳过多少字节的情况下清除缓冲的阅读器?在缓冲区准备好时调用 read Line 的 while 循环似乎非常乏味,我不确定它是否足够快。

读取一个值清除缓冲读取器,等待 100 毫秒并再次读取最旧的值会很好。另一种可能性是限制 arduino 发送数据的速度,但这是我最不喜欢的方法,因为将来我可能会依赖更高的速度。

【问题讨论】:

    标签: java arduino rxtx


    【解决方案1】:

    在缓冲区准备好时调用 read Line 的 while 循环似乎非常乏味,我不确定它是否足够快。

    运行 java 的计算机有多慢,您关心这个速度? PC 通常比 Arduino 上的串行线快几个数量级。

    另一种可能性是限制 arduino 发送数据的速度,但这是我最不喜欢的方法,因为将来我可能会依赖更高的速度。

    可能是最好的选择。如果您以后需要更高的速度,请更新 Arduino 上的代码。

    【讨论】:

    • 计算机似乎不是问题。 arduino IDE 的串行监视器工作得很好,但是将这些值发送到 java 是问题开始的地方。今天晚些时候回家后,我将尝试使用 while 循环解决方案。我只是认为必须有一个我没有想到的更好的解决方案。
    • 谢谢。 while 循环解决了这个问题。似乎依赖事件侦听器产生了瓶颈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多