code: func CalculateCRC16(pkt []byte) uint16 {
  	crc := uint16(0x3692)
  	for _, val := range pkt {
  		crc = crc16table[(crc^uint16(val))&0xff] ^ (crc >> 8)
  	}
  
  	return crc
  }
docs: // CalculateCRC16 calculates the ending CRC16 bytes for packet.