【问题标题】:Synchronizing methods in RXTXRXTX 中的同步方法
【发布时间】:2013-04-09 15:12:03
【问题描述】:

情况: 我正在尝试使来自 SerialPort 的传入数据对我的目的有用。在一个类Processor.java中,我实现了几种方法——其中一种(serialEvent)实现了gnu.io.SerialPortEventListener。它将从 inputStream 读取的信息存储在一个字节数组的缓冲区中。还有一种方法,就是将数据写入到 outputStream 中。

问题: 我想实现一个方法(在同一个类中),它将根据从 inputStream 读取的消息向 outputStream 写入一些内容。

伪代码:

@Override
public void serialEvent(SerialPortEvent event) {
// get data
}

public void writeData(String dataToWrite) {
// write data
}

public void respond() {
// write data
// wait for appropriate response (read data)
// write data
// ...
}

我该怎么做?

【问题讨论】:

    标签: java rxtx


    【解决方案1】:

    唯一想到的是一个后台线程,它等待输入缓冲区满状态来处理接收到的消息并做出响应。

    如果您使用固定长度的数据包或开始-停止标记的数据包进行通信,您应该创建一个线程来监控串行端口,缓冲接收到的数据,并且一旦满足“数据包/消息完成”条件以触发事件注册的侦听器(如果可能,在另一个线程中)。然后,该侦听器将处理消息并响应(在其自己的线程中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 2011-11-08
      • 1970-01-01
      相关资源
      最近更新 更多