host: fix Boost warnings due to global placeholders

This commit is contained in:
Dmitry Sharshakov
2023-11-12 10:12:23 +03:00
committed by Alexander Chemeris
parent bac43dcb6c
commit 966d38e710
4 changed files with 66 additions and 66 deletions

View File

@@ -32,7 +32,7 @@
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
#include <boost/function.hpp> #include <boost/function.hpp>
#include <boost/format.hpp> #include <boost/format.hpp>
#include <boost/bind.hpp> #include <boost/bind/bind.hpp>
#include <boost/make_shared.hpp> #include <boost/make_shared.hpp>
#include <boost/thread/barrier.hpp> #include <boost/thread/barrier.hpp>
#include <iostream> #include <iostream>

View File

@@ -30,7 +30,7 @@
#include <boost/asio.hpp> //used for htonl and ntohl #include <boost/asio.hpp> //used for htonl and ntohl
#include <boost/assign/list_of.hpp> #include <boost/assign/list_of.hpp>
#include <boost/format.hpp> #include <boost/format.hpp>
#include <boost/bind.hpp> #include <boost/bind/bind.hpp>
#include <boost/tokenizer.hpp> #include <boost/tokenizer.hpp>
#include <boost/functional/hash.hpp> #include <boost/functional/hash.hpp>
#include <algorithm> #include <algorithm>

View File

