我有一台支票打印机,我想通过COM端口连接到Delphi 7并进行操作。
我有一个用串行端口监视器提取的命令:
STX "PIRI(781" FS NULL ETX "0B" 即 02 50 49 52 49 28 37 38 31 1c 00 03 30 42 十六进制
手册中有如下内容:
CRC(ETX 后的最后两位数字)- 数据包校验和。它 通过以下算法计算:对每个执行 XOR 块的字节包括ETX但不包括STX。 的数据 校验和占用两个字节,是一个符号表示 十六进制计算系统中的数字。
我尝试使用在线 CRC 计算器并返回 1B 结果和 27 数字。
文档错误地将校验值识别为 CRC。它不是。它只是所记录字节的异或。 50 49 52 49 28 37 38 31 1c 00 03 的异或结果是 0b。然后将 0b 转换为十六进制(使用大写 B,即 0B),并得到 30 42。