【发布时间】:2019-05-25 17:24:19
【问题描述】:
我正在尝试编写一些代码,以通过使用 Siemens 3964r 协议的串行设备与旧设备进行通信。这包括校验和,或者更准确地说是传输结束时的 BCC(块校验字符)。 ETX 之后的单个字符。文档将 BCC 定义为:
使用 3964R 传输协议,通过发送一个附加块来增强数据安全性 检查字符(BCC = 块检查字符)。 块校验字符是偶数纵向奇偶校验(所有数据的EXOR逻辑操作 字节)发送或接收的块。它的计算从用户数据的第一个字节开始(第一个 帧的字节)在连接建立之后,并在 DLE ETX 字符之后结束 在连接终止时。
这里是一些十六进制的示例数据。 53 54 41 54 55 53 10 03 07
07 是本次中的密件抄送。
4d 45 41 53 4d 50 54 45 53 54 41 4e 41 50 52 47 30 30 30 55 78 30 31 31 2e 30 30 5a 30 31 31 31 30 10 03 61
61 是这个密件抄送。
我大体上知道如何进行 XOR 运算,但我无法找出任何能够为我提供正确密件抄送的事物组合。我认为我对定义的解释是错误的。
我的首选语言是 javascript,因为它用于 node.js 电子应用程序。我可以读取缓冲区并获取十六进制值。而且我可以构造适当的消息。但在我可以包含正确的密件抄送之前,它无法正常工作。因此,只需寻找比我更聪明、确切知道如何生成有效密件抄送的人。
谢谢!
【问题讨论】:
-
该文件看起来很有希望。至少最好的密件抄送解释。我将编写一个脚本来计算它。看看我在哪里。谢谢
标签: serial-port checksum xor