int fletcher16(List<int> data, int length)

Calculates the Fletcher 16bit checksum over the first length bytes of data.

Source

static int fletcher16(List<int> data, int length) {
  int sum1 = 0xB5, sum2 = 0xC3;
  for (int i = 0; i < length; i++) {
    sum1 = (sum1 + data[i]) % 255;
    sum2 = (sum2 + sum1) % 255;
  }
  return (sum2 << 8) | sum1;
}