GNU Radio's OWC Package
OWC_Channel_relative_cpvolk.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_RELATIVE_CPVOLK_H
9#define INCLUDED_OWC_OWC_CHANNEL_RELATIVE_CPVOLK_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_relative_cpvolk : virtual public gr::sync_block
23{
24public:
25 typedef std::shared_ptr<OWC_Channel_relative_cpvolk> sptr;
26
27 /*!
28 * \brief Return a shared_ptr to a new instance of owc::OWC_Channel_relative_cpvolk.
29 *
30 * To avoid accidental use of raw pointers, owc::OWC_Channel_relative_cpvolk's
31 * constructor is in a private implementation
32 * class. owc::OWC_Channel_relative_cpvolk::make is the public interface for
33 * creating new instances.
34 */
35 static sptr make(int num_inputs, int num_outputs, const std::vector<float>& emission_angle_array, const std::vector<float>& acceptance_angle_array, const std::vector<float>& distance_array, const std::vector<float>& lambertian_order_array, const std::vector<float>& 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);
36
37 virtual void set_emission_angle_array(std::vector<float> emission_angle_array) = 0;
38 virtual std::vector<float> emission_angle_array() = 0;
39
40 virtual void set_acceptance_angle_array(std::vector<float> acceptance_angle_array) = 0;
41 virtual std::vector<float> acceptance_angle_array() = 0;
42
43 virtual void set_distance_array(std::vector<float> distance_array) = 0;
44 virtual std::vector<float> distance_array() = 0;
45
46 virtual void set_lambertian_order_array(std::vector<float> lambertian_order_array) = 0;
47 virtual std::vector<float> lambertian_order_array() = 0;
48};
49
50} // namespace owc
51} // namespace gr
52
53#endif /* INCLUDED_OWC_OWC_CHANNEL_RELATIVE_CPVOLK_H */
#define OWC_API
Definition api.h:19
<+description of block+>
Definition OWC_Channel_relative_cpvolk.h:23
virtual void set_lambertian_order_array(std::vector< float > lambertian_order_array)=0
virtual void set_emission_angle_array(std::vector< float > emission_angle_array)=0
virtual std::vector< float > distance_array()=0
static sptr make(int num_inputs, int num_outputs, const std::vector< float > &emission_angle_array, const std::vector< float > &acceptance_angle_array, const std::vector< float > &distance_array, const std::vector< float > &lambertian_order_array, const std::vector< float > &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_relative_cpvolk.
virtual void set_distance_array(std::vector< float > distance_array)=0
virtual std::vector< float > emission_angle_array()=0
std::shared_ptr< OWC_Channel_relative_cpvolk > sptr
Definition OWC_Channel_relative_cpvolk.h:25
virtual std::vector< float > acceptance_angle_array()=0
virtual void set_acceptance_angle_array(std::vector< float > acceptance_angle_array)=0
virtual std::vector< float > lambertian_order_array()=0
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:31
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:30