29 #ifndef __ETL_CRC8_CCITT__
30 #define __ETL_CRC8_CCITT__
34 #include "static_assert.h"
54 template <const
int ENDIANNESS = endian::little>
59 typedef uint8_t value_type;
74 template<
typename TIterator>
92 template<
typename TValue>
97 if (ENDIANNESS == endian::little)
99 for (
int i = 0; i <
sizeof(TValue); ++i)
101 add(uint8_t((value >> (i * 8)) & 0xFF));
106 for (
int i =
sizeof(TValue) - 1; i >= 0; --i)
108 add(uint8_t((value >> (i * 8)) & 0xFF));
118 crc = CRC8_CCITT[crc ^
value];
125 template<
typename TIterator>
145 template<
typename TValue>
156 operator value_type ()
const
void reset()
Resets the CRC to the initial state.
Definition: crc8_ccitt.h:84
Definition: type_traits.h:130
void add(TValue value)
Definition: crc8_ccitt.h:93
crc8_ccitt()
Default constructor.
Definition: crc8_ccitt.h:64
void add(uint8_t value)
Definition: crc8_ccitt.h:116
value_type value() const
Gets the CRC value.
Definition: crc8_ccitt.h:137
crc8_ccitt(TIterator begin, const TIterator end)
Definition: crc8_ccitt.h:75
Definition: algorithm.h:43
void add(TIterator begin, const TIterator end)
Definition: crc8_ccitt.h:126
TContainer::iterator end(TContainer &container)
Definition: container.h:95
TContainer::iterator begin(TContainer &container)
Definition: container.h:45
Definition: crc8_ccitt.h:55
crc8_ccitt< ENDIANNESS > & operator+=(TValue value)
Definition: crc8_ccitt.h:146
const uint8_t CRC8_CCITT[]
Definition: crc8_ccitt.h:47