Java在运行时读取文本模式/ BIN模式之间的串行端口切换

时间:2013-11-05 06:34:14

标签: java serial-port rxtx

我正在使用java RXTX串口实现 情景是监视设备(传感器的组合)正在以文本模式发送其数据,但是当其相机有新图像时,它应该以二进制模式发送该图像(这是一个简单的jpeg文件)。
如何在运行时处理此问题?

1 个答案:

答案 0 :(得分:1)

大多数设备都实现了众所周知的协议来发送数据,因此无论谁正在监听并知道该协议,都可以解释这些数据。它们通常以帧(大多数时间具有固定长度)发送它,它具有一些额外的信息,例如状态,数据长度,数据类型等。例如:

| 0010 | 0001 | 1101 | 0000 ... 0010 1101 | 0111 |

 status  type  length        data            CRC

如果是这种情况,您必须联系制造商以获取协议文档。

如果不是,并且此监控设备始终在发送数据,那么您可以执行此操作:

  1. 将此数据读取为字节。
  2. 如果您收到这对字节:0xFF, 0xD8,那么您将出现JPEG图片,因为这些字节是图像起始(SOI)标记。然后下一个数据应该是图像的一部分,直到你得到这对字节:0xFF, 0xD9这是图像的结束(EOI)标记。
  3. 如果您没有收到这一对,那么您可以将这些字节解释为文本字符
  4. 以下示例来自官方RXTX站点,它们都以字节读取数据: