// SL651 标准 CRC-16 x16+x15+x2+1
func checkSumSL651(str2 string) string {
data, _ := hex.DecodeString(str2)
var crc16 uint16
crc16 = 0xffff
for _, v := range data {
n := uint8(uint16(v) ^ crc16)
crc16 >>= 8
crc16 ^= MbTable[n]
}
returnstr := fmt.Sprintf("%X", crc16)
if len(returnstr) == 1 {
return "000" + returnstr
}
if len(returnstr) == 2 {
return "00" + returnstr
}
if len(returnstr) == 3 {
return "0" + returnstr
}
return returnstr
}