40#include <SoDa/MailBox.hxx>
41#include <SoDa/ReSampler.hxx>
42#include <SoDa/OSFilter.hxx>
77 ret->registerThread(ret);
116 bool is_usb,
bool is_lsb);
The Baseclass for all SoDa objects, and useful commonly used classes.
The Baseclass for all SoDa thread objects.
void execGetCommand(CommandPtr cmd)
execute GET commands from the command channel
bool tx_audio_filter_ena
There is an audio filter in the chain, by default.
void execSetCommand(CommandPtr cmd)
handle SET commands from the command channel
double wbfm_deviation
phase advance for 75kHz deviation
SoDa::HilbertTransformerPtr hilbert
The hilbert transformer to create an analytic (I/Q) signal.
SoDa::ReSamplerPtr interpolator
Upsample from 48KHz to 625KHz.
bool debug_mode
if true, print extra debug info
void subscribeToMailBoxes(const std::vector< MailBoxBasePtr > &mailboxes)
implement the subscription method
double fm_mic_gain
separate gain control for FM deviation....
CDatMBoxPtr tx_stream
outbound RF stream to USRPTX transmit chain
void run()
the run method – does the work of the audio transmitter process
std::vector< float > noise_buffer
This is a buffer that holds a set of "noise" samples (uniform random) for testing the TX audio chain.
float mic_gain
mic gain is adjustable, to make sure we aren't noxious.
BaseBandTX(ParamsPtr params, AudioIfcPtr audio_ifc)
constructor
unsigned int audio_buffer_size
length (in samples) of an input audio buffer
static BaseBandTXPtr make(ParamsPtr params, AudioIfcPtr audio_ifc)
SoDa::Command::ModulationType tx_mode
what modulation scheme? USB? LSB? CW_U?...
double audio_sample_rate
wired in lots of places as 48KHz
CmdMBox::Subscription cmd_subs
subscription ID for command stream
unsigned int tx_buffer_size
how long is the outbound RF buffer
bool cw_tx_mode
if true, tx_mode is CW_L or CW_U
std::vector< std::complex< float > > audio_IQ_buf
temporary storage for outbound modulation envelope
bool tx_noise_source_ena
When this is TRUE, audio modes (USB,LSB,AM,NBFM,WBFM) use a noise source for input.
bool tx_stream_on
if true, we are transmitting.
float af_gain
local microphone gain.
double nbfm_deviation
phase advance for 2.5kHz deviation.
AudioIfcPtr audio_ifc
pointer to an AudioIfc object for the microphone input
CmdMBoxPtr cmd_stream
command stream from UI and other units
SoDa::CBufPtr modulateFM(std::vector< float > &audio_buf, double deviation)
create a narrowband/wideband FM modulation envelope
SoDa::CBufPtr modulateAM(std::vector< float > &audio_buf, bool is_usb, bool is_lsb)
create an AM/SSB modulation envelope
void execRepCommand(CommandPtr cmd)
handle Report commands from the command channel
bool tx_on
set by Command::TX_STATE to on or off
SoDa::OSFilterPtr tx_audio_filter
TX audio filter.
ModulationType
modulation selector targets take one of these values
The Thread baseclass for all SoDa thread objects.
std::shared_ptr< HilbertTransformer > HilbertTransformerPtr
std::shared_ptr< Params > ParamsPtr
std::shared_ptr< Command > CommandPtr
std::shared_ptr< AudioIfc > AudioIfcPtr
std::shared_ptr< CmdMBox > CmdMBoxPtr
std::shared_ptr< CDatMBox > CDatMBoxPtr
std::shared_ptr< CBuf > CBufPtr
std::weak_ptr< BaseBandTX > BaseBandTXWeakPtr
std::shared_ptr< BaseBandTX > BaseBandTXPtr