SoDaRadio-5.0.3-master:8901fb5
|
Generic class for TX and RX tuning. More...
#include <USRPTuner.hxx>
Public Member Functions | |
USRPTuner (uhd::usrp::multi_usrp::sptr usrp, double min_separation, std::string unit_name=std::string("USRPTuner")) | |
Constructor –. More... | |
USRPTuner * | makeTuner (uhd::usrp::multi_usrp::sptr usrp, double min_separation, bool force_fracN=false, bool force_simple=false) |
Factory to build a particular subclass of USRPTuner based on the detected front-end module. More... | |
virtual bool | setRXFreq (double rx_freq, double avoid_freq, uhd::tune_result_t &tune_result)=0 |
setRXFreq set the RX 1st LO frequency. More... | |
virtual bool | setTXFreq (double tx_freq, double avoid_freq, uhd::tune_result_t &tune_result)=0 |
setTXFreq set the TX 1st LO frequency. More... | |
Public Member Functions inherited from SoDa::Debug | |
Debug (std::string _unit_name=std::string("UNKNOWN")) | |
Debug (const char *_unit_name_cstr) | |
Debug (unsigned int _debug_level, std::string _unit_name=std::string("UNKNOWN")) | |
Debug (unsigned int _debug_level, const char *_unit_name_cstr) | |
void | debugMsg (const std::string &msg, unsigned int threshold=1) |
void | debugMsg (const boost::format &fmt, unsigned int threshold=1) |
void | debugMsg (const char *msg, unsigned int threshold=1) |
void | setDebugLevel (unsigned int v) |
unsigned int | getDebugLevel () |
Protected Member Functions | |
virtual bool | 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 thing" More... | |
Protected Member Functions inherited from SoDa::Debug | |
std::string | curDateTime () |
Protected Attributes | |
double | min_separation |
uhd::usrp::multi_usrp::sptr | usrp |
bool | has_lock_detect |
Protected Attributes inherited from SoDa::Debug | |
std::string | unit_name |
the name of the unit reporting status More... | |
unsigned int | debug_level |
the debug level (threshold) for messages More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from SoDa::Debug | |
static void | setDefaultLevel (unsigned int v) |
static unsigned int | getDefaultLevel () |
static void | setGlobalLevel (unsigned int v) |
static unsigned int | getGlobalLevel () |
Static Public Attributes inherited from SoDa::Debug | |
static boost::mutex | debug_msg_mutex |
Static Protected Attributes inherited from SoDa::Debug | |
static unsigned int | default_debug_level = 0 |
static unsigned int | global_debug_level = 0 |
Generic class for TX and RX tuning.
This is specialized for each of the daughtercard modules that needs specialization. The base class implements the standard tuning interface (typically fractional-N).
Definition at line 62 of file USRPTuner.hxx.
SoDa::USRPTuner::USRPTuner | ( | uhd::usrp::multi_usrp::sptr | usrp, |
double | min_separation, | ||
std::string | unit_name = std::string("USRPTuner") |
||
) |
Constructor –.
unit_name | the name of this tuner |
usrp | a pointer to the USRP object that owns this tuner |
min_separation | where possible, the LO frequency should be at least min_separation Hz from a specified "avoid_frequency." |
do nothing here, just remember our separation spec.
Definition at line 57 of file USRPTuner.cxx.
References has_lock_detect, min_separation, and usrp.
|
protectedvirtual |
is the identified (rx or tx) front-end LO locked? If not, set the tuning frequency to "the right thing"
req | the requested frequency (and tuning discipline) |
sel | 'r' for RX LO, 't' for TX LO |
cur | tuning result, if the LO was locked. |
Definition at line 121 of file USRPTuner.cxx.
References SoDa::Debug::debugMsg(), has_lock_detect, and usrp.
Referenced by SoDa::IntNTuner::setRXFreq(), and SoDa::IntNTuner::setTXFreq().
USRPTuner* SoDa::USRPTuner::makeTuner | ( | uhd::usrp::multi_usrp::sptr | usrp, |
double | min_separation, | ||
bool | force_fracN = false , |
||
bool | force_simple = false |
||
) |
Factory to build a particular subclass of USRPTuner based on the detected front-end module.
usrp | a pointer to the USRP object that owns this tuner |
min_separation | where possible, the LO frequency should be at least min_separation Hz from a specified "avoid_frequency." |
force_fracN | if true, turn off intN tuning mode even if it supported, |
force_simple | if true, use the simplest version of the tuner. |
|
pure virtual |
setRXFreq set the RX 1st LO frequency.
Where possible, the chosen frequency should be separated from the avoid_freq by the amount specified when we created this tuning object.
rx_freq | the target frequency of interest |
avoid_freq | the frequency that we must avoid by at least min_sep |
tune_result | the response from the UHD set_xx_freq request |
Implemented in SoDa::SimpleTuner, and SoDa::IntNTuner.
Referenced by SoDa::IntNTuner::IntNTuner().
|
pure virtual |
setTXFreq set the TX 1st LO frequency.
Where possible, the chosen frequency should be separated from the avoid_freq by the amount specified when we created this tuning object.
tx_freq | the target frequency of interest |
avoid_freq | the frequency that we must avoid by at least min_sep |
tune_result | the response from the UHD set_xx_freq request |
Implemented in SoDa::SimpleTuner, and SoDa::IntNTuner.
Referenced by SoDa::IntNTuner::IntNTuner().
|
protected |
Definition at line 120 of file USRPTuner.hxx.
Referenced by checkLock(), and USRPTuner().
|
protected |
Definition at line 118 of file USRPTuner.hxx.
Referenced by USRPTuner().
|
protected |
Definition at line 119 of file USRPTuner.hxx.
Referenced by checkLock(), SoDa::IntNTuner::setRXFreq(), SoDa::SimpleTuner::setRXFreq(), SoDa::IntNTuner::setTXFreq(), SoDa::SimpleTuner::setTXFreq(), and USRPTuner().