chg: xmodem

This commit is contained in:
iceman1001 2019-08-04 20:05:30 +02:00
commit b43ea3be32
2 changed files with 5 additions and 0 deletions

View file

@ -31,6 +31,7 @@ void init_table(CrcType_t crctype) {
generate_table(CRC16_POLY_CCITT, true); generate_table(CRC16_POLY_CCITT, true);
break; break;
case CRC_FELICA: case CRC_FELICA:
case CRC_XMODEM:
generate_table(CRC16_POLY_CCITT, false); generate_table(CRC16_POLY_CCITT, false);
break; break;
case CRC_LEGIC: case CRC_LEGIC:
@ -172,6 +173,7 @@ void compute_crc(CrcType_t ct, const uint8_t *d, size_t n, uint8_t *first, uint8
crc = crc16_iclass(d, n); crc = crc16_iclass(d, n);
break; break;
case CRC_FELICA: case CRC_FELICA:
case CRC_XMODEM:
crc = crc16_xmodem(d, n); crc = crc16_xmodem(d, n);
break; break;
case CRC_CCITT: case CRC_CCITT:
@ -204,6 +206,7 @@ uint16_t Crc16ex(CrcType_t ct, const uint8_t *d, size_t n) {
case CRC_ICLASS: case CRC_ICLASS:
return crc16_iclass(d, n); return crc16_iclass(d, n);
case CRC_FELICA: case CRC_FELICA:
case CRC_XMODEM:
return crc16_xmodem(d, n); return crc16_xmodem(d, n);
case CRC_CCITT: case CRC_CCITT:
return crc16_ccitt(d, n); return crc16_ccitt(d, n);
@ -244,6 +247,7 @@ bool check_crc(CrcType_t ct, const uint8_t *d, size_t n) {
case CRC_ICLASS: case CRC_ICLASS:
return (crc16_iclass(d, n) == 0); return (crc16_iclass(d, n) == 0);
case CRC_FELICA: case CRC_FELICA:
case CRC_XMODEM:
return (crc16_xmodem(d, n) == 0); return (crc16_xmodem(d, n) == 0);
case CRC_CCITT: case CRC_CCITT:
return (crc16_ccitt(d, n) == 0); return (crc16_ccitt(d, n) == 0);

View file

@ -30,6 +30,7 @@ typedef enum {
CRC_LEGIC, CRC_LEGIC,
CRC_CCITT, CRC_CCITT,
CRC_KERMIT, CRC_KERMIT,
CRC_XMODEM,
} CrcType_t; } CrcType_t;
uint16_t update_crc16_ex(uint16_t crc, uint8_t c, uint16_t polynomial); uint16_t update_crc16_ex(uint16_t crc, uint8_t c, uint16_t polynomial);