diff --git a/lib/crc10.cpp b/lib/crc10.cpp index 9ebf42ed7..93f664930 100644 --- a/lib/crc10.cpp +++ b/lib/crc10.cpp @@ -1,24 +1,31 @@ -#include - -extern "C" -{ - short crc10 (unsigned char const * data, int length); - bool crc10_check (unsigned char const * data, int length); -} - -namespace -{ - unsigned long constexpr truncated_polynomial = 0x08f; -} - -// assumes CRC is last 16 bits of the data and is set to zero -// caller should assign the returned CRC into the message in big endian byte order -short crc10 (unsigned char const * data, int length) -{ - return boost::augmented_crc<10, truncated_polynomial> (data, length); -} - -bool crc10_check (unsigned char const * data, int length) -{ - return !boost::augmented_crc<10, truncated_polynomial> (data, length); -} +#include +#include + +extern "C" +{ + short crc10 (unsigned char const * data, int length); + bool crc10_check (unsigned char const * data, int length); +} + +#define POLY 0x08f + +#ifdef BOOST_NO_CXX11_CONSTEXPR +#define TRUNCATED_POLYNOMIAL POLY +#else +namespace +{ + unsigned long constexpr TRUNCATED_POLYNOMIAL = POLY; +} +#endif + +// assumes CRC is last 16 bits of the data and is set to zero +// caller should assign the returned CRC into the message in big endian byte order +short crc10 (unsigned char const * data, int length) +{ + return boost::augmented_crc<10, TRUNCATED_POLYNOMIAL> (data, length); +} + +bool crc10_check (unsigned char const * data, int length) +{ + return !boost::augmented_crc<10, TRUNCATED_POLYNOMIAL> (data, length); +} diff --git a/lib/crc12.cpp b/lib/crc12.cpp index e7d0a80ee..44e50fe71 100644 --- a/lib/crc12.cpp +++ b/lib/crc12.cpp @@ -1,4 +1,5 @@ #include +#include extern "C" { @@ -6,19 +7,25 @@ extern "C" bool crc12_check (unsigned char const * data, int length); } +#define POLY 0xc06 + +#ifdef BOOST_NO_CXX11_CONSTEXPR +#define TRUNCATED_POLYNOMIAL POLY +#else namespace { - unsigned long constexpr truncated_polynomial = 0xc06; + unsigned long constexpr TRUNCATED_POLYNOMIAL = POLY; } +#endif // assumes CRC is last 16 bits of the data and is set to zero // caller should assign the returned CRC into the message in big endian byte order short crc12 (unsigned char const * data, int length) { - return boost::augmented_crc<12, truncated_polynomial> (data, length); + return boost::augmented_crc<12, TRUNCATED_POLYNOMIAL> (data, length); } bool crc12_check (unsigned char const * data, int length) { - return !boost::augmented_crc<12, truncated_polynomial> (data, length); + return !boost::augmented_crc<12, TRUNCATED_POLYNOMIAL> (data, length); }