初始化
This commit is contained in:
30
RS485Loader/CRC16.vb
Normal file
30
RS485Loader/CRC16.vb
Normal file
@@ -0,0 +1,30 @@
|
||||
Public Class CRC16
|
||||
|
||||
Public Shared Function NetCRC16(ByRef buffer() As Byte, ByVal offset As UInt32, ByVal len As Integer, ByRef logstr As String) As UInt16
|
||||
Dim xda As UInt16
|
||||
Dim xdapoly As UInt16
|
||||
Dim i As Integer
|
||||
Dim j As Integer
|
||||
Dim xdabit As UInt16
|
||||
|
||||
xda = &HFFFF
|
||||
xdapoly = &HA001
|
||||
For i = 0 To (len - 1)
|
||||
xda = xda Xor buffer(offset)
|
||||
|
||||
'logstr += Hex(buffer(offset)).PadLeft(2, "0")
|
||||
'logstr += " "
|
||||
|
||||
|
||||
offset += 1
|
||||
For j = 0 To 7
|
||||
xdabit = CByte(xda And &H1)
|
||||
xda = xda \ 2
|
||||
If xdabit > 0 Then
|
||||
xda = xda Xor xdapoly
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Return xda
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user