Public Function GetCRC16(Buf() As Byte, ByVal BufLen As Long) As Long
Dim mCrcVal As Long
Dim i As Byte, j As Byte
mCrcVal = &HFFFF&
For i = 0 To BufLen - 1
mCrcVal = mCrcVal Xor Buf(i)
For j = 1 To 8
If (mCrcVal And &H1) Then
mCrcVal = (mCrcVal \ 2) Xor &HA001&
Else
mCrcVal = mCrcVal \ 2
End If
Next
Next
GetCRC16 = mCrcVal
End Function