GNU Radio's OWC Package
PPM_Modulator_cplus.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_PPM_MODULATOR_CPLUS_H
25#define INCLUDED_OWC_PPM_MODULATOR_CPLUS_H
26
27#include <gnuradio/owc/api.h>
28#include <gnuradio/sync_interpolator.h>
29
30namespace gr {
31namespace owc {
32
33/*!
34 * \brief <+description of block+>
35 * \ingroup owc
36 *
37 */
38class OWC_API PPM_Modulator_cplus : virtual public gr::sync_interpolator {
39public:
40 typedef std::shared_ptr<PPM_Modulator_cplus> sptr;
41
42 /*!
43 * \brief Return a shared_ptr to a new instance of owc::PPM_Modulator_cplus.
44 *
45 * To avoid accidental use of raw pointers, owc::PPM_Modulator_cplus's
46 * constructor is in a private implementation
47 * class. owc::PPM_Modulator_cplus::make is the public interface for
48 * creating new instances.
49 */
50 static sptr make(float max_mag, float min_mag, int samples_per_symbol,
51 int samples_per_pulse, int modulation_order);
52
53 virtual void set_max_magnitude(float max_mag) = 0;
54 virtual float max_magnitude() = 0;
55
56 virtual void set_min_magnitude(float min_mag) = 0;
57 virtual float min_magnitude() = 0;
58
59};
60
61} // namespace owc
62} // namespace gr
63
64#endif /* INCLUDED_OWC_PPM_MODULATOR_CPLUS_H */
#define OWC_API
Definition api.h:19
<+description of block+>
Definition PPM_Modulator_cplus.h:38
static sptr make(float max_mag, float min_mag, int samples_per_symbol, int samples_per_pulse, int modulation_order)
Return a shared_ptr to a new instance of owc::PPM_Modulator_cplus.
virtual void set_min_magnitude(float min_mag)=0
std::shared_ptr< PPM_Modulator_cplus > sptr
Definition PPM_Modulator_cplus.h:40
virtual float min_magnitude()=0
virtual float max_magnitude()=0
virtual void set_max_magnitude(float max_mag)=0
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:31
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:30