![]() |
SoDaRadio-12.2.0-cut_dependencies:6c82803
|
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 –. | |
| 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. | |
| virtual bool | setRXFreq (double rx_freq, double avoid_freq, uhd::tune_result_t &tune_result)=0 |
| setRXFreq set the RX 1st LO frequency. | |
| virtual bool | setTXFreq (double tx_freq, double avoid_freq, uhd::tune_result_t &tune_result)=0 |
| setTXFreq set the TX 1st LO frequency. | |
| 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 SoDa::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? | |
| 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 | |
| unsigned int | debug_level |
| the debug level (threshold) for messages | |
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 std::mutex | debug_msg_mutex |
| Static Protected Attributes inherited from SoDa::Debug | |
| static unsigned int | default_debug_level |
| static unsigned int | global_debug_level |
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." |
References min_separation, SoDa::Debug::unit_name, and usrp.
Referenced by SoDa::IntNTuner::IntNTuner(), SoDa::SimpleTuner::SimpleTuner(), and makeTuner().
|
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. |
| 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. |
References USRPTuner(), min_separation, and usrp.
|
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::IntNTuner, and SoDa::SimpleTuner.
|
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::IntNTuner, and SoDa::SimpleTuner.
|
protected |
Definition at line 120 of file USRPTuner.hxx.
|
protected |
Definition at line 118 of file USRPTuner.hxx.
Referenced by SoDa::IntNTuner::IntNTuner(), USRPTuner(), and makeTuner().
|
protected |
Definition at line 119 of file USRPTuner.hxx.
Referenced by SoDa::IntNTuner::IntNTuner(), SoDa::SimpleTuner::SimpleTuner(), USRPTuner(), makeTuner(), SoDa::SimpleTuner::setRXFreq(), and SoDa::SimpleTuner::setTXFreq().