我正在尝试计算 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 没问题。问题在于我发送数据的方式(主要是因为我的文档太少,我只是在尝试我能想到的一切)
我会试着思考如何解释这里的问题,就像我说的那样,我的文档很差,而且是西班牙语的。