GNU Radio's OWC Package
OWC_Channel_absolute_cvolk.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2024 Kunal Sangurmath from The Ubiquitous Communications and Networking(UCAN) Lab, University of Massachusetts, Boston.
4 *
5 * SPDX-License-Identifier: GPL-3.0-or-later
6 */
7
8#ifndef INCLUDED_OWC_OWC_CHANNEL_ABSOLUTE_CVOLK_H
9#define INCLUDED_OWC_OWC_CHANNEL_ABSOLUTE_CVOLK_H
10
11#include <gnuradio/owc/api.h>
12#include <gnuradio/sync_block.h>
13
14namespace gr {
15namespace owc {
16
17/*!
18 * \brief <+description of block+>
19 * \ingroup owc
20 *
21 */
22class OWC_API OWC_Channel_absolute_cvolk : virtual public gr::sync_block {
23public:
24 typedef std::shared_ptr<OWC_Channel_absolute_cvolk> sptr;
25
26 /*!
27 * \brief Return a shared_ptr to a new instance of
28 * owc::OWC_Channel_absolute_cvolk.
29 *
30 * To avoid accidental use of raw pointers, owc::OWC_Channel_absolute_cvolk's
31 * constructor is in a private implementation
32 * class. owc::OWC_Channel_absolute_cvolk::make is the public interface for
33 * creating new instances.
34 */
35 static sptr make(
36 int num_inputs, int num_outputs, const std::vector<float>& tx_coordinates_array, const std::vector<float>& tx_orientation_array, const std::vector<float>& rx_coordinates_array, const std::vector<float>& rx_orientation_array, const std::vector<float>& tx_lambertian_order_array, const std::vector<float>& rx_photosensor_area_array, const std::vector<float>& optical_filter_transmittance_array, const std::vector<float>& refractive_index_array, bool clip_neg, bool shot_noise, float sample_rate, float responsivity, const std::vector<float>& concentrator_FOV_array, const std::vector<float>& E2O_conversion_factor_array, const std::vector<float>& O2E_conversion_factor_array);
37
38 virtual void set_tx_coordinates_array(std::vector<float> tx_coordinates_array) = 0;
39 virtual std::vector<float> tx_coordinates_array() = 0;
40
41 virtual void set_tx_orientation_array(std::vector<float> tx_orientation_array) = 0;
42 virtual std::vector<float> tx_orientation_array() = 0;
43
44 virtual void set_rx_coordinates_array(std::vector<float> rx_coordinates_array) = 0;
45 virtual std::vector<float> rx_coordinates_array() = 0;
46
47 virtual void set_rx_orientation_array(std::vector<float> rx_orientation_array) = 0;
48 virtual std::vector<float> rx_orientation_array() = 0;
49
50 virtual void set_tx_lambertian_order_array(std::vector<float> lambertian_order_array) = 0;
51 virtual std::vector<float> tx_lambertian_order_array() = 0;
52};
53
54} // namespace owc
55} // namespace gr
56
57#endif /* INCLUDED_OWC_OWC_CHANNEL_ABSOLUTE_CVOLK_H */
#define OWC_API
Definition api.h:19
<+description of block+>
Definition OWC_Channel_absolute_cvolk.h:22
virtual void set_tx_lambertian_order_array(std::vector< float > lambertian_order_array)=0
virtual std::vector< float > tx_lambertian_order_array()=0
virtual std::vector< float > rx_coordinates_array()=0
virtual void set_tx_orientation_array(std::vector< float > tx_orientation_array)=0
virtual void set_rx_orientation_array(std::vector< float > rx_orientation_array)=0
virtual void set_tx_coordinates_array(std::vector< float > tx_coordinates_array)=0
virtual std::vector< float > tx_coordinates_array()=0
virtual std::vector< float > tx_orientation_array()=0
virtual std::vector< float > rx_orientation_array()=0
std::shared_ptr< OWC_Channel_absolute_cvolk > sptr
Definition OWC_Channel_absolute_cvolk.h:24
virtual void set_rx_coordinates_array(std::vector< float > rx_coordinates_array)=0
static sptr make(int num_inputs, int num_outputs, const std::vector< float > &tx_coordinates_array, const std::vector< float > &tx_orientation_array, const std::vector< float > &rx_coordinates_array, const std::vector< float > &rx_orientation_array, const std::vector< float > &tx_lambertian_order_array, const std::vector< float > &rx_photosensor_area_array, const std::vector< float > &optical_filter_transmittance_array, const std::vector< float > &refractive_index_array, bool clip_neg, bool shot_noise, float sample_rate, float responsivity, const std::vector< float > &concentrator_FOV_array, const std::vector< float > &E2O_conversion_factor_array, const std::vector< float > &O2E_conversion_factor_array)
Return a shared_ptr to a new instance of owc::OWC_Channel_absolute_cvolk.
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:31
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:30