@@ -21,7 +21,7 @@
#include "umtrx_log_adapter.hpp" #include "umtrx_log_adapter.hpp"
#include "cores/apply_corrections.hpp" #include "cores/apply_corrections.hpp"
#include <uhd/utils/log.hpp> #include <uhd/utils/log.hpp>
#include <boost/bind.hpp> #include <boost/bind/bind.hpp>
#include <boost/thread.hpp> //sleep #include <boost/thread.hpp> //sleep
#include <boost/assign/list_of.hpp> #include <boost/assign/list_of.hpp>
#include <boost/utility.hpp> #include <boost/utility.hpp>
@@ -107,7 +107,7 @@ template <typename T> property<T> &property_alias(uhd::property_tree::sptr &_tre
{ {
// By default route each chanel to its own antenna // By default route each chanel to its own antenna
return _tree->create<T>(alias) return _tree->create<T>(alias)
.subscribe(boost::bind(&uhd::property<T>::set, boost::ref(_tree->access<T>(orig)), _1)) .subscribe(boost::bind(&uhd::property<T>::set, boost::ref(_tree->access<T>(orig)), boost::placeholders::_1))
.publish(boost::bind(&uhd::property<T>::get, boost::ref(_tree->access<T>(orig)))); .publish(boost::bind(&uhd::property<T>::get, boost::ref(_tree->access<T>(orig))));
} }
@@ -266,23 +266,23 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
_ctrl = umtrx_fifo_ctrl::make(this->make_xport(UMTRX_CTRL_FRAMER, device_addr_t()), UMTRX_CTRL_SID, fifo_ctrl_window); _ctrl = umtrx_fifo_ctrl::make(this->make_xport(UMTRX_CTRL_FRAMER, device_addr_t()), UMTRX_CTRL_SID, fifo_ctrl_window);
_ctrl->peek32(0); //test readback _ctrl->peek32(0); //test readback
_tree->create<time_spec_t>(mb_path / "time/cmd") _tree->create<time_spec_t>(mb_path / "time/cmd")
.subscribe(boost::bind(&umtrx_fifo_ctrl::set_time, _ctrl, _1)); .subscribe(boost::bind(&umtrx_fifo_ctrl::set_time, _ctrl, boost::placeholders::_1));
_tree->create<double>(mb_path / "tick_rate") _tree->create<double>(mb_path / "tick_rate")
.subscribe(boost::bind(&umtrx_fifo_ctrl::set_tick_rate, _ctrl, _1)); .subscribe(boost::bind(&umtrx_fifo_ctrl::set_tick_rate, _ctrl, boost::placeholders::_1));
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// setup the mboard eeprom // setup the mboard eeprom
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
_tree->create<mboard_eeprom_t>(mb_path / "eeprom") _tree->create<mboard_eeprom_t>(mb_path / "eeprom")
.set(_iface->mb_eeprom) .set(_iface->mb_eeprom)
.subscribe(boost::bind(&umtrx_impl::set_mb_eeprom, this, _iface, _1)); .subscribe(boost::bind(&umtrx_impl::set_mb_eeprom, this, _iface, boost::placeholders::_1));
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
// create clock control objects // create clock control objects
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
_tree->access<double>(mb_path / "tick_rate") _tree->access<double>(mb_path / "tick_rate")
.publish(boost::bind(&umtrx_impl::get_master_clock_rate, this)) .publish(boost::bind(&umtrx_impl::get_master_clock_rate, this))
.subscribe(boost::bind(&umtrx_impl::update_tick_rate, this, _1)); .subscribe(boost::bind(&umtrx_impl::update_tick_rate, this, boost::placeholders::_1));
_tree->create<double>(mb_path / "dsp_rate") _tree->create<double>(mb_path / "dsp_rate")
.publish(boost::bind(&umtrx_impl::get_master_dsp_rate, this)); .publish(boost::bind(&umtrx_impl::get_master_dsp_rate, this));
@@ -336,13 +336,13 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
// note: the control is also aliased to RF frontend later // note: the control is also aliased to RF frontend later
_tree->create<bool>(mb_path / "divsw1") _tree->create<bool>(mb_path / "divsw1")
.subscribe(boost::bind(&umtrx_impl::set_diversity, this, _1, 0)) .subscribe(boost::bind(&umtrx_impl::set_diversity, this, boost::placeholders::_1, 0))
.set(device_addr.cast<bool>("divsw1", false)); .set(device_addr.cast<bool>("divsw1", false));
UHD_MSG(status) << "Diversity switch for channel 1: " UHD_MSG(status) << "Diversity switch for channel 1: "
<< (_tree->access<bool>(mb_path / "divsw1").get()?"true":"false") << (_tree->access<bool>(mb_path / "divsw1").get()?"true":"false")
<< std::endl; << std::endl;
_tree->create<bool>(mb_path / "divsw2") _tree->create<bool>(mb_path / "divsw2")
.subscribe(boost::bind(&umtrx_impl::set_diversity, this, _1, 1)) .subscribe(boost::bind(&umtrx_impl::set_diversity, this, boost::placeholders::_1, 1))
.set(device_addr.cast<bool>("divsw2", false)); .set(device_addr.cast<bool>("divsw2", false));
UHD_MSG(status) << "Diversity switch for channel 2: " UHD_MSG(status) << "Diversity switch for channel 2: "
<< (_tree->access<bool>(mb_path / "divsw2").get()?"true":"false") << (_tree->access<bool>(mb_path / "divsw2").get()?"true":"false")
@@ -425,9 +425,9 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
_tx_fes[1] = tx_frontend_core_200::make(_ctrl, U2_REG_SR_ADDR(SR_TX_FRONT1)); _tx_fes[1] = tx_frontend_core_200::make(_ctrl, U2_REG_SR_ADDR(SR_TX_FRONT1));
_tree->create<subdev_spec_t>(mb_path / "rx_subdev_spec") _tree->create<subdev_spec_t>(mb_path / "rx_subdev_spec")
.subscribe(boost::bind(&umtrx_impl::update_rx_subdev_spec, this, _1)); .subscribe(boost::bind(&umtrx_impl::update_rx_subdev_spec, this, boost::placeholders::_1));
_tree->create<subdev_spec_t>(mb_path / "tx_subdev_spec") _tree->create<subdev_spec_t>(mb_path / "tx_subdev_spec")
.subscribe(boost::bind(&umtrx_impl::update_tx_subdev_spec, this, _1)); .subscribe(boost::bind(&umtrx_impl::update_tx_subdev_spec, this, boost::placeholders::_1));
for (char name = 'A'; name <= 'B'; name++) for (char name = 'A'; name <= 'B'; name++)
{ {
@@ -440,21 +440,21 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
tx_fe->set_mux("IQ"); tx_fe->set_mux("IQ");
rx_fe->set_mux(false/*no swap*/); rx_fe->set_mux(false/*no swap*/);
_tree->create<std::complex<double> >(rx_fe_path / "dc_offset" / "value") _tree->create<std::complex<double> >(rx_fe_path / "dc_offset" / "value")
.coerce(boost::bind(&rx_frontend_core_200::set_dc_offset, rx_fe, _1)) .coerce(boost::bind(&rx_frontend_core_200::set_dc_offset, rx_fe, boost::placeholders::_1))
.set(std::complex<double>(0.0, 0.0)); .set(std::complex<double>(0.0, 0.0));
_tree->create<bool>(rx_fe_path / "dc_offset" / "enable") _tree->create<bool>(rx_fe_path / "dc_offset" / "enable")
.subscribe(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, rx_fe, _1)) .subscribe(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, rx_fe, boost::placeholders::_1))
.set(true); .set(true);
_tree->create<std::complex<double> >(rx_fe_path / "iq_balance" / "value") _tree->create<std::complex<double> >(rx_fe_path / "iq_balance" / "value")
.subscribe(boost::bind(&rx_frontend_core_200::set_iq_balance, rx_fe, _1)) .subscribe(boost::bind(&rx_frontend_core_200::set_iq_balance, rx_fe, boost::placeholders::_1))
.set(std::polar<double>(0.0, 0.0)); .set(std::polar<double>(0.0, 0.0));
/* /*
_tree->create<std::complex<double> >(tx_fe_path / "dc_offset" / "value") _tree->create<std::complex<double> >(tx_fe_path / "dc_offset" / "value")
.coerce(boost::bind(&tx_frontend_core_200::set_dc_offset, tx_fe, _1)) .coerce(boost::bind(&tx_frontend_core_200::set_dc_offset, tx_fe, boost::placeholders::_1))
.set(std::complex<double>(0.0, 0.0)); .set(std::complex<double>(0.0, 0.0));
*/ */
_tree->create<std::complex<double> >(tx_fe_path / "iq_balance" / "value") _tree->create<std::complex<double> >(tx_fe_path / "iq_balance" / "value")
.subscribe(boost::bind(&tx_frontend_core_200::set_iq_balance, tx_fe, _1)) .subscribe(boost::bind(&tx_frontend_core_200::set_iq_balance, tx_fe, boost::placeholders::_1))
.set(std::polar<double>(0.0, 0.0)); .set(std::polar<double>(0.0, 0.0));
} }
@@ -473,22 +473,22 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
_rx_dsps[dspno]->set_mux("IQ", false/*no swap*/); _rx_dsps[dspno]->set_mux("IQ", false/*no swap*/);
_rx_dsps[dspno]->set_link_rate(UMTRX_LINK_RATE_BPS); _rx_dsps[dspno]->set_link_rate(UMTRX_LINK_RATE_BPS);
_tree->access<double>(mb_path / "dsp_rate") _tree->access<double>(mb_path / "dsp_rate")
.subscribe(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], _1)); .subscribe(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], boost::placeholders::_1));
_tree->access<double>(mb_path / "tick_rate") _tree->access<double>(mb_path / "tick_rate")
.subscribe(boost::bind(&rx_dsp_core_200::set_vita_rate, _rx_dsps[dspno], _1)); .subscribe(boost::bind(&rx_dsp_core_200::set_vita_rate, _rx_dsps[dspno], boost::placeholders::_1));
fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno); fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno);
_tree->create<meta_range_t>(rx_dsp_path / "rate/range") _tree->create<meta_range_t>(rx_dsp_path / "rate/range")
.publish(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno])); .publish(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno]));
_tree->create<double>(rx_dsp_path / "rate/value") _tree->create<double>(rx_dsp_path / "rate/value")
.set(this->get_master_clock_rate()/12) //some default .set(this->get_master_clock_rate()/12) //some default
.coerce(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], _1)) .coerce(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], boost::placeholders::_1))
.subscribe(boost::bind(&umtrx_impl::update_rx_samp_rate, this, dspno, _1)); .subscribe(boost::bind(&umtrx_impl::update_rx_samp_rate, this, dspno, boost::placeholders::_1));
_tree->create<double>(rx_dsp_path / "freq/value") _tree->create<double>(rx_dsp_path / "freq/value")
.coerce(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], _1)); .coerce(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], boost::placeholders::_1));
_tree->create<meta_range_t>(rx_dsp_path / "freq/range") _tree->create<meta_range_t>(rx_dsp_path / "freq/range")
.publish(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno])); .publish(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno]));
_tree->create<stream_cmd_t>(rx_dsp_path / "stream_cmd") _tree->create<stream_cmd_t>(rx_dsp_path / "stream_cmd")
.subscribe(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], _1)); .subscribe(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], boost::placeholders::_1));
} }
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
@@ -503,16 +503,16 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
for (size_t dspno = 0; dspno < _tx_dsps.size(); dspno++){ for (size_t dspno = 0; dspno < _tx_dsps.size(); dspno++){
_tx_dsps[dspno]->set_link_rate(UMTRX_LINK_RATE_BPS); _tx_dsps[dspno]->set_link_rate(UMTRX_LINK_RATE_BPS);
_tree->access<double>(mb_path / "dsp_rate") _tree->access<double>(mb_path / "dsp_rate")
.subscribe(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsps[dspno], _1)); .subscribe(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsps[dspno], boost::placeholders::_1));
fs_path tx_dsp_path = mb_path / str(boost::format("tx_dsps/%u") % dspno); fs_path tx_dsp_path = mb_path / str(boost::format("tx_dsps/%u") % dspno);
_tree->create<meta_range_t>(tx_dsp_path / "rate/range") _tree->create<meta_range_t>(tx_dsp_path / "rate/range")
.publish(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsps[dspno])); .publish(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsps[dspno]));
_tree->create<double>(tx_dsp_path / "rate/value") _tree->create<double>(tx_dsp_path / "rate/value")
.set(this->get_master_clock_rate()/12) //some default .set(this->get_master_clock_rate()/12) //some default
.coerce(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsps[dspno], _1)) .coerce(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsps[dspno], boost::placeholders::_1))
.subscribe(boost::bind(&umtrx_impl::update_tx_samp_rate, this, dspno, _1)); .subscribe(boost::bind(&umtrx_impl::update_tx_samp_rate, this, dspno, boost::placeholders::_1));
_tree->create<double>(tx_dsp_path / "freq/value") _tree->create<double>(tx_dsp_path / "freq/value")
.coerce(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsps[dspno], _1)); .coerce(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsps[dspno], boost::placeholders::_1));
_tree->create<meta_range_t>(tx_dsp_path / "freq/range") _tree->create<meta_range_t>(tx_dsp_path / "freq/range")
.publish(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsps[dspno])); .publish(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsps[dspno]));
} }
@@ -528,21 +528,21 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
_time64 = time64_core_200::make(_ctrl, U2_REG_SR_ADDR(SR_TIME64), time64_rb_bases); _time64 = time64_core_200::make(_ctrl, U2_REG_SR_ADDR(SR_TIME64), time64_rb_bases);
_tree->access<double>(mb_path / "tick_rate") _tree->access<double>(mb_path / "tick_rate")
.subscribe(boost::bind(&time64_core_200::set_tick_rate, _time64, _1)); .subscribe(boost::bind(&time64_core_200::set_tick_rate, _time64, boost::placeholders::_1));
_tree->create<time_spec_t>(mb_path / "time" / "now") _tree->create<time_spec_t>(mb_path / "time" / "now")
.publish(boost::bind(&time64_core_200::get_time_now, _time64)) .publish(boost::bind(&time64_core_200::get_time_now, _time64))
.subscribe(boost::bind(&time64_core_200::set_time_now, _time64, _1)); .subscribe(boost::bind(&time64_core_200::set_time_now, _time64, boost::placeholders::_1));
_tree->create<time_spec_t>(mb_path / "time" / "pps") _tree->create<time_spec_t>(mb_path / "time" / "pps")
.publish(boost::bind(&time64_core_200::get_time_last_pps, _time64)) .publish(boost::bind(&time64_core_200::get_time_last_pps, _time64))
.subscribe(boost::bind(&time64_core_200::set_time_next_pps, _time64, _1)); .subscribe(boost::bind(&time64_core_200::set_time_next_pps, _time64, boost::placeholders::_1));
//setup time source props //setup time source props
_tree->create<std::string>(mb_path / "time_source" / "value") _tree->create<std::string>(mb_path / "time_source" / "value")
.subscribe(boost::bind(&time64_core_200::set_time_source, _time64, _1)); .subscribe(boost::bind(&time64_core_200::set_time_source, _time64, boost::placeholders::_1));
_tree->create<std::vector<std::string> >(mb_path / "time_source" / "options") _tree->create<std::vector<std::string> >(mb_path / "time_source" / "options")
.publish(boost::bind(&time64_core_200::get_time_sources, _time64)); .publish(boost::bind(&time64_core_200::get_time_sources, _time64));
//setup reference source props //setup reference source props
_tree->create<std::string>(mb_path / "clock_source" / "value") _tree->create<std::string>(mb_path / "clock_source" / "value")
.subscribe(boost::bind(&umtrx_impl::update_clock_source, this, _1)); .subscribe(boost::bind(&umtrx_impl::update_clock_source, this, boost::placeholders::_1));
static const std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external"); static const std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external");
_tree->create<std::vector<std::string> >(mb_path / "clock_source"/ "options").set(clock_sources); _tree->create<std::vector<std::string> >(mb_path / "clock_source"/ "options").set(clock_sources);
@@ -594,7 +594,7 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
.publish(boost::bind(&lms6002d_ctrl::get_rx_gain_range, ctrl, name)); .publish(boost::bind(&lms6002d_ctrl::get_rx_gain_range, ctrl, name));
_tree->create<double>(rx_rf_fe_path / "gains" / name / "value") _tree->create<double>(rx_rf_fe_path / "gains" / name / "value")
.coerce(boost::bind(&lms6002d_ctrl::set_rx_gain, ctrl, _1, name)) .coerce(boost::bind(&lms6002d_ctrl::set_rx_gain, ctrl, boost::placeholders::_1, name))
.set((ctrl->get_rx_gain_range(name).start() + ctrl->get_rx_gain_range(name).stop())/2.0); .set((ctrl->get_rx_gain_range(name).start() + ctrl->get_rx_gain_range(name).stop())/2.0);
} }
@@ -608,7 +608,7 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
.publish(boost::bind(&lms6002d_ctrl::get_tx_gain_range, ctrl, name)); .publish(boost::bind(&lms6002d_ctrl::get_tx_gain_range, ctrl, name));
_tree->create<double>(tx_rf_fe_path / "gains" / name / "value") _tree->create<double>(tx_rf_fe_path / "gains" / name / "value")
.coerce(boost::bind(&lms6002d_ctrl::set_tx_gain, ctrl, _1, name)) .coerce(boost::bind(&lms6002d_ctrl::set_tx_gain, ctrl, boost::placeholders::_1, name))
.set((ctrl->get_tx_gain_range(name).start() + ctrl->get_tx_gain_range(name).stop())/2.0); .set((ctrl->get_tx_gain_range(name).start() + ctrl->get_tx_gain_range(name).stop())/2.0);
} }
} else { } else {
@@ -623,7 +623,7 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
.publish(boost::bind(&umtrx_impl::get_tx_power_range, this, fe_name)); .publish(boost::bind(&umtrx_impl::get_tx_power_range, this, fe_name));
_tree->create<double>(tx_rf_fe_path / "gains" / "PA" / "value") _tree->create<double>(tx_rf_fe_path / "gains" / "PA" / "value")
.coerce(boost::bind(&umtrx_impl::set_tx_power, this, _1, fe_name)) .coerce(boost::bind(&umtrx_impl::set_tx_power, this, boost::placeholders::_1, fe_name))
// Set default output power to maximum // Set default output power to maximum
.set(get_tx_power_range(fe_name).stop()); .set(get_tx_power_range(fe_name).stop());
@@ -631,14 +631,14 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
//rx freq //rx freq
_tree->create<double>(rx_rf_fe_path / "freq" / "value") _tree->create<double>(rx_rf_fe_path / "freq" / "value")
.coerce(boost::bind(&umtrx_impl::set_rx_freq, this, fe_name, _1)); .coerce(boost::bind(&umtrx_impl::set_rx_freq, this, fe_name, boost::placeholders::_1));
_tree->create<meta_range_t>(rx_rf_fe_path / "freq" / "range") _tree->create<meta_range_t>(rx_rf_fe_path / "freq" / "range")
.publish(boost::bind(&umtrx_impl::get_rx_freq_range, this, fe_name)); .publish(boost::bind(&umtrx_impl::get_rx_freq_range, this, fe_name));
_tree->create<bool>(rx_rf_fe_path / "use_lo_offset").set(false); _tree->create<bool>(rx_rf_fe_path / "use_lo_offset").set(false);
//tx freq //tx freq
_tree->create<double>(tx_rf_fe_path / "freq" / "value") _tree->create<double>(tx_rf_fe_path / "freq" / "value")
.coerce(boost::bind(&lms6002d_ctrl::set_tx_freq, ctrl, _1)); .coerce(boost::bind(&lms6002d_ctrl::set_tx_freq, ctrl, boost::placeholders::_1));
_tree->create<meta_range_t>(tx_rf_fe_path / "freq" / "range") _tree->create<meta_range_t>(tx_rf_fe_path / "freq" / "range")
.publish(boost::bind(&lms6002d_ctrl::get_tx_freq_range, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_tx_freq_range, ctrl));
_tree->create<bool>(tx_rf_fe_path / "use_lo_offset").set(false); _tree->create<bool>(tx_rf_fe_path / "use_lo_offset").set(false);
@@ -647,34 +647,34 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
_tree->create<std::vector<std::string> >(rx_rf_fe_path / "antenna" / "options") _tree->create<std::vector<std::string> >(rx_rf_fe_path / "antenna" / "options")
.publish(boost::bind(&lms6002d_ctrl::get_rx_antennas, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_rx_antennas, ctrl));
_tree->create<std::string>(rx_rf_fe_path / "antenna" / "value") _tree->create<std::string>(rx_rf_fe_path / "antenna" / "value")
.subscribe(boost::bind(&lms6002d_ctrl::set_rx_ant, ctrl, _1)) .subscribe(boost::bind(&lms6002d_ctrl::set_rx_ant, ctrl, boost::placeholders::_1))
.set("RX1"); .set("RX1");
//tx ant //tx ant
_tree->create<std::vector<std::string> >(tx_rf_fe_path / "antenna" / "options") _tree->create<std::vector<std::string> >(tx_rf_fe_path / "antenna" / "options")
.publish(boost::bind(&lms6002d_ctrl::get_tx_antennas, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_tx_antennas, ctrl));
_tree->create<std::string>(tx_rf_fe_path / "antenna" / "value") _tree->create<std::string>(tx_rf_fe_path / "antenna" / "value")
.subscribe(boost::bind(&lms6002d_ctrl::set_tx_ant, ctrl, _1)) .subscribe(boost::bind(&lms6002d_ctrl::set_tx_ant, ctrl, boost::placeholders::_1))
.set("TX2"); .set("TX2");
//misc //misc
_tree->create<std::string>(rx_rf_fe_path / "connection").set("IQ"); _tree->create<std::string>(rx_rf_fe_path / "connection").set("IQ");
_tree->create<std::string>(tx_rf_fe_path / "connection").set("IQ"); _tree->create<std::string>(tx_rf_fe_path / "connection").set("IQ");
_tree->create<bool>(rx_rf_fe_path / "enabled") _tree->create<bool>(rx_rf_fe_path / "enabled")
.coerce(boost::bind(&lms6002d_ctrl::set_rx_enabled, ctrl, _1)); .coerce(boost::bind(&lms6002d_ctrl::set_rx_enabled, ctrl, boost::placeholders::_1));
_tree->create<bool>(tx_rf_fe_path / "enabled") _tree->create<bool>(tx_rf_fe_path / "enabled")
.coerce(boost::bind(&lms6002d_ctrl::set_tx_enabled, ctrl, _1)); .coerce(boost::bind(&lms6002d_ctrl::set_tx_enabled, ctrl, boost::placeholders::_1));
//rx bw //rx bw
_tree->create<double>(rx_rf_fe_path / "bandwidth" / "value") _tree->create<double>(rx_rf_fe_path / "bandwidth" / "value")
.coerce(boost::bind(&lms6002d_ctrl::set_rx_bandwidth, ctrl, _1)) .coerce(boost::bind(&lms6002d_ctrl::set_rx_bandwidth, ctrl, boost::placeholders::_1))
.set(2*0.75e6); .set(2*0.75e6);
_tree->create<meta_range_t>(rx_rf_fe_path / "bandwidth" / "range") _tree->create<meta_range_t>(rx_rf_fe_path / "bandwidth" / "range")
.publish(boost::bind(&lms6002d_ctrl::get_rx_bw_range, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_rx_bw_range, ctrl));
//tx bw //tx bw
_tree->create<double>(tx_rf_fe_path / "bandwidth" / "value") _tree->create<double>(tx_rf_fe_path / "bandwidth" / "value")
.coerce(boost::bind(&lms6002d_ctrl::set_tx_bandwidth, ctrl, _1)) .coerce(boost::bind(&lms6002d_ctrl::set_tx_bandwidth, ctrl, boost::placeholders::_1))
.set(2*0.75e6); .set(2*0.75e6);
_tree->create<meta_range_t>(tx_rf_fe_path / "bandwidth" / "range") _tree->create<meta_range_t>(tx_rf_fe_path / "bandwidth" / "range")
.publish(boost::bind(&lms6002d_ctrl::get_tx_bw_range, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_tx_bw_range, ctrl));
@@ -682,17 +682,17 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
//bind frontend corrections to the dboard freq props //bind frontend corrections to the dboard freq props
_tree->access<double>(tx_rf_fe_path / "freq" / "value") _tree->access<double>(tx_rf_fe_path / "freq" / "value")
.set(0.0) //default value .set(0.0) //default value
.subscribe(boost::bind(&umtrx_impl::set_tx_fe_corrections, this, "0", fe_name, _1)); .subscribe(boost::bind(&umtrx_impl::set_tx_fe_corrections, this, "0", fe_name, boost::placeholders::_1));
_tree->access<double>(rx_rf_fe_path / "freq" / "value") _tree->access<double>(rx_rf_fe_path / "freq" / "value")
.set(0.0) //default value .set(0.0) //default value
.subscribe(boost::bind(&umtrx_impl::set_rx_fe_corrections, this, "0", fe_name, _1)); .subscribe(boost::bind(&umtrx_impl::set_rx_fe_corrections, this, "0", fe_name, boost::placeholders::_1));
//tx cal props //tx cal props
_tree->create<uint8_t>(tx_rf_fe_path / "lms6002d" / "tx_dc_i" / "value") _tree->create<uint8_t>(tx_rf_fe_path / "lms6002d" / "tx_dc_i" / "value")
.subscribe(boost::bind(&lms6002d_ctrl::_set_tx_vga1dc_i_int, ctrl, _1)) .subscribe(boost::bind(&lms6002d_ctrl::_set_tx_vga1dc_i_int, ctrl, boost::placeholders::_1))
.publish(boost::bind(&lms6002d_ctrl::get_tx_vga1dc_i_int, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_tx_vga1dc_i_int, ctrl));
_tree->create<uint8_t>(tx_rf_fe_path / "lms6002d" / "tx_dc_q" / "value") _tree->create<uint8_t>(tx_rf_fe_path / "lms6002d" / "tx_dc_q" / "value")
.subscribe(boost::bind(&lms6002d_ctrl::_set_tx_vga1dc_q_int, ctrl, _1)) .subscribe(boost::bind(&lms6002d_ctrl::_set_tx_vga1dc_q_int, ctrl, boost::placeholders::_1))
.publish(boost::bind(&lms6002d_ctrl::get_tx_vga1dc_q_int, ctrl)); .publish(boost::bind(&lms6002d_ctrl::get_tx_vga1dc_q_int, ctrl));
//set Tx DC calibration values, which are read from mboard EEPROM //set Tx DC calibration values, which are read from mboard EEPROM
@@ -705,37 +705,37 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
//plugin dc_offset from lms into the frontend corrections //plugin dc_offset from lms into the frontend corrections
_tree->create<std::complex<double> >(mb_path / "tx_frontends" / fe_name / "dc_offset" / "value") _tree->create<std::complex<double> >(mb_path / "tx_frontends" / fe_name / "dc_offset" / "value")
.publish(boost::bind(&umtrx_impl::get_dc_offset_correction, this, fe_name)) .publish(boost::bind(&umtrx_impl::get_dc_offset_correction, this, fe_name))
.subscribe(boost::bind(&umtrx_impl::set_dc_offset_correction, this, fe_name, _1)) .subscribe(boost::bind(&umtrx_impl::set_dc_offset_correction, this, fe_name, boost::placeholders::_1))
.set(std::complex<double>(dc_i, dc_q)); .set(std::complex<double>(dc_i, dc_q));
//rx cal props //rx cal props
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_fe_dc_i" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_fe_dc_i" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxfe_dc_i, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxfe_dc_i, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxfe_dc_i, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxfe_dc_i, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_fe_dc_q" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_fe_dc_q" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxfe_dc_q, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxfe_dc_q, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxfe_dc_q, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxfe_dc_q, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_lpf_dc_i" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_lpf_dc_i" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxlpf_dc_i, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxlpf_dc_i, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxlpf_dc_i, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxlpf_dc_i, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_lpf_dc_q" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rx_lpf_dc_q" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxlpf_dc_q, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxlpf_dc_q, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxlpf_dc_q, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxlpf_dc_q, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2_dc_reference" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2_dc_reference" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxvga2_dc_reference, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxvga2_dc_reference, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2_dc_reference, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2_dc_reference, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2a_dc_i" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2a_dc_i" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxvga2a_dc_i, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxvga2a_dc_i, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2a_dc_i, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2a_dc_i, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2a_dc_q" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2a_dc_q" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxvga2a_dc_q, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxvga2a_dc_q, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2a_dc_q, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2a_dc_q, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2b_dc_i" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2b_dc_i" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxvga2b_dc_i, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxvga2b_dc_i, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2b_dc_i, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2b_dc_i, ctrl, boost::placeholders::_1));
_tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2b_dc_q" / "value") _tree->create<uint8_t>(rx_rf_fe_path / "lms6002d" / "rxvga2b_dc_q" / "value")
.publish(boost::bind(&lms6002d_ctrl::get_rxvga2b_dc_q, ctrl)) .publish(boost::bind(&lms6002d_ctrl::get_rxvga2b_dc_q, ctrl))
.subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2b_dc_q, ctrl, _1)); .subscribe(boost::bind(&lms6002d_ctrl::set_rxvga2b_dc_q, ctrl, boost::placeholders::_1));
// Alias diversity switch control from mb_path // Alias diversity switch control from mb_path
property_alias<bool>(_tree, mb_path / "divsw"+(fe_name=="A"?"1":"2"), rx_rf_fe_path / "diversity"); property_alias<bool>(_tree, mb_path / "divsw"+(fe_name=="A"?"1":"2"), rx_rf_fe_path / "diversity");
@@ -743,7 +743,7 @@ umtrx_impl::umtrx_impl(const device_addr_t &device_addr)
//TCXO DAC calibration control //TCXO DAC calibration control
_tree->create<uint16_t>(mb_path / "tcxo_dac" / "value") _tree->create<uint16_t>(mb_path / "tcxo_dac" / "value")
.subscribe(boost::bind(&umtrx_impl::set_tcxo_dac, this, _iface, _1)); .subscribe(boost::bind(&umtrx_impl::set_tcxo_dac, this, _iface, boost::placeholders::_1));
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// post config tasks // post config tasks
@@ -1103,7 +1103,7 @@ void umtrx_impl::detect_hw_rev(const fs_path& mb_path)
_hw_rev = UMTRX_VER_2_3_1; _hw_rev = UMTRX_VER_2_3_1;
_tree->create<uint8_t>(mb_path / "pa_dcdc_r") _tree->create<uint8_t>(mb_path / "pa_dcdc_r")
.subscribe(boost::bind(&umtrx_impl::set_pa_dcdc_r, this, _1)); .subscribe(boost::bind(&umtrx_impl::set_pa_dcdc_r, this, boost::placeholders::_1));
std::string pa_dcdc_r = _iface->mb_eeprom.get("pa_dcdc_r", ""); std::string pa_dcdc_r = _iface->mb_eeprom.get("pa_dcdc_r", "");
char* pa_dcdc_r_env = getenv("UMTRX_PA_DCDC_R"); char* pa_dcdc_r_env = getenv("UMTRX_PA_DCDC_R");
@@ -1138,11 +1138,11 @@ void umtrx_impl::detect_hw_rev(const fs_path& mb_path)
_pa_nlow = (boost::lexical_cast<int>(pa_low) == 0); _pa_nlow = (boost::lexical_cast<int>(pa_low) == 0);
_tree->create<bool>(mb_path / "pa_en1") _tree->create<bool>(mb_path / "pa_en1")
.subscribe(boost::bind(&umtrx_impl::set_enpa1, this, _1)); .subscribe(boost::bind(&umtrx_impl::set_enpa1, this, boost::placeholders::_1));
_tree->create<bool>(mb_path / "pa_en2") _tree->create<bool>(mb_path / "pa_en2")
.subscribe(boost::bind(&umtrx_impl::set_enpa2, this, _1)); .subscribe(boost::bind(&umtrx_impl::set_enpa2, this, boost::placeholders::_1));
_tree->create<bool>(mb_path / "pa_nlow") _tree->create<bool>(mb_path / "pa_nlow")
.subscribe(boost::bind(&umtrx_impl::set_nlow, this, _1)); .subscribe(boost::bind(&umtrx_impl::set_nlow, this, boost::placeholders::_1));
commit_pa_state(); commit_pa_state();
UHD_MSG(status) << "PA low=`" << pa_low.c_str() UHD_MSG(status) << "PA low=`" << pa_low.c_str()

