GNU Radio's OWC Package
VPPM_Modulator_cplus_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/* gr-owc OOT module for optical wireless communications.
3 * gr-owc is compatible with GNU Radio v3.10
4 *
5 * Copyright 2024 Kunal Sangurmath from Ubiquitous Communications and Networking (UCAN) Lab, University of Massachusetts, Boston.
6 *
7 * This is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this software; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 *
22 */
23
24#ifndef INCLUDED_OWC_VPPM_MODULATOR_CPLUS_IMPL_H
25#define INCLUDED_OWC_VPPM_MODULATOR_CPLUS_IMPL_H
26
28
29namespace gr {
30namespace owc {
31
33private:
34 float d_max_magnitude;
35 float d_min_magnitude;
36 int d_samples_per_symbol;
37 int d_samples_per_pulse;
38
39public:
40 VPPM_Modulator_cplus_impl(float max_mag, float min_mag, int samples_per_symbol,
43
44 void set_max_magnitude(float max_mag) { d_max_magnitude = max_mag;}
45 float max_magnitude() { return d_max_magnitude; }
46
47 void set_min_magnitude(float min_mag) { d_min_magnitude = min_mag;}
48 float min_magnitude() { return d_min_magnitude; }
49
51 int samples_per_symbol() { return d_samples_per_symbol; }
52
53 void set_samples_per_pulse(int samples_per_pulse) { d_samples_per_pulse = samples_per_pulse;}
54 int samples_per_pulse() { return d_samples_per_pulse; }
55
56 // Where all the action really happens
57 int work(int noutput_items, gr_vector_const_void_star &input_items,
58 gr_vector_void_star &output_items);
59};
60
61} // namespace owc
62} // namespace gr
63
64#endif /* INCLUDED_OWC_VPPM_MODULATOR_CPLUS_IMPL_H */
void set_max_magnitude(float max_mag)
Definition VPPM_Modulator_cplus_impl.h:44
float min_magnitude()
Definition VPPM_Modulator_cplus_impl.h:48
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
int samples_per_symbol()
Definition VPPM_Modulator_cplus_impl.h:51
VPPM_Modulator_cplus_impl(float max_mag, float min_mag, int samples_per_symbol, int samples_per_pulse)
void set_samples_per_symbol(int samples_per_symbol)
Definition VPPM_Modulator_cplus_impl.h:50
int samples_per_pulse()
Definition VPPM_Modulator_cplus_impl.h:54
void set_samples_per_pulse(int samples_per_pulse)
Definition VPPM_Modulator_cplus_impl.h:53
void set_min_magnitude(float min_mag)
Definition VPPM_Modulator_cplus_impl.h:47
float max_magnitude()
Definition VPPM_Modulator_cplus_impl.h:45
<+description of block+>
Definition VPPM_Modulator_cplus.h:38
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:31
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:30