低电平- 4字节校验和,sum32算法爱普生打印机



我正在编写一个与爱普生tm-t88iv热敏打印机在Linux设备上的低级通信程序,该设备仅接收十六进制包。我已经阅读了手册,试图了解校验和是如何构建的,但我无法重新创建它。

手册说校验和是4个字节,代表发送的包中所有数据的2个字节的总和。

我目前有四个工作的例子,我发现用不同的程序在windows计算机上监听端口。最后4个十六进制数是校验和(根据手册,03标志着数据的结束,并包含在校验和计算中)。

02 AC 00 01 1C 00 00 03 30 30 43 45
02 AC 00 00 1C 80 80 1C 00 00 1C 00 00 1C 03 30 32 32 31
02 AD 07 01 1C 00 00 1C 31 30 03 30 31 35 33
02 AD 00 00 1C 80 80 1C 00 00 1C 00 00 1C 03 30 32 32 32

我在某个地方读到有一个sum32算法,但我找不到它的任何例子或如何编程。

哇,这是一个糟糕的算法!如果有人发现自己正在努力理解爱普生糟糕的低级通信手册,那么检查和是如何完成的:

  1. 校验和基数为30 30 30 30
  2. 所有数据包的十六进制总和(例如,02+89+00+00+1C+80+80+1C+00+01+1C+09+0C+1C+03 = 214)
  3. 然后将结果逐个数字分开,如果是字母,则在值上加1(例如B2将是2|1|4)。
  4. 将校验和基数从右到左依次求和(这将是30 32 31 34的校验和)。

注意:它工作完美,但由于某种原因,我上面张贴的例子似乎不太匹配。它们都是打印机的响应,但稍微在它遇到硬件问题之后,必须由技术支持重新格式化,所以可能它已经修复了。

相关内容

  • 没有找到相关文章

最新更新