Java读取串行端口在运行时在文本模式/二进制模式之间切换
我正在使用java RXTX串行端口实现。Java读取串行端口在运行时在文本模式/二进制模式之间切换,java,serial-port,rxtx,Java,Serial Port,Rxtx,我正在使用java RXTX串行端口实现。 场景是,监控设备(传感器组合)以文本模式发送数据,但当摄像头中有新图像时,它应该以二进制模式发送该图像(这是一个简单的jpeg文件)。 如何在运行时处理此问题?大多数设备都实现了一个众所周知的协议来发送数据,因此,无论是谁,只要听并知道此协议,都可以解释此数据。通常,它们以帧的形式发送信息(大多数情况下是固定长度的),其中包含一些附加信息,如状态、数据长度、数据类型等。例如: | 0010 | 0001 | 1101 | 0000 ... 0010 1
场景是,监控设备(传感器组合)以文本模式发送数据,但当摄像头中有新图像时,它应该以二进制模式发送该图像(这是一个简单的jpeg文件)。
如何在运行时处理此问题?大多数设备都实现了一个众所周知的协议来发送数据,因此,无论是谁,只要听并知道此协议,都可以解释此数据。通常,它们以帧的形式发送信息(大多数情况下是固定长度的),其中包含一些附加信息,如状态、数据长度、数据类型等。例如:
| 0010 | 0001 | 1101 | 0000 ... 0010 1101 | 0111 |
status type length data CRC
如果是这种情况,您必须联系制造商以获取协议文档
如果不是,并且此监视设备一直在发送数据,则您可以执行以下操作:
0xFF,0xD8
,则您将看到一张图片,因为这些字节是图像(SOI)的开始标记。然后,下一个数据应该是图像的一部分,直到您获得这对字节:0xFF,0xD9
,它们是图像结束(EOI)标记| 0010 | 0001 | 1101 | 0000 ... 0010 1101 | 0111 |
status type length data CRC
如果是这种情况,您必须联系制造商以获取协议文档
如果不是,并且此监视设备一直在发送数据,则您可以执行以下操作:
0xFF,0xD8
,则您将看到一张图片,因为这些字节是图像(SOI)的开始标记。然后,下一个数据应该是图像的一部分,直到您获得这对字节:0xFF,0xD9
,它们是图像结束(EOI)标记