diff options
author | Adam Horden <adam.horden@horden.engineering> | 2021-02-22 22:22:40 +0000 |
---|---|---|
committer | mormj <34754695+mormj@users.noreply.github.com> | 2021-06-04 06:21:34 -0400 |
commit | 6d3965f79d671afbb0b688620f3b4b218e02a352 (patch) | |
tree | 83a38f0c1795616509f4f7896da4f82e0ebce3e5 /gr-iio/lib/fmcomms2_sink_impl.h | |
parent | gr-blocks: Add missing pybind11 binding for Phase Shift block. (diff) | |
download | gnuradio-6d3965f79d671afbb0b688620f3b4b218e02a352.tar.xz gnuradio-6d3965f79d671afbb0b688620f3b4b218e02a352.zip |
feature: gr-iio
Co-authored-by: Edward Kigwana <ekigwana@scires.com>
Co-authored-by: Travis Collins <travis.collins@analog.com>
Signed-off-by: Adam Horden <adam.horden@horden.engineering>
Diffstat (limited to 'gr-iio/lib/fmcomms2_sink_impl.h')
-rw-r--r-- | gr-iio/lib/fmcomms2_sink_impl.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/gr-iio/lib/fmcomms2_sink_impl.h b/gr-iio/lib/fmcomms2_sink_impl.h new file mode 100644 index 000000000..b520b90e8 --- /dev/null +++ b/gr-iio/lib/fmcomms2_sink_impl.h @@ -0,0 +1,76 @@ +/* -*- c++ -*- */ +/* + * Copyright 2014 Analog Devices Inc. + * Author: Paul Cercueil <paul.cercueil@analog.com> + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#ifndef INCLUDED_IIO_FMCOMMS2_SINK_IMPL_H +#define INCLUDED_IIO_FMCOMMS2_SINK_IMPL_H + +#include <string> +#include <vector> + +#include <gnuradio/iio/fmcomms2_sink.h> + +#include "device_sink_impl.h" + +namespace gr { +namespace iio { + +class fmcomms2_sink_impl : public fmcomms2_sink, public device_sink_impl +{ +private: + bool cyclic, stop_thread; + boost::mutex uf_mutex; + boost::thread underflow_thd; + + std::vector<std::string> + get_channels_vector(bool ch1_en, bool ch2_en, bool ch3_en, bool ch4_en); + + void check_underflow(void); + +public: + fmcomms2_sink_impl(struct iio_context* ctx, + bool destroy_ctx, + unsigned long long frequency, + unsigned long samplerate, + unsigned long bandwidth, + bool ch1_en, + bool ch2_en, + bool ch3_en, + bool ch4_en, + unsigned long buffer_size, + bool cyclic, + const char* rf_port_select, + double attenuation1, + double attenuation2, + const char* filter_source, + const char* filter_filename, + float Fpass, + float Fstop); + + ~fmcomms2_sink_impl(); + + int work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items); + + void set_params(unsigned long long frequency, + unsigned long samplerate, + unsigned long bandwidth, + const char* rf_port_select, + double attenuation1, + double attenuation2, + const char* filter_source, + const char* filter_filename, + float Fpass, + float Fstop); +}; + +} // namespace iio +} // namespace gr + +#endif /* INCLUDED_IIO_FMCOMMS2_SINK_IMPL_H */ |