0

我正在尝试计算 LRC 值(纵向冗余检查),以便向密码键盘发送消息。

我对 LRC 的了解是:“它是通过对消息中的所有字符执行 XOR 来计算的,不包括计算中的 STX。”

我正在使用这个函数来生成 LRC:

 Public Shared Function calculateLRC(bytes As Byte()) As Byte
    Dim LRC As Byte = 0
    For i As Integer = 0 To bytes.Length - 1
        LRC = LRC Xor bytes(i)
    Next
    Return CByte(LRC)
End Function

但我不能让密码键盘回答我。

现在,我知道我必须以 HEX 格式发送消息,但我无法让 pinpad 回答我,我无法确定我在计算 LRC 时是否有问题,或者我做错了什么。

格式是这样询问的:<STX><type of msg><param><ETX><LRC>。

我已经尝试先计算 LRC,然后将所有内容转换为十六进制并将所有内容转换为六进制,然后计算 LRC,但没有任何效果。

任何帮助表示赞赏。

编辑:好的,LRC 没问题。问题在于我发送数据的方式(主要是因为我的文档太少,我只是在尝试我能想到的一切)

我会试着思考如何解释这里的问题,就像我说的那样,我的文档很差,而且是西班牙语的。

4

0 回答 0