crc16 static method

int crc16(
  1. Uint8List data
)

Implementation

static int crc16(Uint8List data) {

  int crctemp;
  int crc = 0x0000ffff;

  for (int i = 0;i < data.length - 2 ; i++) {

    crc ^= data[i] & 0xff;
    for (int j = 0;j < 8;j++) {
      if ((crc & 0x01) != 0) {
        crc >>= 1;
        crc ^= 0x0000a001;
      }else {
        crc >>= 1;
      }
    }
  }

  crctemp = crc;
  crc = ((crctemp << 8) | (crc>>8))&0x0000ffff;

  data[data.length-2] = crc >> 8 & 0x00ff ;
  data[data.length-1] = crc & 0x00ff ;

  return crc;
}