Расчет CRC на Java - PullRequest
       55

Расчет CRC на Java

2 голосов
/ 09 апреля 2009

Я читаю файл из последовательного порта, используя протокол x-modem и пакет 133 байта. я читаю в этом

      1 byte is SOH
      2 byte packet number
      3 byte nagative of packet number
next  128 bytes data
      2 bytes CRC sent from other side.

Я должен рассчитать CRC для 128-байтовых данных и 2-байтовых CRC, отправленных с другой стороны, чтобы сделать его однобайтовым и сопоставить его с моей вычисленной CRC. Как я могу сделать это в Java?

Ответы [ 3 ]

5 голосов
/ 09 апреля 2009

Попробуйте использовать Jacksum .

1 голос
/ 09 апреля 2009

Вот мой код на C, который тривиален для переноса на Java - вы можете использовать его любым удобным для вас способом. Ссылки на слово относятся к 16-битному значению без знака - вы должны иметь возможность использовать символ вместо этого в Java.

Прошло слишком много времени с тех пор, как я работал с 16-битными CRC, поэтому я не помню, есть ли варианты, основанные на заполнении. Я почти уверен, что использовал этот код в C-реализации X-Modem, когда.

Источник размещен на tech.dolhub.com .

1 голос
/ 09 апреля 2009

Sun JDK 1.6 содержит sun.misc.CRC16, но есть вероятность, что это не тот CRC16, который вам нужен, поскольку используется несколько различных полиномов.

...