From 4161659ee0aecba352f459514b6f15fbca4f1f90 Mon Sep 17 00:00:00 2001 From: Huang Rui <vowstar@gmail.com> Date: Mon, 26 Oct 2020 10:21:43 +0800 Subject: gr-uhd/lib/usrp_block_impl.cc: fix compile error using boost>=1.73 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When using boost>=1.73 and compile with uhd, it always have errors. Fix the compile error when using uhd and gcc10: error: ‘_1’ was not declared Bug: https://bugs.gentoo.org/751259 usrp_source_impl.cc: use lambdas instead of boost::bind usrp_block_impl.cc:use lambdas instead of boost::bind usrp_block_impl.h: Switch from boost::function to std::function https://github.com/gnuradio/gnuradio/pull/3441 https://github.com/gnuradio/gnuradio/pull/3887 usrp_source_impl: fix parameter bug of original code The usrp_block_impl::register_msg_cmd_handler uses cmd_handler_t as handler type, but it have 3 parameters. Fix the parameter mismatch bug and change the signature as cmd_handler_t Signed-off-by: Huang Rui <vowstar@gmail.com> --- gr-uhd/lib/usrp_block_impl.cc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'gr-uhd/lib/usrp_block_impl.cc') diff --git a/gr-uhd/lib/usrp_block_impl.cc b/gr-uhd/lib/usrp_block_impl.cc index b44b7e2dcc..b060ed0334 100644 --- a/gr-uhd/lib/usrp_block_impl.cc +++ b/gr-uhd/lib/usrp_block_impl.cc @@ -133,9 +133,11 @@ usrp_block_impl::usrp_block_impl(const ::uhd::device_addr_t& device_addr, [this](pmt::pmt_t msg) { this->msg_handler_command(msg); }); // cuz we lazy: -#define REGISTER_CMD_HANDLER(key, _handler) \ - register_msg_cmd_handler(key, \ - boost::bind(&usrp_block_impl::_handler, this, _1, _2, _3)) +#define REGISTER_CMD_HANDLER(key, _handler) \ + register_msg_cmd_handler( \ + key, [this](const pmt::pmt_t& var, int chan, const pmt::pmt_t& msg) { \ + this->_handler(var, chan, msg); \ + }) // Register default command handlers: REGISTER_CMD_HANDLER(cmd_freq_key(), _cmd_handler_freq); REGISTER_CMD_HANDLER(cmd_gain_key(), _cmd_handler_gain); @@ -251,11 +253,13 @@ bool usrp_block_impl::_check_mboard_sensors_locked() } else if (_dev->get_clock_source(mboard_index) == "mimo") { sensor_name = "mimo_locked"; } - if (not _wait_for_locked_sensor( - get_mboard_sensor_names(mboard_index), - sensor_name, - boost::bind( - &usrp_block_impl::get_mboard_sensor, this, _1, mboard_index))) { + if (not _wait_for_locked_sensor(get_mboard_sensor_names(mboard_index), + sensor_name, + [this, mboard_index](const std::string& name) { + return static_cast<::uhd::sensor_value_t>( + this->get_mboard_sensor(name, + mboard_index)); + })) { GR_LOG_WARN( d_logger, boost::format( -- cgit v1.2.3