54#include <SoDa/ReSampler.hxx>
61#include <condition_variable>
76 auto ret = std::shared_ptr<PlutoTX>(
new PlutoTX(params));
78 ret->registerThread(ret);
102 void pushToHW(
const std::vector<std::complex<float>> & block);
105 void enqueue(std::vector<std::complex<float>> block);
125 std::vector<std::complex<float>>
accu;
126 std::vector<std::complex<float>>
rs_in;
127 std::vector<std::complex<float>>
hw_cf;
136 std::deque<std::vector<std::complex<float>>>
tx_queue;
The Baseclass for all SoDa objects, and useful commonly used classes.
bool transmitSwitch(bool tx_on) override
Arm or disarm the IIO TX stream.
static PlutoTXPtr make(ParamsPtr params)
std::vector< std::complex< float > > hw_cf
resampler output (2.5 MSPS)
std::weak_ptr< PlutoTX > self
static constexpr unsigned int N_KERNEL_BUFS
std::condition_variable tx_cv
void pushToHW(const std::vector< std::complex< float > > &block)
PlutoTX(ParamsPtr params)
bool put(CBufPtr buf) override
Accumulate complex<float> samples; when a full resampler block is available, interpolate 4:1 and push...
std::deque< std::vector< std::complex< float > > > tx_queue
void enqueue(std::vector< std::complex< float > > block)
RadioTXPtr getSelfPtr() override
SoDa::ReSamplerPtr hw_resampler
void init() override
Some initialization must occurr after all the components are created.
std::vector< std::complex< float > > accu
625 kSPS accumulator
std::vector< std::complex< float > > rs_in
resampler input block
static constexpr unsigned int MAX_SW_QUEUE
RadioTX(ParamsPtr params, const std::string &name)
Constructor for RF Transmit/modulator process.
std::shared_ptr< PlutoTX > PlutoTXPtr
std::shared_ptr< Params > ParamsPtr
std::shared_ptr< CBuf > CBufPtr
std::shared_ptr< RadioTX > RadioTXPtr