Ну, я почесываю голову и очень близко, чтобы сломать его молотком. Я пытаюсь рассчитать CRC16 бит CCITT, и он не дает мне то, что он должен. Я искал почти все и не знаю, чего мне не хватает.
This is the full packet with last two bytes of CRC calculation
54 A1 4A 03 E7 03 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 CA < /p>
< /blockquote>
Пока я добавляю синхронизатор, который составляет 0x54, если я не добавляю синхронизацию, пакет будет < /p>
54 a1 4a 03 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 г. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 cf < /p>
< /blockquote>
Оба значения CRC (64 CA && 65 CF) ошибочны. Я должен получить 72 DC && 99 3F соответственно.private static ushort CRCCalc(byte[] data)
{
ushort wCRC = 0;
for (int i = 1; i < data.Length; i++)
{
wCRC = (ushort)(wCRC ^ (data
Подробнее здесь: https://stackoverflow.com/questions/399 ... lue-0x0000
CRC 16 бит (полиномиальное 0x1021) Расчет CCITT с начальным значением 0x0000 ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение