【发布时间】:2015-05-22 23:40:22
【问题描述】:
这就是问题所在,我需要用 Java 来做: 我需要创建一个具有十六进制值的字节数组,以通过套接字发送到设备。消息格式是这样的
STX cmd1 Arg1 , cmd2 ETX Checksum // 任意数量的命令和参数
示例: STX A 1 ETX 148 // 1 和 148 是十进制 STX 是 0x02 而 ETX 是 0x03 ,不是文本 STX 和 ETX。
为上面的例子生成的字节数组是这样的:
STX A 1 ETX 148
{(byte)0x2,(byte)0x41,(byte)0x31,(byte)0x3, (byte)0x94}
你能帮帮我吗?如何转换这些数字/字符并分配给字节数组?
【问题讨论】:
-
什么?
byte[] buffer = {(byte)0x2,(byte)0x41,(byte)0x31,(byte)0x3, (byte)0x94}; -
@SotiriosDelimanolis 谢谢,如何将 Ato 0x41 、 148 转换为 0x94 并分配给字节数组是个问题。给出的是一个例子。 STX 和 ETX 是静态的,但 A 和 1 会有所不同。
-
@SotiriosDelimanolis 这些是设备命令,例如 1) A ,1 , 2) P,10 3) ?K 等。我必须将校验和附加到那个(0-256)。所有这些我都必须以所讨论的格式发送。
-
您在 Java 中的输入是什么?这些是字符串、字符、字节还是整数?我们正在从一种事物转变为另一种事物。我们需要知道它们的类型。
-
@SotiriosDelimanolis 仅整数和字符,双倍我必须解析并作为单个数字发送,包括点(。)
标签: java hex bytearray checksum