计算SSI命令的校验和
问题/问题
《简单串行接口程序员指南》中如何计算SSI命令的校验和
适用于
斑马Zebra条码扫描器:DS4308,DS457,DS8100,DS3608,DS3678,MS1204,MS954
决议/答案
步骤:
1.在“简单串行接口程序员指南”中获取所需的命令,例如
开始会话
。2.从状态字段描述中获取4位
状态值,例如
0000,代表
位0:
0 –首次传输
位1 :
0 –多数据包消息的最后一个数据包
位2:
0 –始终为0
位3:
0 –临时更改
3.将
0000 转换为1个字节。
在这种情况下,要求加4位成为1个字节,因此在状态位值前加 0000成为 0000
0000。
位 |
7 |
6 |
5 |
4 |
3 |
2 |
1个 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
注意:
1字节= 8位
0000是状态中最常用的4位值。
4.将 0000 0000转换为十六进制值
0000 0000
0 0
您可以参考下表
小数 |
4位二进制数 |
十六进制数 |
0 |
0000 |
0 |
1个 |
0001 |
1个 |
2 |
0010 |
2 |
3 |
0011 |
3 |
4 |
0100 |
4 |
5 |
0101 |
5 |
6 |
0110 |
6 |
7 |
0111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
一种 |
11 |
1011 |
乙 |
12 |
1100 |
C |
13 |
1101 |
d |
14 |
1110 |
Ë |
15 |
1111 |
F |
5.现在您获得状态的十六进制值
长度 |
操作码 |
讯息来源 |
状态 |
校验和 |
04小时 |
4小时 |
04小时 |
0 0小时 |
|
6.使用十六进制计算器求和所有上述十六进制值。
04 + E4 + 04 + 00 = EC7
。将EC转换为二进制
E C
1110 1100
8.将
1110 1100转换为2个字节。在这种情况下,需要另外1个字节,所以加0000 0000与前值,成为0000 0000
1110 1100
9.您需要为做2周的补0000 0000
1110 1100 Ť的连线 Ø得到校验。
10.对于第一个补码,将0转换为1,将1转换为
0。0000 0000 1110 1100
变为
1111 1111 0001 0011
11.对于第二个补码,将1补码后的值
1111 1111 0001 0011加1 。
1111 1111 0001 0011
+1
_________________________________
1111 1111 0001 0100
12.将1111 1111 0001 0100转换为十六进制值
1111 1111 0001 0100
F F 1 4
13.现在,您将获得2个字节的校验和
FF和
14。14.您的完整命令是
04 E4 04 00 FF 14。
长度 |
操作码 |
讯息来源 |
状态 |
校验和 |
04小时 |
4小时 |
04小时 |
0 0小时 |
FF h 14小时 |
广州领域条码全程为您服务,需要提供解决方案,可联系在线客服!