blob: 3006ab0f2eca0d04f0596ba3117f9e102c550a38 [file] [log] [blame]
.. _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``