Stream CRC32: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...") |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
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 == | == 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 == | == 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. | |||
[[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 | : [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 | : [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 | : [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 | : [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.
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.
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