31 lines
807 B
VB.net
31 lines
807 B
VB.net
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
|