Vb6 LRC计算中的几个问题

Vb6 LRC计算中的几个问题,vb6,onlinebanking,Vb6,Onlinebanking,我正试图计算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 b

我正试图计算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回答我,我也不能确定我是否在计算LRC时遇到问题,或者我在做其他错误的事情

格式是这样询问的:

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

感谢您的帮助

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


我将尝试思考如何解释这里的问题,因为正如我所说,我的文档非常糟糕,而且是西班牙语的。

?根本不可能涉及任何“十六进制”。“Hex”不是一个与二进制等价的单词或术语,这可能就是它的意思。我想这里的问题是从Unicode/ANSI转换错误开始的,但我们看到的代码太少,无法了解发生了什么。calculateLRC函数是正确的,所以我怀疑问题在于如何发送到pinpad。您能否编辑您的问题以显示代码以及pinpad所需的文档?另外,您发布的代码不是VB6。这确实是一个转换错误。我为我展示的糟糕代码感到抱歉,我只是还不太了解这一点。现在我知道我的问题不是关于STX、ETX或LRC。问题在于我发送数据的方式。