【问题标题】:Using rxtx to pipe data from one serial port to another使用 rxtx 将数据从一个串行端口传送到另一个
【发布时间】:2015-08-14 13:04:47
【问题描述】:

我目前正在使用 RXTX 编写一个 Java 程序,该程序需要从一个串行端口接收原始数据,延迟它,然后将其发送到另一个端口。延迟将在几秒钟左右,因此分辨率并不那么重要。

我查看了 RXTX 在其 wiki 上的示例,似乎所有示例都使用 inputstream api 中的 read 方法。对于我的应用程序来说,这似乎没什么用,因为它只返回流中的字节数,而我的程序只需要接收它看到的任何数据。

输入数据来自无线电,它以 5Hz 的速率接收数据块(每约 0.2 秒接收一个数据块)。

我已经获取了他们的示例程序并对其进行了编辑,以便我可以同时连接到我选择的两个串行端口,因此连接到端口不是问题。

有人可以帮助我使用 RXTX 从串行端口读取数据并将其写入另一个端口吗?我可以在这里使用 sleep 来介绍我的延迟吗?

【问题讨论】:

  • 您应该包含相关代码,以便其他人可以看到您已经开始。

标签: java rxtx


【解决方案1】:

InputStream 不仅返回字节数,还返回带有read() 的字节。您可以读取字节,进行延迟并写入另一个串行端口。

byte[] buffer = new byte[1024];
int bytesRead = 0;
while((bytesRead = inputStream.read(buffer)) != -1)
{
    Thread.sleep(5000);
    // then write to the target serial port.
}

【讨论】:

  • 好吧,看来我误解了 read 的作用,我会试试看,然后告诉你进展如何。
  • 这似乎已经成功了......但现在 Eclipse 将整个文件变成了空值:(我将为此打开另一个问题......
  • ^ 如果有人看到,javabyu.wordpress.com/2011/09/22/… 可以解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
相关资源
最近更新 更多