From 7c1d67d6b9e64d93d2b66615be887f23802f16a5 Mon Sep 17 00:00:00 2001 From: cmrincon <cmrincon611@hotmail.com> Date: Mon, 12 Jul 2021 14:16:01 +0200 Subject: digital: Added a crc16 basic block. (#4649) Signed-off-by: cmrincon <cmrincon611@hotmail.com> --- gr-digital/lib/crc16_async_bb_impl.h | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 gr-digital/lib/crc16_async_bb_impl.h (limited to 'gr-digital/lib/crc16_async_bb_impl.h') 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 */ -- cgit v1.2.3