PDA

Просмотр полной версии : Trm138 - Crc



Игорь
18.12.2006, 15:58
Помогите плз с подсчетом CRC для протокала "ОВЕН".
Нуждаюсь в коментариях к програмке
unsigned Hash(char Byte, char nbit, unsigned CRC)
{
for (int i = 0; i < nbit; i++, Byte <<= 1)
{
if ( ( Byte ^ (CRC>>8) ) & 0x80 )
{
CRC <<= 1; CRC ^= 0x8F57;
}
else CRC <<= 1;
}
return CRC;
}

Мощицкий Павел
18.12.2006, 17:22
Игорь (http://owen.ru/forum/member.php?u=26)<SCRIPT type=text/javascript> vbmenu_register("postmenu_92", true); </SCRIPT>
Нуждаюсь в коментариях к програмке
Вы не могли бы конкретно показать, что Вам не понятно? Какие операторы или строки.

Малышев Олег
19.12.2006, 09:50
Функция возвращает 16 битное беззнаковое значение. Начальное значение CRC=0. Для контрольной суммы nbit=8. В функцию передается все байты кадра за исключением последних двух которые и будут равны возвращаемому значению. После этого кадр преобразуется по принципу тетрада в ASCII символ и обрамляется символами '#' и ASCII(13).
Основная информация по использованию находится в Описании протокола ОВЕН (http://www.owen.ru/documents/support/files/type_prot.zip)