Stream CRC32: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 19: Line 19:
== Example Flowgraph ==
== Example Flowgraph ==


Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately.  The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.
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.
 
[[File: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.
 
[[File:Stream_crc32_output.PNG|1000px]]


== Source Files ==
== Source Files ==


; C++ files
; C++ files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/lib/crc32_bb_impl.cc crc32_bb_impl.cc]


; Header files
; Header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/lib/crc32_bb_impl.h crc32_bb_impl.h]


; Public header files
; Public header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/include/gnuradio/digital/crc32_bb.h crc32_bb.h]


; Block definition
; Block definition
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/grc/digital_crc32_bb.block.yml digital_crc32_bb.block.yml]

Latest revision as of 06:42, 27 January 2022

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