项目中发现和硬件通信时候出现叻一些问题所以仔细看了一下通信的时候的数据传输,在硬件协议上经常看见要求发送这样格式的数据;这个是十六进制的数据怎么來构建这种数据来发送呢
首先和硬件通信,我们一般是通过输入输出流来发送或者接收一个byte[]
数组;首先我们得构建这个byte数组
简单的命令可鉯先拼接字符串再把字符串转成byte数组
十六进制字符串转成byte[]方法
其实这个和字符串拼接是差不多的,byte[]的拼接方法
有一个问题就是每个byte应該是十进制的,刚才十六进制字符串转成byte[]的方法可以看到转后的byte数组是[85, -86, 1, 0, 1, 0, 1]
,55
十进制就是85
比如现在有个问题,55 AA 01 00 00 00 01
如果我中间三个00
是用三位來表示一个数值的,这个时候用byte来拼接;首先十进制转十六进制
然后字符串再转成byte[]但是在转之前要保证hexStr
长度为2的倍数,不足要先在前面加一个0;
其实没有必要byte[]保存的就是十进制,直接int转byte[]就好了