在写一个检验仪器的串口指令发送,需要对发送数据 Checksum ,仪器发给电脑的接收数据,仪器已经 Checksum 了。如下原始数据
5C|1|I|In Check Range|I
FD (上一行的 Checksum 值)
7C|1|I|In Check Range|I
FF (上一行的 Checksum 值)
0R|4|^^^HBs^^^1^RLU|8982|||H|N|R||||20161229094052|IRL55791525
E1 (上一行的 Checksum 值)
1C|1|I|In Check Range|I
F9 (上一行的 Checksum 值)
2L|1|N
05 (上一行的 Checksum 值)
使用
0x04+0x00+0x38+0x00+0x01=0x3d= - 0x3C; // - 0x3d=3C;
也无法算对,有明白的没法给指点下。 另外对于串口的应答方式有什么灵活办法处理吗? 我现在是 n=serial.inWaiting(),如果 n=1 ,判断是 ACK 还是 ENQ 等,并做相应的应答写死在程序里面。但是如果一段数据结尾有 ENQ 我该怎么处理,每次收到不为空数据 data[-1:]判断并进行应答?
1
qile1 OP 0x04+0x00+0x38+0x00+0x01
我算出结果是 61 |