ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1453854
VVB (05.08.2024 12:13, просмотров: 713) Cкpипaч
Подскажите начинающему про расчёт контрольной суммы в питоне. Отчего-то в поиске ничего толкового нет. 

Задача: посчитать контрольную сумму 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]

Подскажите, как это делается канонически.