Java读取串行端口在运行时在文本模式/二进制模式之间切换

居住

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

dic19

大多数设备都采用众所周知的协议来发送数据,因此,正在侦听并且知道此协议的任何人都可以解释该数据。最终,他们以帧的形式发送消息(大多数情况下以固定的长度发送),其中包含一些其他信息,例如状态,数据长度,数据类型等。例如:

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

 status  type  length        data            CRC

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

如果不是,并且此监视设备一直在发送数据,则可以执行以下操作:

  1. 以字节为单位读取此数据。
  2. 如果您收到这对字节,0xFF, 0xD8则说明您存在JPEG图片,因为这些字节是图像开始(SOI)标记。然后,下一个数据应成为图像的一部分,直到您获得这对字节:0xFF, 0xD9这是图像结束(EOI)标记。
  3. 如果您没有收到这对信息,则可以将这些字节解释为文本字符

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Oracle 中运行时在相同模式的两个表之间切换视图

读取二进制文件时切换字节序

在运行时更改/切换 WPF 文本框的文本数据绑定

在源代码和预编译的二进制文件之间切换

从运行时已知类型的二进制文件中读取值

我可以在运行时在 onClickListener 和 onLongClickListener 之间切换吗?

在运行时在两种布局之间切换

与比较二进制搜索的运行时间

C#在运行时切换枚举

在运行时切换UI资源

在运行时在Urxvt中切换粗体

在运行时切换iCloud同步

SAS:以批处理模式运行时切换DM命令

Android:phonegap / cordova:在应用运行时切换全屏模式

用于创建+读取+附加+二进制的文件模式

在Clisp中以二进制模式写入/读取文件

在 Pycharm 中在运行和调试模式之间切换

是否可以在运行时检测Go二进制文件是否用-H = windowsgui编译

能否确定在运行时用于以编程方式构建二进制文件的iOS SDK版本?

在模式之间切换

二进制串行端口读取C中缺少的字节

如何在运行时在DatabaseGeneratedOption.Identity,Computed和None之间切换,而不必生成空的DbMigrations

在某些服务器上,Apache Java FTP客户端未切换到二进制传输模式

如何计算二进制模式

ifstream读取二进制文件在发布模式下工作,但在调试模式下不工作

将二进制模式转换为文本模式和反向选项

(C)以文本模式而不是二进制模式写入文件时会影响哪些字符?

如何更新二进制数的一位作为切换?

C ++二进制搜索树切换语句问题