GNU Radio Manual and C++ API Reference
3.10.3.0
The Free & Open Software Radio Ecosystem
crc16_async_bb.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2021 Cesar Martinez.
4
*
5
* This file is part of GNU Radio
6
*
7
* SPDX-License-Identifier: GPL-3.0-or-later
8
9
*
10
*
11
*/
12
13
14
#ifndef INCLUDED_DIGITAL_CRC16_ASYNC_BB_H
15
#define INCLUDED_DIGITAL_CRC16_ASYNC_BB_H
16
17
#include <
gnuradio/block.h
>
18
#include <
gnuradio/digital/api.h
>
19
20
namespace
gr
{
21
namespace
digital {
22
23
/*!
24
* \brief Byte-stream CRC block for async messages
25
* \ingroup packet_operators_blk
26
*
27
* \details
28
*
29
* Processes packets (as async PDU messages) for CRC16. The \p
30
* check parameter determines if the block acts to check and strip
31
* the CRC or to calculate and append the CRC16.
32
*
33
* The input PDU is expected to be a message of packet bytes.
34
*
35
* When using check mode, if the CRC passes, the output is a
36
* payload of the message with the CRC stripped, so the output
37
* will be 2 bytes smaller than the input.
38
*
39
* When using calculate mode (check == false), then the CRC is
40
* calculated on the PDU and appended to it. The output is then 2
41
* bytes longer than the input.
42
*
43
* This block implements the CRC16 using the standard generator 0x1021.
44
*/
45
class
DIGITAL_API
crc16_async_bb
:
virtual
public
block
46
{
47
public
:
48
typedef
std::shared_ptr<crc16_async_bb>
sptr
;
49
50
/*!
51
* \param check Set to true if you want to check CRC, false to create CRC.
52
*/
53
static
sptr
make(
bool
check =
false
);
54
};
55
56
}
// namespace digital
57
}
// namespace gr
58
59
#endif
/* INCLUDED_DIGITAL_CRC16_ASYNC_BB_H */
gr::digital::crc16_async_bb
Byte-stream CRC block for async messages.
Definition:
crc16_async_bb.h:45
DIGITAL_API
#define DIGITAL_API
Definition:
gr-digital/include/gnuradio/digital/api.h:18
gr::digital::crc16_async_bb::sptr
std::shared_ptr< crc16_async_bb > sptr
Definition:
crc16_async_bb.h:48
gr::block
The abstract base class for all 'terminal' processing blocks.
Definition:
gnuradio-runtime/include/gnuradio/block.h:62
api.h
gr
GNU Radio logging wrapper.
Definition:
basic_block.h:29
block.h
gr-digital
include
gnuradio
digital
crc16_async_bb.h
Generated by
1.8.17