使用java发送带有标头和正文的mesage并输出一个串行端口
我到处找,找不到这个问题的答案。我相当肯定这并不困难,可能是因为我的搜索没有使用正确的措辞 我正在与万向节控制器通信。我已经能够连接到它所连接的串行端口。我找不到有关如何格式化如下消息的信息: 每个命令包括 标题和正文的,都带有校验和。标题或正文校验和错误的命令,或 如果车身尺寸与预期不同,则应忽略 有人能告诉我如何像那样写入串行端口吗 谢谢,使用java发送带有标头和正文的mesage并输出一个串行端口,java,serial-port,Java,Serial Port,我到处找,找不到这个问题的答案。我相当肯定这并不困难,可能是因为我的搜索没有使用正确的措辞 我正在与万向节控制器通信。我已经能够连接到它所连接的串行端口。我找不到有关如何格式化如下消息的信息: 每个命令包括 标题和正文的,都带有校验和。标题或正文校验和错误的命令,或 如果车身尺寸与预期不同,则应忽略 有人能告诉我如何像那样写入串行端口吗 谢谢, Loren通过串行端口与设备通信有两种典型方法。在这两种情况下,最终结果都是通过导线发送原始位。如果您的设备需要,您可以发送ASCII字符串,但由于您的
Loren通过串行端口与设备通信有两种典型方法。在这两种情况下,最终结果都是通过导线发送原始位。如果您的设备需要,您可以发送ASCII字符串,但由于您的摘录特别提到了数据包打包,我冒昧地说,它们需要字节 您复制粘贴的摘录听起来像是来自一本手册,该手册解释了通信所需的确切协议。简而言之,您将执行以下操作
// Format is: [length][7 data bytes][8 bit additive checksum]
// Create an empty byte array
byte[] packet = new byte[8];
// Our simple header
packet[0] = packet.length;
// Some data
byte[] dummyData = new byte[] { 1, 2, 3, 4, 5, 6, 7 };
// Copy data to packet
System.arraycopy(dummyData, 0, packet, 0, dummyData.length);
// Go do the checksum (good exercise for you)
byte checksum = getChecksum(packet);
packet[7] = checksum;
现在我们有了一个端口,一些数据。。。现在呢?让我们把它寄出去
// Just send those bytes
_port.writeBytes(packet);
一旦掌握了窍门,请阅读如何读取响应、如何设置DataReceivedEvents以及如何更高效地创建数据包。谷歌的一些好术语:
- jSSC
- JavaRXTX
- 波特率
- 异步/同步数据处理
// Just send those bytes
_port.writeBytes(packet);