RENEWLab  1.1.0
RENEW project
Radio.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2018-2022, Rice University
3  RENEW OPEN SOURCE LICENSE: http://renew-wireless.org/license
4 
5 */
6 
7 #include <SoapySDR/Device.hpp>
8 #include <SoapySDR/Time.hpp>
9 
10 #include "config.h"
11 
12 class Radio {
13  private:
14  SoapySDR::Device* dev;
15  SoapySDR::Stream* rxs;
16  SoapySDR::Stream* txs;
17  void reset_DATA_clk_domain(void);
18  void dev_init(Config* _cfg, int ch, double rxgain, double txgain);
19  friend class ClientRadioSet;
20  friend class BaseRadioSet;
21 
22  public:
23  Radio(const SoapySDR::Kwargs& args, const char soapyFmt[],
24  const std::vector<size_t>& channels);
25  ~Radio(void);
26  int recv(void* const* buffs, int samples, long long& frameTime);
27  int activateRecv(const long long rxTime = 0, const size_t numSamps = 0,
28  int flags = 0);
29  void deactivateRecv(void);
30  int xmit(const void* const* buffs, int samples, int flags,
31  long long& frameTime);
32  void activateXmit(void);
33  void deactivateXmit(void);
34  int getTriggers(void) const;
35  void drain_buffers(std::vector<void*> buffs, int symSamp);
36 };
Radio::Radio
Radio(const SoapySDR::Kwargs &args, const char soapyFmt[], const std::vector< size_t > &channels)
Definition: Radio.cc:95
iris_py.args
args
Definition: iris_py.py:349
Radio::reset_DATA_clk_domain
void reset_DATA_clk_domain(void)
Definition: Radio.cc:180
Radio::deactivateXmit
void deactivateXmit(void)
Definition: Radio.cc:174
Radio::txs
SoapySDR::Stream * txs
Definition: Radio.h:16
Radio::recv
int recv(void *const *buffs, int samples, long long &frameTime)
Definition: Radio.cc:120
Radio::xmit
int xmit(const void *const *buffs, int samples, int flags, long long &frameTime)
Definition: Radio.cc:153
Radio::deactivateRecv
void deactivateRecv(void)
Definition: Radio.cc:151
Radio::dev
SoapySDR::Device * dev
Definition: Radio.h:14
Radio::activateXmit
void activateXmit(void)
Definition: Radio.cc:166
Radio
Definition: Radio.h:12
samples
end Rx payload processing Extract the payload samples(integral number of OFDM symbols following preamble) payload_vec
Radio::getTriggers
int getTriggers(void) const
Definition: Radio.cc:176
Radio::activateRecv
int activateRecv(const long long rxTime=0, const size_t numSamps=0, int flags=0)
Definition: Radio.cc:137
Radio::~Radio
~Radio(void)
Definition: Radio.cc:112
Config
Definition: config.h:20
BaseRadioSet
Definition: BaseRadioSet.h:16
Radio::dev_init
void dev_init(Config *_cfg, int ch, double rxgain, double txgain)
Definition: Radio.cc:18
config.h
txgain
ue_sdr_params txgain
Definition: rl_ofdm_mimo.m:196
ClientRadioSet
Definition: ClientRadioSet.h:12
Radio::rxs
SoapySDR::Stream * rxs
Definition: Radio.h:15
Radio::drain_buffers
void drain_buffers(std::vector< void * > buffs, int symSamp)
Definition: Radio.cc:76