Serial port 串行协议通信

Serial port 串行协议通信,serial-port,Serial Port,我第一次接触串行通信,我必须通过java与带有手动通信协议的串行设备进行通信,我想让你们帮我理解最重要的部分:命令部分 FORMAT : <command><size><data><checksum> <command> : 1 byte type : CAPITAL LETTER from 'A' to 'Z' <size> : 1 byte type : char between 0 and 255 <data&g

我第一次接触串行通信,我必须通过java与带有手动通信协议的串行设备进行通信,我想让你们帮我理解最重要的部分:命令部分

FORMAT : <command><size><data><checksum>
<command> : 1 byte type : CAPITAL LETTER from 'A' to 'Z'
<size> : 1 byte type : char between 0 and 255
<data> : String composed of <size> bytes : Format is depending on the command
<checksum> Calculated as follow : checksum = -(<command> + <size> + [b]E[/b](<data>(i))) modulo 0x100   ([b]E[/b] sum simbol)

Command example : 0x43,0x10,0x87,0x31,0x2E,0x35 (What this means in string format?)

CheckSum calculation : 
  0x43+0x10+0x87+0x31+0x2E+0x35 = 0x16E (How to sum this ?)
  Then calcule it complement : -0x16E = 0xE92
  Then : checksum = 0xE92 modulo 0x100 = 0x92
格式:
:1字节类型:从“A”到“Z”的大写字母
:1字节类型:0和255之间的字符
:由字节组成的字符串:格式取决于命令
计算如下:校验和=-(++[b]E[/b]((i)))模0x100([b]E[/b]sum simbol)
命令示例:0x43,0x10,0x87,0x31,0x2E,0x35(这在字符串格式中是什么意思?)
校验和计算:
0x43+0x10+0x87+0x31+0x2E+0x35=0x16E(如何求和?)
然后计算它的补码:-0x16E=0xE92
然后:校验和=0xE92模0x100=0x92

从我手边的ASCII表0x43中可以看出,0x43是“C”。 大小为0x10=16 数据是0x87

0x43+0x10+0x87+0x31+0x2E+0x35=0x16E(如何求和?)

只需将它们加上“+”

补语是“~”


仅屏蔽一个字节是“&0xff”,如果您将所有算术都保留在字节中,则不需要执行此操作。

关于“C”命令文档说明:命令:Coval、CO2val、Hcval校准类型:b7:1点(在字段中使用)校准如果设置为1 b6:3点校准:低点1如果设置为1 b5:3点校准:中点2如果设置为1。你知道“0x87”是什么意思吗?因为“0x31,0x2E,0x35”接缝为1.5 C16'0x87'1.5'校验和'