GNU Radio's IIO Package
fmcomms5_source.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2014 Analog Devices Inc.
4 * Author: Paul Cercueil <paul.cercueil@analog.com>
5 *
6 * This is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3, or (at your option)
9 * any later version.
10 *
11 * This software is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this software; see the file COPYING. If not, write to
18 * the Free Software Foundation, Inc., 51 Franklin Street,
19 * Boston, MA 02110-1301, USA.
20 */
21
22
23#ifndef INCLUDED_IIO_FMCOMMS5_SOURCE_H
24#define INCLUDED_IIO_FMCOMMS5_SOURCE_H
25
26#include <iio/api.h>
27#include <gnuradio/hier_block2.h>
28#include <gnuradio/sync_block.h>
29
30#include "device_source.h"
31
32namespace gr {
33 namespace iio {
34
35 /*!
36 * \brief <+description of block+>
37 * \ingroup iio
38 *
39 */
40 class IIO_API fmcomms5_source : virtual public gr::sync_block
41 {
42 public:
43 typedef std::shared_ptr<fmcomms5_source> sptr;
44
45 /*!
46 * \brief Return a shared_ptr to a new instance of iio::device.
47 *
48 * To avoid accidental use of raw pointers, iio::device's
49 * constructor is in a private implementation
50 * class. iio::device::make is the public interface for
51 * creating new instances.
52 */
53 static sptr make(const std::string &uri, unsigned long long frequency1,
54 unsigned long long frequency2,
55 unsigned long samplerate,
56 unsigned long bandwidth,
57 bool ch1_en, bool ch2_en, bool ch3_en, bool ch4_en,
58 bool ch5_en, bool ch6_en, bool ch7_en, bool ch8_en,
59 unsigned long buffer_size, bool quadrature, bool rfdc,
60 bool bbdc, const char *gain1, double gain1_value,
61 const char *gain2, double gain2_value,
62 const char *gain3, double gain3_value,
63 const char *gain4, double gain4_value,
64 const char *rf_port_select, const char *filter = "");
65
66 static sptr make_from(struct iio_context *ctx,
67 unsigned long long frequency1,
68 unsigned long long frequency2, unsigned long samplerate,
69 unsigned long bandwidth,
70 bool ch1_en, bool ch2_en, bool ch3_en, bool ch4_en,
71 bool ch5_en, bool ch6_en, bool ch7_en, bool ch8_en,
72 unsigned long buffer_size, bool quadrature, bool rfdc,
73 bool bbdc, const char *gain1, double gain1_value,
74 const char *gain2, double gain2_value,
75 const char *gain3, double gain3_value,
76 const char *gain4, double gain4_value,
77 const char *rf_port_select, const char *filter = "");
78
79 virtual void set_params(unsigned long long frequency1,
80 unsigned long long frequency2,
81 unsigned long samplerate, unsigned long bandwidth,
82 bool quadrature, bool rfdc, bool bbdc,
83 const char *gain1, double gain1_value,
84 const char *gain2, double gain2_value,
85 const char *gain3, double gain3_value,
86 const char *gain4, double gain4_value,
87 const char *rf_port_select) = 0;
88 };
89
90 class IIO_API fmcomms5_source_f32c : virtual public gr::hier_block2
91 {
92 public:
93 typedef std::shared_ptr<fmcomms5_source_f32c> sptr;
94
95 static sptr make(const std::string &uri,
96 unsigned long long frequency1, unsigned long long frequency2,
97 unsigned long samplerate,
98 unsigned long bandwidth,
99 bool rx1_en, bool rx2_en, bool rx3_en, bool rx4_en,
100 unsigned long buffer_size, bool quadrature, bool rfdc,
101 bool bbdc, const char *gain1, double gain1_value,
102 const char *gain2, double gain2_value,
103 const char *gain3, double gain3_value,
104 const char *gain4, double gain4_value,
105 const char *rf_port_select, const char *filter = "")
106 {
108 frequency1, frequency2, samplerate,
109 bandwidth, rx1_en, rx1_en, rx2_en,
110 rx2_en, rx3_en, rx3_en, rx4_en,
111 rx4_en, buffer_size, quadrature,
112 rfdc, bbdc, gain1, gain1_value,
113 gain2, gain2_value, gain3, gain3_value,
114 gain4, gain4_value, rf_port_select,
115 filter);
116
117 return gnuradio::get_initial_sptr(
118 new fmcomms5_source_f32c(rx1_en, rx2_en, rx3_en, rx4_en, block));
119 }
120
121 void set_params(unsigned long long frequency1,
122 unsigned long long frequency2,
123 unsigned long samplerate, unsigned long bandwidth,
124 bool quadrature, bool rfdc, bool bbdc,
125 const char *gain1, double gain1_value,
126 const char *gain2, double gain2_value,
127 const char *gain3, double gain3_value,
128 const char *gain4, double gain4_value,
129 const char *rf_port_select)
130 {
131 fmcomms5_block->set_params(frequency1, frequency2, samplerate, bandwidth,
132 quadrature, rfdc, bbdc, gain1, gain1_value,
133 gain2, gain2_value, gain3, gain3_value,
134 gain4, gain4_value, rf_port_select);
135 }
136 private:
137 fmcomms5_source::sptr fmcomms5_block;
138
139 protected:
140 explicit fmcomms5_source_f32c(bool rx1_en, bool rx2_en,
141 bool rx3_en, bool rx4_en, fmcomms5_source::sptr block);
142 };
143
144 } // namespace iio
145} // namespace gr
146
147#endif /* INCLUDED_IIO_FMCOMMS5_SOURCE_H */
#define IIO_API
Definition api.h:19
fmcomms5_source_f32c(bool rx1_en, bool rx2_en, bool rx3_en, bool rx4_en, fmcomms5_source::sptr block)
std::shared_ptr< fmcomms5_source_f32c > sptr
Definition fmcomms5_source.h:93
static sptr make(const std::string &uri, unsigned long long frequency1, unsigned long long frequency2, unsigned long samplerate, unsigned long bandwidth, bool rx1_en, bool rx2_en, bool rx3_en, bool rx4_en, unsigned long buffer_size, bool quadrature, bool rfdc, bool bbdc, const char *gain1, double gain1_value, const char *gain2, double gain2_value, const char *gain3, double gain3_value, const char *gain4, double gain4_value, const char *rf_port_select, const char *filter="")
Definition fmcomms5_source.h:95
void set_params(unsigned long long frequency1, unsigned long long frequency2, unsigned long samplerate, unsigned long bandwidth, bool quadrature, bool rfdc, bool bbdc, const char *gain1, double gain1_value, const char *gain2, double gain2_value, const char *gain3, double gain3_value, const char *gain4, double gain4_value, const char *rf_port_select)
Definition fmcomms5_source.h:121
<+description of block+>
Definition fmcomms5_source.h:41
static sptr make_from(struct iio_context *ctx, unsigned long long frequency1, unsigned long long frequency2, unsigned long samplerate, unsigned long bandwidth, bool ch1_en, bool ch2_en, bool ch3_en, bool ch4_en, bool ch5_en, bool ch6_en, bool ch7_en, bool ch8_en, unsigned long buffer_size, bool quadrature, bool rfdc, bool bbdc, const char *gain1, double gain1_value, const char *gain2, double gain2_value, const char *gain3, double gain3_value, const char *gain4, double gain4_value, const char *rf_port_select, const char *filter="")
static sptr make(const std::string &uri, unsigned long long frequency1, unsigned long long frequency2, unsigned long samplerate, unsigned long bandwidth, bool ch1_en, bool ch2_en, bool ch3_en, bool ch4_en, bool ch5_en, bool ch6_en, bool ch7_en, bool ch8_en, unsigned long buffer_size, bool quadrature, bool rfdc, bool bbdc, const char *gain1, double gain1_value, const char *gain2, double gain2_value, const char *gain3, double gain3_value, const char *gain4, double gain4_value, const char *rf_port_select, const char *filter="")
Return a shared_ptr to a new instance of iio::device.
virtual void set_params(unsigned long long frequency1, unsigned long long frequency2, unsigned long samplerate, unsigned long bandwidth, bool quadrature, bool rfdc, bool bbdc, const char *gain1, double gain1_value, const char *gain2, double gain2_value, const char *gain3, double gain3_value, const char *gain4, double gain4_value, const char *rf_port_select)=0
std::shared_ptr< fmcomms5_source > sptr
Definition fmcomms5_source.h:43
Definition attr_sink.h:30
Definition attr_sink.h:29