From a28d3903d3940db35168788563e276c732c04fe2 Mon Sep 17 00:00:00 2001 From: Andy CA6JAU Date: Sat, 27 Jan 2018 00:31:22 -0300 Subject: [PATCH] Fix CRC for NXDN --- NXDNCRC.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NXDNCRC.cpp b/NXDNCRC.cpp index 40aea84..0e2ad06 100644 --- a/NXDNCRC.cpp +++ b/NXDNCRC.cpp @@ -140,7 +140,7 @@ uint8_t CNXDNCRC::createCRC6(const unsigned char* in, unsigned int length) crc |= 0x01U; if (bit2) - crc |= 0x27U; + crc ^= 0x27U; crc &= 0x3FU; } @@ -154,7 +154,7 @@ uint8_t CNXDNCRC::createCRC6(const unsigned char* in, unsigned int length) crc ^= 0x27U; } - return crc & 0x3FU; + return (crc & 0x3FU) << 2U; } uint16_t CNXDNCRC::createCRC12(const unsigned char* in, unsigned int length) @@ -185,7 +185,7 @@ uint16_t CNXDNCRC::createCRC12(const unsigned char* in, unsigned int length) crc ^= 0x080FU; } - return crc & 0x0FFFU; + return (crc & 0x0FFFU) << 4U; } uint16_t CNXDNCRC::createCRC15(const unsigned char* in, unsigned int length) @@ -216,5 +216,5 @@ uint16_t CNXDNCRC::createCRC15(const unsigned char* in, unsigned int length) crc ^= 0x4CC5U; } - return crc & 0x7FFFU; + return (crc & 0x7FFFU) << 1U; }