47 #include <uhd/utils/thread_priority.hpp> 48 #include <uhd/utils/safe_main.hpp> 49 #include <uhd/usrp/multi_usrp.hpp> 50 #include <uhd/usrp/dboard_base.hpp> 51 #include <uhd/types/tune_request.hpp> 52 #include <uhd/types/tune_result.hpp> 53 #include <uhd/utils/msg.hpp> 124 uhd::tune_result_t
checkLock(uhd::tune_request_t & req,
126 uhd::tune_result_t & cur);
165 uhd::usrp::multi_usrp::sptr
usrp;
268 uhd::tune_request_t * tune_req);
uhd::usrp::multi_usrp::sptr usrp
to which USRP unit is this connected?
bool rx_fe_has_enable
can we access rx_fe_subtree/enabled ?
The Baseclass for all SoDa objects, and useful commonly used classes.
SoDa::PropTree * tx_fe_subtree
property tree from daughtercard module
static SoDa::USRPCtrl * singleton_ctrl_obj
This is a singleton object – the last (and only, we hope) such object to be created sets a static po...
bool is_B2xx
The B200 and B210 need some special handling, as they don't have frontend lock indications (as of 3...
The Thread baseclass for all SoDa thread objects.
uhd::usrp::multi_usrp::sptr getUSRP()
return a pointer to the multi_usrp object – used by RX and TX processes to find the associated USRP ...
double tvrt_lo_fe_freq
the frequency of the second transmit channel front-end oscillator
SoDa::TRControl * tr_control
external control widget for TR switching and other things.
uhd::tune_result_t last_tx_tune_result
TX tune result.
bool tx_has_lo_locked_sensor
does the tx frond end have an lo_locked sensor?
void disableTransverterLO()
Though libuhd is designed to be re-entrant, there are some indications that all control functions (se...
std::string motherboard_name
The model name of the USRP unit.
void execGetCommand(Command *cmd)
Dispatch an incoming GET command.
static const double rxmode_offset
tx offset when in RX mode
double tx_samp_rate
sample rate to USRP TX chain.
bool getTXRelayOn()
get the state of the TX relay confirm bit
uhd::tune_result_t saved_rx_tune_result
previous RX tune result – used for transverter LO "calibration" function
void enableTransverterLO()
uhd::freq_range_t tx_rf_freq_range
property of the device – what is the min/maximum TX frequency?
This class handles command line parameters and built-ins.
double rx_rf_gain
rf gain for RX front end amp/attenuator
Generic Control class to activate T/R switching, band switching, and other control functions...
PropTree class encapsulates the USRP property tree functions to allow better trap and error recovery ...
bool supports_IntN_Mode
if true, this unit can tune the front-end LO
bool tvrt_lo_capable
if true, this unit can implement a local transverter oscillator.
double getTime()
get the number of seconds since the "Epoch"
bool tx_on
if true, we are transmitting.
uhd::tune_result_t last_rx_tune_result
RX tune result – actual LO and DSP freq.
void set1stLOFreq(double freq, char sel, bool set_if_freq=false)
Set the front-end (LO + DDS) frequency to 'freq' This includes setting the PLL front end synthesizer ...
static void normal_message_handler(uhd::msg::type_t type, const std::string &msg)
This is the more permanent message handler...
void reportAntennas()
report the antennas that are available, send the report on cmd_stream
double tx_freq
remember current tx freq
void setTXEna(bool val)
turn TX on/off
This is a list of all the commands that can "do something" to one or more components in the SoDa radi...
void applyTargetFreqCorrection(double target_freq, double avoid_freq, uhd::tune_request_t *tune_req)
applyTargetFreqCorrection adjusts the requested frequency, if necessary, to avoid a birdie caused by ...
double tx_rf_gain
rf gain for final TX amp
double tx_freq_rxmode_offset
when in RX mode, move tx off frequency to put the tx birdie out of band, when in TX mode...
bool debug_mode
print stuff when we are in debug mode
bool tx_fe_has_enable
can we access tx_fe_subtree/enabled ?
void setTransverterLOFreqPower(double freq, double power)
set the transverter LO frequency and power This code does not work for libUHD after 3...
uhd::gain_range_t tx_rf_gain_range
property of the device – what is the min/maximum TX gain setting?
void reportAFFilters()
report the audio filters that are implemented, send the report on cmd_stream
bool supports_tx_gpio
does this unit support GPIO signals? (B2xx does not as of 3.7.0)
bool getTXEna()
get the state of the TXEna bit
uhd::usrp::dboard_iface::sptr dboard
the daughterboard we're controlling
double first_gettime
timestamps are relative to the first timestamp.
static const unsigned int TX_RELAY_MON
mask for RELAY sense bit
void initControlGPIO()
Initialize the GPIO control registers to set the direction and enables for the TX/RX relay output and...
void testIntNMode(bool force_int_N, bool force_frac_N)
Test for support for integer-N synthesis.
double last_rx_req_freq
remember the last setting – useful for "calibration check"
void reportModes()
report the modulation modes that are implemented, send the report on cmd_stream
static const unsigned int TX_RELAY_CTL
we use TX_IO bit 12 to turn on the TX relay we use TX_IO bit 11 to monitor the TX relay ...
bool tvrt_lo_mode
if true, set the transmit frequency, with some knowledge of the tvrt LO.
void setTXFrontEndEnable(bool val)
set TX enable property on front-end module – not present in all daughtercards... ...
double tvrt_lo_freq
the frequency of the second transmit channel oscillator
unsigned int subid
subscriber ID for this thread's connection to the command channel
bool rx_has_lo_locked_sensor
does the rx frond end have an lo_locked sensor?
double tvrt_lo_gain
output power for the second transmit channel (used for transverter LO)
uhd::freq_range_t rx_rf_freq_range
property of the device – what is the min/maximum RX frequency?
std::string tx_ant
TX antenna choice (usually has to be TX or TX/RX1?
void run()
start the thread
CmdMBox * cmd_stream
command stream channel
SoDa::PropTree * rx_fe_subtree
property tree from daughtercard module
USRPCtrl(Params *params, CmdMBox *_cmd_stream)
Constructor Build a USRPCtrl thread.
uhd::gain_range_t rx_rf_gain_range
property of the device – what is the min/maximum RX gain setting?
void execRepCommand(Command *cmd)
Dispatch an incoming REPort command.
void setAntenna(const std::string &ant, char sel)
Set the antenna choice.
void execSetCommand(Command *cmd)
Dispatch an incoming SET command.
uhd::tune_result_t checkLock(uhd::tune_request_t &req, char sel, uhd::tune_result_t &cur)
is the identified (rx or tx) front-end LO locked? If not, set the tuning frequency to "the right thin...
void execCommand(Command *cmd)
Parse an incoming command and dispatch.
bool is_B210
the B210 has two tx channels – use the second for a Transverter LO – see USRPLO ...