diff options
author | Mark Meserve <mark.meserve@ni.com> | 2018-11-30 16:16:36 -0600 |
---|---|---|
committer | Brent Stapleton <bstapleton@g.hmc.edu> | 2018-12-04 12:38:19 -0800 |
commit | 2595e40b582e963c2bdce2fe61f6ad64504d26c7 (patch) | |
tree | 79fa249977e4ce6c25f57e80f89a4db88c970276 /host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp | |
parent | 1467e88d1916af392a831cb4be6a162df4a78a4f (diff) | |
download | uhd-2595e40b582e963c2bdce2fe61f6ad64504d26c7.tar.gz uhd-2595e40b582e963c2bdce2fe61f6ad64504d26c7.tar.bz2 uhd-2595e40b582e963c2bdce2fe61f6ad64504d26c7.zip |
rh: add handling for "all" lo
- Adds "all" LO properties.
- Adds handling of "all" value in all LO functions.
- Re-adds value_error exceptions for illegal settings of LO2, which previously
caused issues when the "all" LO was used from multi_usrp.
Diffstat (limited to 'host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp')
-rw-r--r-- | host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp b/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp index 28e5eb3a6..198691e17 100644 --- a/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp +++ b/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp @@ -577,6 +577,28 @@ void rhodium_radio_ctrl_impl::_init_frontend_subtree( .add_coerced_subscriber([this,chan_idx](bool enabled){ this->set_rx_lo_export_enabled(enabled, RHODIUM_LO2, chan_idx); }); + //RX ALL LOs + subtree->create<std::string>(rx_fe_path / "los" / ALL_LOS / "source/value") + .add_coerced_subscriber([this,chan_idx](std::string src) { + this->set_rx_lo_source(src, ALL_LOS, chan_idx); + }) + .set_publisher([this,chan_idx]() { + return this->get_rx_lo_source(ALL_LOS, chan_idx); + }) + ; + subtree->create<std::vector<std::string>>(rx_fe_path / "los" / ALL_LOS / "source/options") + .set_publisher([this, chan_idx]() { + return this->get_rx_lo_sources(ALL_LOS, chan_idx); + }) + ; + subtree->create<bool>(rx_fe_path / "los" / ALL_LOS / "export") + .add_coerced_subscriber([this,chan_idx](bool enabled){ + this->set_rx_lo_export_enabled(enabled, ALL_LOS, chan_idx); + }) + .set_publisher([this,chan_idx](){ + return this->get_rx_lo_export_enabled(ALL_LOS, chan_idx); + }) + ; //TX LO //TX LO1 Frequency subtree->create<double>(tx_fe_path / "los"/RHODIUM_LO1/"freq/value ") @@ -680,6 +702,28 @@ void rhodium_radio_ctrl_impl::_init_frontend_subtree( this->set_tx_lo_export_enabled(enabled, RHODIUM_LO2, chan_idx); }) ; + //TX ALL LOs + subtree->create<std::string>(tx_fe_path / "los" / ALL_LOS / "source/value") + .add_coerced_subscriber([this,chan_idx](std::string src) { + this->set_tx_lo_source(src, ALL_LOS, chan_idx); + }) + .set_publisher([this,chan_idx]() { + return this->get_tx_lo_source(ALL_LOS, chan_idx); + }) + ; + subtree->create<std::vector<std::string>>(tx_fe_path / "los" / ALL_LOS / "source/options") + .set_publisher([this, chan_idx]() { + return this->get_tx_lo_sources(ALL_LOS, chan_idx); + }) + ; + subtree->create<bool>(tx_fe_path / "los" / ALL_LOS / "export") + .add_coerced_subscriber([this,chan_idx](bool enabled){ + this->set_tx_lo_export_enabled(enabled, ALL_LOS, chan_idx); + }) + .set_publisher([this,chan_idx](){ + return this->get_tx_lo_export_enabled(ALL_LOS, chan_idx); + }) + ; //LO Distribution Output Ports if (_lo_dist_present) { |