1

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

4

1 回答 1

1

大多数设备都实现了一个众所周知的协议来发送数据,因此任何正在收听并知道该协议的人都可以解释该数据。通常,他们以帧的形式发送它(大多数情况下具有固定长度),其中包含一些附加信息,例如状态、数据长度、数据类型等。例如:

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

 status  type  length        data            CRC

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

如果不是,并且此监控设备一直在发送数据,那么您可以这样做:

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

以下示例取自 RXTX 官方网站,它们都以字节为单位读取数据:

于 2013-11-13T12:01:14.083 回答