can-log-tools/reader/src/main/java/com/rusefi/can/analysis/J1850_SAE_crc8_Calculator.java

22 lines
496 B
Java

package com.rusefi.can.analysis;
public class J1850_SAE_crc8_Calculator {
byte crc8(byte[] data, int length) {
byte crc = 0;
if (data == null)
return 0;
crc ^= 0xff;
int ptr = 0;
while (length-- > 0) {
crc ^= data[ptr++];
for (int k = 0; k < 8; k++)
crc = (byte) (((crc & 0x80) != 0) ? (crc << 1) ^ 0x1d : crc << 1);
}
crc &= 0xff;
crc ^= 0xff;
return crc;
}
}