Stream CRC32

From GNU Radio
Jump to navigation Jump to search

Byte-stream CRC block.

Input
stream of bytes, which form a packet. The first byte of the packet has a tag with key "length" and the value being the number of bytes in the packet.
Output
The same bytes as incoming, but trailing a CRC32 of the packet. The tag is re-set to the new length.

Parameters

Mode
Set to true if you want to check CRC, false to create CRC.
Length tag name
Length tag key for the tagged stream.
Packed
If the data is packed or unpacked bits.

Example Flowgraph

The following flowgraph adds tags to the output of the signal source. This is done because Stream CRC32 is a tagged stream block and needs a Length tag key.

Stream crc32 flowgraph.PNG

The data plot after CRC32 is as follows. As seen, a CRC has been added at the end of each packet and the packet length tag has been updated from 100 bytes to 104 bytes, where the extra 4 bytes are for the CRC.

Stream crc32 output.PNG

Source Files

C++ files
crc32_bb_impl.cc
Header files
crc32_bb_impl.h
Public header files
crc32_bb.h
Block definition
digital_crc32_bb.block.yml