View File

@@ -249,10 +249,10 @@ uhd::rx_streamer::sptr umtrx_impl::get_rx_stream(const uhd::stream_args_t &args_
_rx_dsps[dsp]->set_nsamps_per_packet(spp); //seems to be a good place to set this _rx_dsps[dsp]->set_nsamps_per_packet(spp); //seems to be a good place to set this
_rx_dsps[dsp]->setup(args); _rx_dsps[dsp]->setup(args);
my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( my_streamer->set_xport_chan_get_buff(chan_i, boost::bind(
&zero_copy_if::get_recv_buff, xports[chan_i], _1 &zero_copy_if::get_recv_buff, xports[chan_i], boost::placeholders::_1
), true /*flush*/); ), true /*flush*/);
my_streamer->set_issue_stream_cmd(chan_i, boost::bind( my_streamer->set_issue_stream_cmd(chan_i, boost::bind(
&rx_dsp_core_200::issue_stream_command, _rx_dsps[dsp], _1)); &rx_dsp_core_200::issue_stream_command, _rx_dsps[dsp], boost::placeholders::_1));
_rx_streamers[dsp] = my_streamer; //store weak pointer _rx_streamers[dsp] = my_streamer; //store weak pointer
} }
@@ -471,7 +471,7 @@ uhd::tx_streamer::sptr umtrx_impl::get_tx_stream(const uhd::stream_args_t &args_
//shared async queue for all channels in streamer //shared async queue for all channels in streamer
boost::shared_ptr<async_md_type> async_md(new async_md_type(1000/*messages deep*/)); boost::shared_ptr<async_md_type> async_md(new async_md_type(1000/*messages deep*/));
if (not _old_async_queue) _old_async_queue.reset(new async_md_type(1000/*messages deep*/)); if (not _old_async_queue) _old_async_queue.reset(new async_md_type(1000/*messages deep*/));
my_streamer->set_async_receiver(boost::bind(&async_md_type::pop_with_timed_wait, async_md, _1, _2)); my_streamer->set_async_receiver(boost::bind(&async_md_type::pop_with_timed_wait, async_md, boost::placeholders::_1, boost::placeholders::_2));
//bind callbacks for the handler //bind callbacks for the handler
for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++) for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++)
@@ -506,7 +506,7 @@ uhd::tx_streamer::sptr umtrx_impl::get_tx_stream(const uhd::stream_args_t &args_
//buffer get method handles flow control and hold task reference count //buffer get method handles flow control and hold task reference count
my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( my_streamer->set_xport_chan_get_buff(chan_i, boost::bind(
&get_send_buff, task, fc_mon, xports[chan_i], _1 &get_send_buff, task, fc_mon, xports[chan_i], boost::placeholders::_1
)); ));
_tx_streamers[dsp] = my_streamer; //store weak pointer _tx_streamers[dsp] = my_streamer; //store weak pointer