diff options
Diffstat (limited to 'gr-digital/lib/crc16_async_bb_impl.h')
-rw-r--r-- | gr-digital/lib/crc16_async_bb_impl.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gr-digital/lib/crc16_async_bb_impl.h b/gr-digital/lib/crc16_async_bb_impl.h new file mode 100644 index 0000000000..9e65164021 --- /dev/null +++ b/gr-digital/lib/crc16_async_bb_impl.h @@ -0,0 +1,48 @@ +/* -*- c++ -*- */ +/* + * Copyright 2021 Cesar Martinez. + * + * This file is part of GNU Radio + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#ifndef INCLUDED_DIGITAL_CRC16_ASYNC_BB_IMPL_H +#define INCLUDED_DIGITAL_CRC16_ASYNC_BB_IMPL_H + +#include <gnuradio/digital/crc16_async_bb.h> +#include <boost/crc.hpp> + +namespace gr { +namespace digital { + +class crc16_async_bb_impl : public crc16_async_bb +{ +private: + boost::crc_ccitt_type d_crc_ccitt_impl; + + pmt::pmt_t d_in_port; + pmt::pmt_t d_out_port; + + unsigned int process_crc(const uint8_t* bytes_in, size_t n_bytes_prcss); + void calc(pmt::pmt_t msg); + void check(pmt::pmt_t msg); + +public: + crc16_async_bb_impl(bool check); + ~crc16_async_bb_impl() override; + + int general_work(int noutput_items, + gr_vector_int& ninput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) override; + + uint64_t d_npass; + uint64_t d_nfail; +}; + +} // namespace digital +} // namespace gr + +#endif /* INCLUDED_DIGITAL_crc16_ASYNC_BB_IMPL_H */ |