Я работаю над библиотекой, чтобы обеспечить простую надежную связь через соединение RS232 или RS485. Часть этого кода включает использование контрольной суммы CRC16 для данных, чтобы обнаружить повреждение от линейного шума. Я создал функцию для вычисления контрольной суммы CRC16, но, похоже, она не выводит правильные значения.
Соответствующий код, который я написал, можно найти здесь.
Я проверяю свой результат на этот онлайн-калькулятор CRC.
Я пришел к выводу, что либо мое понимание того, как вычислять CRC16, является неправильным, либо онлайн-калькулятор ошибочным (первое кажется более вероятным). Может ли кто-нибудь сказать мне, где я могу ошибиться?