Merge pull request #45 from jgnrendra3/master
New Checksums including support for Brooks Cryopump
This commit is contained in:
18
src/ChecksumConverter.cc
Normal file → Executable file
18
src/ChecksumConverter.cc
Normal file → Executable file
@ -504,6 +504,18 @@ static uint32_t leybold(const uint8_t* data, size_t len, uint32_t sum)
|
|||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Checksum used by Brooks Cryopumps
|
||||||
|
static uint32_t brksCryo(const uint8_t* data, size_t len, uint32_t sum)
|
||||||
|
{
|
||||||
|
uint32_t xsum;
|
||||||
|
while (len--) {
|
||||||
|
sum += (*data++) & 0x7F;
|
||||||
|
}
|
||||||
|
xsum = (((sum >> 6) ^ sum) & 0x3F) + 0x30;
|
||||||
|
return xsum;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct checksum
|
struct checksum
|
||||||
{
|
{
|
||||||
const char* name;
|
const char* name;
|
||||||
@ -521,8 +533,13 @@ static checksum checksumMap[] =
|
|||||||
{"sum8", sum, 0x00, 0x00, 1}, // 0xDD
|
{"sum8", sum, 0x00, 0x00, 1}, // 0xDD
|
||||||
{"sum16", sum, 0x0000, 0x0000, 2}, // 0x01DD
|
{"sum16", sum, 0x0000, 0x0000, 2}, // 0x01DD
|
||||||
{"sum32", sum, 0x00000000, 0x00000000, 4}, // 0x000001DD
|
{"sum32", sum, 0x00000000, 0x00000000, 4}, // 0x000001DD
|
||||||
|
{"nsum8", sum, 0xFF, 0xFF, 1}, // 0x23
|
||||||
|
{"nsum16", sum, 0xFFFF, 0xFFFF, 2}, // 0xFE23
|
||||||
|
{"nsum32", sum, 0xFFFFFFFF, 0xFFFFFFFF, 4}, // 0xFFFFFE23
|
||||||
|
{"notsum", sum, 0x00, 0xFF, 1}, // 0x22
|
||||||
{"xor", xor8, 0x00, 0x00, 1}, // 0x31
|
{"xor", xor8, 0x00, 0x00, 1}, // 0x31
|
||||||
{"xor8", xor8, 0x00, 0x00, 1}, // 0x31
|
{"xor8", xor8, 0x00, 0x00, 1}, // 0x31
|
||||||
|
{"xor8ff", xor8, 0x00, 0xFF, 1}, // 0xCE
|
||||||
{"xor7", xor7, 0x00, 0x00, 1}, // 0x31
|
{"xor7", xor7, 0x00, 0x00, 1}, // 0x31
|
||||||
{"crc8", crc_0x07, 0x00, 0x00, 1}, // 0xF4
|
{"crc8", crc_0x07, 0x00, 0x00, 1}, // 0xF4
|
||||||
{"ccitt8", crc_0x31, 0x00, 0x00, 1}, // 0xA1
|
{"ccitt8", crc_0x31, 0x00, 0x00, 1}, // 0xA1
|
||||||
@ -541,6 +558,7 @@ static checksum checksumMap[] =
|
|||||||
{"hexsum8", hexsum, 0x00, 0x00, 1}, // 0x2D
|
{"hexsum8", hexsum, 0x00, 0x00, 1}, // 0x2D
|
||||||
{"cpi", CPI, 0x00, 0x00, 1}, // 0x7E
|
{"cpi", CPI, 0x00, 0x00, 1}, // 0x7E
|
||||||
{"leybold", leybold, 0x00, 0x00, 1}, // 0x22
|
{"leybold", leybold, 0x00, 0x00, 1}, // 0x22
|
||||||
|
{"brksCryo",brksCryo, 0x00, 0x00, 1} // 0x4A
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint32_t mask[5] = {0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF};
|
static uint32_t mask[5] = {0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF};
|
||||||
|
Reference in New Issue
Block a user