Async CRC32: Difference between revisions
No edit summary |
m (moved deprecated statement to top) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
<code>Deprecated in 3.10</code> This block has been replaced by [[CRC_Append]] and [[CRC_Check]] blocks. | |||
Byte-stream CRC block for async messages. Processes packets (as async PDU messages) for CRC32. The parameter determines if the block acts to check and strip the CRC or to calculate and append the CRC32. The input PDU is expected to be a message of packet bytes. When using check mode, if the CRC passes, the output is a payload of the message with the CRC stripped, so the output will be 4 bytes smaller than the input. When using calculate mode (check == false), then the CRC is calculated on the PDU and appended to it. The output is then 4 bytes longer than the input. This block implements the CRC32 using the Boost crc_optimal class for 32-bit CRCs with the standard generator 0x04C11DB7. | Byte-stream CRC block for async messages. Processes packets (as async PDU messages) for CRC32. The parameter determines if the block acts to check and strip the CRC or to calculate and append the CRC32. The input PDU is expected to be a message of packet bytes. When using check mode, if the CRC passes, the output is a payload of the message with the CRC stripped, so the output will be 4 bytes smaller than the input. When using calculate mode (check == false), then the CRC is calculated on the PDU and appended to it. The output is then 4 bytes longer than the input. This block implements the CRC32 using the Boost crc_optimal class for 32-bit CRCs with the standard generator 0x04C11DB7. | ||
Line 7: | Line 9: | ||
== Example Flowgraph == | == Example Flowgraph == | ||
This flowgraph can be found at [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/packet/packet_tx.grc] | |||
[[File:Packet_tx_fg.png|746px]] | |||
== Source Files == | == Source Files == | ||
; C++ files | |||
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/lib/crc32_async_bb_impl.cc crc32_async_bb_impl.cc] | |||
; Header files | |||
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/lib/crc32_async_bb_impl.h crc32_async_bb_impl.h] | |||
; Public header files | |||
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/include/gnuradio/digital/crc32_async_bb.h crc32_async_bb.h] | |||
; Block definition | |||
: [https://github.com/gnuradio/gnuradio/blob/main/gr-digital/grc/digital_crc32_async_bb.block.yml digital_crc32_async_bb.block.yml] |
Latest revision as of 17:38, 11 March 2023
Deprecated in 3.10
This block has been replaced by CRC_Append and CRC_Check blocks.
Byte-stream CRC block for async messages. Processes packets (as async PDU messages) for CRC32. The parameter determines if the block acts to check and strip the CRC or to calculate and append the CRC32. The input PDU is expected to be a message of packet bytes. When using check mode, if the CRC passes, the output is a payload of the message with the CRC stripped, so the output will be 4 bytes smaller than the input. When using calculate mode (check == false), then the CRC is calculated on the PDU and appended to it. The output is then 4 bytes longer than the input. This block implements the CRC32 using the Boost crc_optimal class for 32-bit CRCs with the standard generator 0x04C11DB7.
Parameters
- Mode
- Set to true if you want to check CRC, false to create CRC.
Example Flowgraph
This flowgraph can be found at [1]
Source Files
- C++ files
- crc32_async_bb_impl.cc
- Header files
- crc32_async_bb_impl.h
- Public header files
- crc32_async_bb.h
- Block definition
- digital_crc32_async_bb.block.yml