|  | .. _module-pw_checksum: | 
|  |  | 
|  | ----------- | 
|  | pw_checksum | 
|  | ----------- | 
|  | The ``pw_checksum`` module provides functions for calculating checksums. | 
|  |  | 
|  | pw_checksum/crc16_ccitt.h | 
|  | ========================= | 
|  |  | 
|  | .. cpp:namespace:: pw::checksum | 
|  |  | 
|  | .. cpp:var:: constexpr uint16_t kCcittCrc16DefaultInitialValue = 0xFFFF | 
|  |  | 
|  | The default initial value for the CRC16. | 
|  |  | 
|  | .. cpp:function:: uint16_t CcittCrc16(span<const std::byte> data, uint16_t initial_value = kCcittCrc16DefaultInitialValue) | 
|  |  | 
|  | Calculates the CRC16 of the provided data using polynomial 0x1021, with a | 
|  | default initial value of :cpp:expr:`0xFFFF`. | 
|  |  | 
|  | To incrementally calculate a CRC16, use the previous value as the initial | 
|  | value. | 
|  |  | 
|  | .. code-block:: cpp | 
|  |  | 
|  | uint16_t crc = CcittCrc16(my_data); | 
|  |  | 
|  | crc  = CcittCrc16(more_data, crc); | 
|  |  | 
|  | pw_checksum/crc32.h | 
|  | =================== | 
|  |  | 
|  | .. cpp:var:: constexpr uint32_t kCrc32InitialValue = 0xFFFFFFFF | 
|  |  | 
|  | The initial value for the CRC32. | 
|  |  | 
|  | .. cpp:function:: uint32_t Crc32(span<const std::byte> data) | 
|  |  | 
|  | Calculates the initial / one-time CRC32 of the provided data using polynomial | 
|  | 0x4C11DB7, with an initial value of :cpp:expr:`0xFFFFFFFF`. | 
|  |  | 
|  | .. code-block:: cpp | 
|  |  | 
|  | uint32_t crc = Crc32(my_data); | 
|  |  | 
|  | .. cpp:function:: uint32_t Crc32(span<const std::byte> data, uint32_t previous_result) | 
|  |  | 
|  | Incrementally append calculation of a CRC32, need to pass in the previous | 
|  | result. | 
|  |  | 
|  | .. code-block:: cpp | 
|  |  | 
|  | uint32_t crc = Crc32(my_data); | 
|  | crc = Crc32(more_data, crc); | 
|  |  | 
|  | Compatibility | 
|  | ============= | 
|  | * C | 
|  | * C++17 | 
|  |  | 
|  | Dependencies | 
|  | ============ | 
|  | * ``pw_span`` |