計(jì)算SSI命令的校驗(yàn)和
問題/問題
《簡單串行接口程序員指南》中如何計(jì)算SSI命令的校驗(yàn)和
適用于
斑馬Zebra條碼掃描器:DS4308,DS457,DS8100,DS3608,DS3678,MS1204,MS954
決議/答案
步驟:
1.在“簡單串行接口程序員指南”中獲取所需的命令,例如
開始會話
。2.從狀態(tài)字段描述中獲取4位
狀態(tài)值,例如
0000,代表
位0:
0 –首次傳輸
位1 :
0 –多數(shù)據(jù)包消息的最后一個數(shù)據(jù)包
位2:
0 –始終為0
位3:
0 –臨時更改
3.將
0000 轉(zhuǎn)換為1個字節(jié)。
在這種情況下,要求加4位成為1個字節(jié),因此在狀態(tài)位值前加 0000成為 0000
0000。
位 |
7 |
6 |
5 |
4 |
3 |
2 |
1個 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
注意:
1字節(jié)= 8位
0000是狀態(tài)中最常用的4位值。
4.將 0000 0000轉(zhuǎn)換為十六進(jìn)制值
0000 0000
0 0
您可以參考下表
小數(shù) |
4位二進(jìn)制數(shù) |
十六進(jìn)制數(shù) |
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.現(xiàn)在您獲得狀態(tài)的十六進(jìn)制值
長度 |
操作碼 |
訊息來源 |
狀態(tài) |
校驗(yàn)和 |
04小時 |
4小時 |
04小時 |
0 0小時 |
|
6.使用十六進(jìn)制計(jì)算器求和所有上述十六進(jìn)制值。
04 + E4 + 04 + 00 = EC7
。將EC轉(zhuǎn)換為二進(jìn)制
E C
1110 1100
8.將
1110 1100轉(zhuǎn)換為2個字節(jié)。在這種情況下,需要另外1個字節(jié),所以加0000 0000與前值,成為0000 0000
1110 1100
9.您需要為做2周的補(bǔ)0000 0000
1110 1100 ?的連線 Ø得到校驗(yàn)。
10.對于第一個補(bǔ)碼,將0轉(zhuǎn)換為1,將1轉(zhuǎn)換為
0。0000 0000 1110 1100
變?yōu)?/em>
1111 1111 0001 0011
11.對于第二個補(bǔ)碼,將1補(bǔ)碼后的值1111 1111 0001 0011加1 。
1111 1111 0001 0011
+1
_________________________________
1111 1111 0001 0100
12.將1111 1111 0001 0100轉(zhuǎn)換為十六進(jìn)制值
1111 1111 0001 0100
F F 1 4
13.現(xiàn)在,您將獲得2個字節(jié)的校驗(yàn)和FF和14。14.您的完整命令是04 E4 04 00 FF 14。
長度 |
操作碼 |
訊息來源 |
狀態(tài) |
校驗(yàn)和 |
04小時 |
4小時 |
04小時 |
0 0小時 |
FF h 14小時 |
廣州領(lǐng)域條碼全程為您服務(wù),需要提供解決方案,可聯(lián)系在線客服!