added checksum for Spellman High Voltage Supplies MPS series

This commit is contained in:
2025-01-10 15:47:22 +01:00
parent 668d1d5255
commit 7debc86514

View File

@ -616,6 +616,16 @@ static uint32_t hexlrc(const uint8_t* data, size_t len, uint32_t sum)
return sum;
}
// Checksum used by Spellman High Voltage Supplies MPS
static uint32_t hv_mps(const uint8_t* data, size_t len, uint32_t sum)
{
while (len--)
{
sum += *data++;
}
return (~sum & 0x7F) | 0x40;
}
struct checksum
{
const char* name;
@ -665,6 +675,7 @@ static checksum checksumMap[] =
{"bitsum8", bitsum, 0x00, 0x00, 1}, // 0x21
{"bitsum16",bitsum, 0x0000, 0x0000, 2}, // 0x0021
{"bitsum32",bitsum, 0x00000000, 0x00000000, 4}, // 0x00000021
{"hv_mps", hv_mps, 0xFF, 0x00, 1} // 0x63
};
static uint32_t mask[5] = {0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF};