АСКУЭ «СПЕКТР» |
• • • •
|
Автоматизированная система учета энергоресурсов: тепла, воды, газа и электроэнергии |
|
|
|
Функция вычисления контрольного кода (Приложение 6)
Функция вычисляет и возвращает циклический код для последовательности из len байтов, указанной *msg. Используется порождающий полином: (X в степени 16)+(X в степени 12)+(X в степени 5)+1. Полиному соответствует битовая маска 0x1021.
int CRCode (char *msg, int len)
{
intj, crc = 0;
while ( len-- > 0 )
{
crc = crc ^ (int) *msg++ << 8;
for ( j=0; j < 8; j++ )
{
If (crc & 0x8000) crc = (crc << 1) ^ 0x1021;
else crc <<= 1;
}
}
return crc;
}
|
|
|
|
|
© Copyright 2015, АСКУЭ «СПЕКТР» Автоматизированная система учета энергоресурсов: тепла, воды, газа и электроэнергии
|
|
|