ESQ ESQ-A1000-043-5.5K [200/202] Реализация для проверочной суммы

ESQ ESQ-A1000-043-5.5K [200/202] Реализация для проверочной суммы
199
F2.05 1342 F2.49 1430 F4.05 1514 F6.04 1598 F9.01 1680 FA. 00 1806
F2.06 1344 F2.50 1432 F4.06 1516 F6.05 1600 F9.02 1682 FA.
01 1808
F2.07 1346 F2.51 1434 F4.07 1518 F6.06 1602 F9.03 1684 FA.
02 1810
F2.08 1348 F2.52 1436 F4.08 1520 F6.07 1604 F9.04 1686 FA.
03 1812
F2.09 1350 F2.53 1438 F4.09 1522
параметыр
группы F7
F9.05 1688 FA. 04 1814
F2.10 1352 параметыр
группы F3
F4.10 1524 F7.00 |
1606
F9.06 1690 FA. 05 1816
F2.ll 1354 F3.00 1440 F4.ll 1526 F7.01 1608 F9.07 1692
F2.12 1356 F3.01 1442 F4.12 1528 F7.02 1610 F9.08 1694
F2.13 1358 F3.02 1444 F4.13 1530 F7.03
1612 F9.09 1696
F2.14 1360 F3.03 1446 F4.14 1532 F7.04
1614 F9.10 1698
1.7. Реализация для проверочной суммы.
Функция создаваемая LRC:
static unsigned char LRC (auchMsg, usDataLen)
unsigned char *auchMsg ;
unsigned short usDataLen ; /
unsigned char uchLRC = 0 ;
while usDataLen
uchLRC += *auchMsg ;
return ((unsigned char) (-((char) uchLRC))) ;
Функция создаваемая CRC:
unsigned short CRC16 (puchMsg, usDataLen)
unsigned char *puchMsg ;
unsigned short usDataLen ;
unsigned char uchCRCHi = 0xFF ;
unsigned char uchCRCLo = 0xFF ;
unsigned uIndex ;
while (usDataLen-)
uIndex = uchCRCHi ~ *puchMsgg++ ;
uchCRCHi = uchCRCLo ~ auchCRCHi [uIndex] ;
uchCRCLo = auchCRCLo[uIndex] ;
return (uchCRCHi « 8 | uchCRCLo) ;
/* Table of CRC values for high-order byte */
static unsigned char auchCRCHi [] =
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

Содержание

Скачать