4 - 37
PN 074-550-P1C
SQC-310 Operating Manual
4.4.2 Java
®
private short calcCRC(byte[] str) {
short crc = 0;
short tmpCRC;
int length = 1 + str[1] - 34;
if (length > 0) {
crc = (short) 0x3fff;
for (int jx = 1; jx <= length; jx++) {
crc = (short) (crc ^ (short) str[jx]);
for (int ix = 0; ix < 8; ix++) {
tmpCRC = crc;
crc = (short) (crc >> 1);
if ((tmpCRC & 0x1) == 1) {
crc = (short) (crc ^ 0x2001);
}
}
crc = (short) (crc & 0x3fff);
}
}
return crc;
}
private byte crcHigh(short crc) {
byte val = (byte) (((crc >> 7) & 0x7f) + 34);
return val;
}
private byte crcLow(short crc) {
byte val = (byte) ((crc & 0x7f) + 34);
return val;
}