Подскажите начинающему про расчёт контрольной суммы в питоне.
Отчего-то в поиске ничего толкового нет. Задача: посчитать контрольную сумму 12-байтного принятого пакета по UART.
На С++:
uint8_t getCheckSum(const uint8_t* buf)
{
uint8_t rc{};
for (uint8_t i{}; i < 11; i++)
{
rc -= buf[i];
}
return rc == buf[11];
}
На питоне такой код не работает, потому что "-420" != 92. Не знаю, как сравнивать.
ba = serial.read(12)
def checksumValid(ba):
cs = 0
l = len(ba)-1
for i in range(l):
cs -= ba[i]
return cs == ba[l]
Подскажите, как это делается канонически.