我正在尝试计算LRC值(纵向冗余校验),以便向pinpad发送消息。
我对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
但我无法让pinpad回答我。
现在,我知道我必须用HEX发送消息,但是我不能让pinpad回应我,我无法弄清楚我是否在计算LRC时遇到问题或者我在做其他错误。
以这种方式询问格式:< STX> < msg的类型> < PARAM>< ETX>< LRC取代。
我已经尝试先计算LRC,然后将所有内容转换为十六进制并将所有内容转换为六进制,然后计算LRC,但是无效。
感谢任何帮助。
编辑:好的,LRC还可以。问题在于我发送数据的方式(主要是因为我的文档很少,而我只是想尝试一下)
我会尝试思考如何解释这里的问题,就像我说的那样,我的文档非常糟糕,并且是西班牙语。