[修改]crc32校验逻辑
This commit is contained in:
parent
ccaf53ec67
commit
7e38a912d4
40
third_party/message/rssp_code.go
vendored
40
third_party/message/rssp_code.go
vendored
@ -8,9 +8,9 @@ var (
|
|||||||
// crc16多项式为G(x)=X16+X11+X4+1
|
// crc16多项式为G(x)=X16+X11+X4+1
|
||||||
RSSP_I_CRC16 = crc.NewHash(&crc.Parameters{Width: 16, Polynomial: 0x0811, Init: 0x0, ReflectIn: true, ReflectOut: true, FinalXor: 0x0})
|
RSSP_I_CRC16 = crc.NewHash(&crc.Parameters{Width: 16, Polynomial: 0x0811, Init: 0x0, ReflectIn: true, ReflectOut: true, FinalXor: 0x0})
|
||||||
// 通道1 crc32多项式为0x100d4e63
|
// 通道1 crc32多项式为0x100d4e63
|
||||||
RSSP_I_C1_CRC32 = crc.NewHash(&crc.Parameters{Width: 32, Polynomial: 0x100d4e63, Init: 0x0, ReflectIn: true, ReflectOut: true, FinalXor: 0x0})
|
RSSP_I_C1_CRC32 = crc.NewHash(&crc.Parameters{Width: 32, Polynomial: 0x100d4e63, Init: 0x0, ReflectIn: false, ReflectOut: true, FinalXor: 0x0})
|
||||||
// 通道2 crc32多项式为0x8ce56011
|
// 通道2 crc32多项式为0x8ce56011
|
||||||
RSSP_I_C2_CRC32 = crc.NewHash(&crc.Parameters{Width: 32, Polynomial: 0x8ce56011, Init: 0x0, ReflectIn: true, ReflectOut: true, FinalXor: 0x0})
|
RSSP_I_C2_CRC32 = crc.NewHash(&crc.Parameters{Width: 32, Polynomial: 0x8ce56011, Init: 0x0, ReflectIn: false, ReflectOut: true, FinalXor: 0x0})
|
||||||
)
|
)
|
||||||
|
|
||||||
// Rssp_I_Crc16计算
|
// Rssp_I_Crc16计算
|
||||||
@ -20,27 +20,27 @@ func Rssp_I_Crc16(data []byte) uint16 {
|
|||||||
|
|
||||||
// 通道1的crc32
|
// 通道1的crc32
|
||||||
func Rssp_I_Crc32C1(data []byte) uint32 {
|
func Rssp_I_Crc32C1(data []byte) uint32 {
|
||||||
newData := reverseBitsInByte(data)
|
//newData := reverseBitsInByte(data)
|
||||||
return uint32(RSSP_I_C1_CRC32.CalculateCRC(newData))
|
return uint32(RSSP_I_C1_CRC32.CalculateCRC(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// 通道2的crc32
|
// 通道2的crc32
|
||||||
func Rssp_I_Crc32C2(data []byte) uint32 {
|
func Rssp_I_Crc32C2(data []byte) uint32 {
|
||||||
newData := reverseBitsInByte(data)
|
//newData := reverseBitsInByte(data)
|
||||||
return uint32(RSSP_I_C2_CRC32.CalculateCRC(newData))
|
return uint32(RSSP_I_C2_CRC32.CalculateCRC(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
func reverseBitsInByte(data []byte) []byte {
|
//func reverseBitsInByte(data []byte) []byte {
|
||||||
var result byte
|
// var result byte
|
||||||
newData := make([]byte, len(data))
|
// newData := make([]byte, len(data))
|
||||||
for i, b := range data {
|
// for i, b := range data {
|
||||||
result = 0
|
// result = 0
|
||||||
for i := 0; i < 8; i++ {
|
// for i := 0; i < 8; i++ {
|
||||||
result <<= 1
|
// result <<= 1
|
||||||
result |= b & 1
|
// result |= b & 1
|
||||||
b >>= 1
|
// b >>= 1
|
||||||
}
|
// }
|
||||||
newData[i] = result
|
// newData[i] = result
|
||||||
}
|
// }
|
||||||
return newData
|
// return newData
|
||||||
}
|
//}
|
||||||
|
Loading…
Reference in New Issue
Block a user