getCcittFalseCompute static method

List<int> getCcittFalseCompute(
  1. List<int> payload
)

Implementation

static List<int> getCcittFalseCompute(List<int> payload) {
  var crc = _initValue;
  var c15 = false;
  var bit = false;

  for (var n = 0; n < payload.length; n++) {
    for (var i = 0; i < 8; i++) {
      bit = (payload[n] >> (7 - i) & 1) == 1;
      c15 = (crc >> 15 & 1) == 1;
      if (c15 ^ bit) {
        crc ^= _crcPolynomial;
      }
    }
  }

  crc &= _initValue;

  return [(crc & 0xFF00) >> 8, crc & 0xFF];
}