在visual basic中的校验和计算

时间:2015-08-19 20:47:46

标签: checksum

我想与医疗分析仪通信并向其发送一些消息。但是分析器在消息末尾请求控制字符或校验和来验证它。

您可以原谅我对英语的有限知识,但根据手册,以下是如何计算校验和:

控制字符是以字符为单位的排除逻辑和(异或),从文本的开头到文本的结尾,由1字节的二进制组成。此外,由于该控制字符由十六进制变为00~7F的值,请不要误认为传输中使用的控制代码。

那么请你告诉我如何根据这些信息获得这个控制字符。因为我的英语有限,我不太清楚写的是什么。

我正在使用visual basic进行编程

由于

1 个答案:

答案 0 :(得分:0)

手册的英语也不是很好。我的理解:

您将发送到设备的消息可以表示为字节数组。您希望将每个字节进行异或运算,这将为您提供一个字节的校验和,并将其添加到消息的末尾。 (字节1 XOR字节2 XOR字节3 XOR ....)

“Further”之后的所有内容似乎都说“如果您正在从设备中读取,最后一个字符是校验和,而不是命令,所以不要将其视为命令,即使它看起来像一个命令。”您正在写入设备,因此您可以忽略该部分。

要XOR(请记住我不知道VB):

有一个校验和变量,设置为0.循环遍历消息的每个字节,并将校验和变量与该字节进行异或。将结果存回校验和。