diff options
author | Martin Braun <martin.braun@ettus.com> | 2021-01-08 09:33:36 +0100 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2021-03-04 08:07:26 -0600 |
commit | 107a49c0c236940da7d3bd0f57da4bc1e2a34cb4 (patch) | |
tree | fdeaad56030a02948377c45838dab97beb7a5c84 /host/lib/usrp | |
parent | 7d5e48032baa62cbe7467833b9e057900602f4b9 (diff) | |
download | uhd-107a49c0c236940da7d3bd0f57da4bc1e2a34cb4.tar.gz uhd-107a49c0c236940da7d3bd0f57da4bc1e2a34cb4.tar.bz2 uhd-107a49c0c236940da7d3bd0f57da4bc1e2a34cb4.zip |
host: Update code base using clang-tidy
The checks from the new clang-tidy file are applied to the source tree
using:
$ find . -name "*.cpp" | sort -u | xargs \
--max-procs 8 --max-args 1 clang-tidy --format-style=file \
--fix -p /path/to/compile_commands.json
Diffstat (limited to 'host/lib/usrp')
87 files changed, 1165 insertions, 1090 deletions
diff --git a/host/lib/usrp/b100/b100_impl.hpp b/host/lib/usrp/b100/b100_impl.hpp index 0b46c4815..326b74103 100644 --- a/host/lib/usrp/b100/b100_impl.hpp +++ b/host/lib/usrp/b100/b100_impl.hpp @@ -84,12 +84,12 @@ class b100_impl : public uhd::device public: // structors b100_impl(const uhd::device_addr_t&); - ~b100_impl(void); + ~b100_impl(void) override; // the io interface - uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args); - uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args); - bool recv_async_msg(uhd::async_metadata_t&, double); + uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args) override; + uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args) override; + bool recv_async_msg(uhd::async_metadata_t&, double) override; static uhd::usrp::mboard_eeprom_t get_mb_eeprom(uhd::i2c_iface::sptr); diff --git a/host/lib/usrp/b100/dboard_iface.cpp b/host/lib/usrp/b100/dboard_iface.cpp index 627e7a876..f457b2095 100644 --- a/host/lib/usrp/b100/dboard_iface.cpp +++ b/host/lib/usrp/b100/dboard_iface.cpp @@ -40,12 +40,12 @@ public: this->set_clock_rate(UNIT_TX, _clock->get_fpga_clock_rate()); } - ~b100_dboard_iface(void) + ~b100_dboard_iface(void) override { /* NOP */ } - special_props_t get_special_props(void) + special_props_t get_special_props(void) override { special_props_t props; props.soft_clock_divider = false; @@ -53,39 +53,39 @@ public: return props; } - void write_aux_dac(unit_t, aux_dac_t, double); - double read_aux_adc(unit_t, aux_adc_t); + void write_aux_dac(unit_t, aux_dac_t, double) override; + double read_aux_adc(unit_t, aux_adc_t) override; - void set_pin_ctrl(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_pin_ctrl(unit_t unit); + void set_pin_ctrl(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_pin_ctrl(unit_t unit) override; void set_atr_reg( - unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_atr_reg(unit_t unit, atr_reg_t reg); - void set_gpio_ddr(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_gpio_ddr(unit_t unit); - void set_gpio_out(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_gpio_out(unit_t unit); - uint32_t read_gpio(unit_t unit); + unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_atr_reg(unit_t unit, atr_reg_t reg) override; + void set_gpio_ddr(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_gpio_ddr(unit_t unit) override; + void set_gpio_out(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_gpio_out(unit_t unit) override; + uint32_t read_gpio(unit_t unit) override; - void set_command_time(const uhd::time_spec_t& t); - uhd::time_spec_t get_command_time(void); + void set_command_time(const uhd::time_spec_t& t) override; + uhd::time_spec_t get_command_time(void) override; - void write_i2c(uint16_t, const byte_vector_t&); - byte_vector_t read_i2c(uint16_t, size_t); + void write_i2c(uint16_t, const byte_vector_t&) override; + byte_vector_t read_i2c(uint16_t, size_t) override; void write_spi( - unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits); + unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits) override; uint32_t read_write_spi( - unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits); + unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits) override; - void set_clock_rate(unit_t, double); - std::vector<double> get_clock_rates(unit_t); - double get_clock_rate(unit_t); - void set_clock_enabled(unit_t, bool); - double get_codec_rate(unit_t); + void set_clock_rate(unit_t, double) override; + std::vector<double> get_clock_rates(unit_t) override; + double get_clock_rate(unit_t) override; + void set_clock_enabled(unit_t, bool) override; + double get_codec_rate(unit_t) override; void set_fe_connection( - unit_t unit, const std::string&, const fe_connection_t& fe_conn); + unit_t unit, const std::string&, const fe_connection_t& fe_conn) override; private: timed_wb_iface::sptr _wb_iface; diff --git a/host/lib/usrp/b100/fifo_ctrl_excelsior.cpp b/host/lib/usrp/b100/fifo_ctrl_excelsior.cpp index 4a21770b8..2d899a6b8 100644 --- a/host/lib/usrp/b100/fifo_ctrl_excelsior.cpp +++ b/host/lib/usrp/b100/fifo_ctrl_excelsior.cpp @@ -58,7 +58,7 @@ public: this->init_spi(); } - ~fifo_ctrl_excelsior_impl(void) + ~fifo_ctrl_excelsior_impl(void) override { _timeout = ACK_TIMEOUT; // reset timeout to something small UHD_SAFE_CALL( @@ -66,7 +66,7 @@ public: ) } - bool pop_async_msg(async_metadata_t& async_metadata, double timeout) + bool pop_async_msg(async_metadata_t& async_metadata, double timeout) override { return _async_fifo.pop_with_timed_wait(async_metadata, timeout); } @@ -109,7 +109,7 @@ public: /******************************************************************* * Peek and poke 32 bit implementation ******************************************************************/ - void poke32(const wb_addr_type addr, const uint32_t data) + void poke32(const wb_addr_type addr, const uint32_t data) override { std::lock_guard<std::mutex> lock(_mutex); @@ -118,7 +118,7 @@ public: this->wait_for_ack(_seq_out - MAX_SEQS_OUT); } - uint32_t peek32(const wb_addr_type addr) + uint32_t peek32(const wb_addr_type addr) override { std::lock_guard<std::mutex> lock(_mutex); @@ -130,12 +130,12 @@ public: /******************************************************************* * Peek and poke 16 bit not implemented ******************************************************************/ - void poke16(const wb_addr_type, const uint16_t) + void poke16(const wb_addr_type, const uint16_t) override { throw uhd::not_implemented_error("poke16 not implemented in fifo ctrl module"); } - uint16_t peek16(const wb_addr_type) + uint16_t peek16(const wb_addr_type) override { throw uhd::not_implemented_error("peek16 not implemented in fifo ctrl module"); } @@ -157,7 +157,7 @@ public: const spi_config_t& config, uint32_t data, size_t num_bits, - bool readback) + bool readback) override { std::lock_guard<std::mutex> lock(_mutex); @@ -196,7 +196,7 @@ public: /******************************************************************* * Update methods for time ******************************************************************/ - void set_time(const uhd::time_spec_t& time) + void set_time(const uhd::time_spec_t& time) override { std::lock_guard<std::mutex> lock(_mutex); _time = time; @@ -205,13 +205,13 @@ public: _timeout = MASSIVE_TIMEOUT; // permanently sets larger timeout } - uhd::time_spec_t get_time(void) + uhd::time_spec_t get_time(void) override { std::lock_guard<std::mutex> lock(_mutex); return _time; } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { std::lock_guard<std::mutex> lock(_mutex); _tick_rate = rate; diff --git a/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp b/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp index 908841462..b2348c3a9 100644 --- a/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp +++ b/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp @@ -34,7 +34,7 @@ public: { /*NOP*/ } - void release(void) + void release(void) override { _mrb.reset(); // decrement ref count, other MRB's may hold a ref _claimer.release(); @@ -90,13 +90,13 @@ public: _task = uhd::task::make(std::bind(&usb_zero_copy_wrapper_msb::auto_flush, this)); } - ~usb_zero_copy_wrapper_msb(void) + ~usb_zero_copy_wrapper_msb(void) override { // ensure the task has exited before anything auto deconstructs _task.reset(); } - void release(void) + void release(void) override { boost::mutex::scoped_lock lock(_mutex); _ok_to_auto_flush = true; @@ -185,7 +185,7 @@ public: std::make_shared<usb_zero_copy_wrapper_msb>(usb_zc, frame_boundary); } - managed_recv_buffer::sptr get_recv_buff(double timeout) + managed_recv_buffer::sptr get_recv_buff(double timeout) override { // lazy flush mechanism - negative timeout if (timeout < 0.0) { @@ -208,28 +208,28 @@ public: _last_recv_buff, _last_recv_offset, timeout, _next_recv_buff_index); } - size_t get_num_recv_frames(void) const + size_t get_num_recv_frames(void) const override { return (_internal_zc->get_num_recv_frames() * _internal_zc->get_recv_frame_size()) / this->get_recv_frame_size(); } - size_t get_recv_frame_size(void) const + size_t get_recv_frame_size(void) const override { return std::min(_frame_boundary, _internal_zc->get_recv_frame_size()); } - managed_send_buffer::sptr get_send_buff(double timeout) + managed_send_buffer::sptr get_send_buff(double timeout) override { return _the_only_msb->get_new(timeout); } - size_t get_num_send_frames(void) const + size_t get_num_send_frames(void) const override { return _internal_zc->get_num_send_frames(); } - size_t get_send_frame_size(void) const + size_t get_send_frame_size(void) const override { return std::min(_frame_boundary, _internal_zc->get_send_frame_size()); } diff --git a/host/lib/usrp/b200/b200_cores.hpp b/host/lib/usrp/b200/b200_cores.hpp index 7054fd068..1042cf422 100644 --- a/host/lib/usrp/b200/b200_cores.hpp +++ b/host/lib/usrp/b200/b200_cores.hpp @@ -24,11 +24,11 @@ public: b200_local_spi_core(uhd::wb_iface::sptr iface, perif_t default_perif); - virtual uint32_t transact_spi(int which_slave, + uint32_t transact_spi(int which_slave, const uhd::spi_config_t& config, uint32_t data, size_t num_bits, - bool readback); + bool readback) override; void change_perif(perif_t perif); void restore_perif(); @@ -48,7 +48,7 @@ public: typedef std::shared_ptr<b200_ref_pll_ctrl> sptr; b200_ref_pll_ctrl(b200_local_spi_core::sptr spi); - virtual void set_lock_to_ext_ref(bool external); + void set_lock_to_ext_ref(bool external) override; private: b200_local_spi_core::sptr _spi; diff --git a/host/lib/usrp/b200/b200_iface.cpp b/host/lib/usrp/b200/b200_iface.cpp index 2efc9efb5..aa8b14cc6 100644 --- a/host/lib/usrp/b200/b200_iface.cpp +++ b/host/lib/usrp/b200/b200_iface.cpp @@ -161,18 +161,20 @@ public: timeout); // timeout } - void write_i2c(UHD_UNUSED(uint16_t addr), UHD_UNUSED(const byte_vector_t& bytes)) + void write_i2c( + UHD_UNUSED(uint16_t addr), UHD_UNUSED(const byte_vector_t& bytes)) override { throw uhd::not_implemented_error("b200 write i2c"); } - byte_vector_t read_i2c(UHD_UNUSED(uint16_t addr), UHD_UNUSED(size_t num_bytes)) + byte_vector_t read_i2c( + UHD_UNUSED(uint16_t addr), UHD_UNUSED(size_t num_bytes)) override { throw uhd::not_implemented_error("b200 read i2c"); } - void write_eeprom(uint16_t addr, uint16_t offset, const byte_vector_t& bytes) + void write_eeprom(uint16_t addr, uint16_t offset, const byte_vector_t& bytes) override { int ret = fx3_control_write(B200_VREQ_EEPROM_WRITE, 0, @@ -191,7 +193,7 @@ public: .str()); } - byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) + byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) override { byte_vector_t recv_bytes(num_bytes); int bytes_read = fx3_control_read(B200_VREQ_EEPROM_READ, @@ -213,7 +215,8 @@ public: return recv_bytes; } - void load_firmware(const std::string filestring, UHD_UNUSED(bool force) = false) + void load_firmware( + const std::string filestring, UHD_UNUSED(bool force) = false) override { if (load_img_msg) { UHD_LOGGER_INFO("B200") << "Loading firmware image: " << filestring << "..."; @@ -244,7 +247,7 @@ public: std::this_thread::sleep_for(std::chrono::milliseconds(1000)); } - void reset_fx3(void) + void reset_fx3(void) override { unsigned char data[4]; memset(data, 0x00, sizeof(data)); @@ -262,7 +265,7 @@ public: .str()); } - void reset_gpif(void) + void reset_gpif(void) override { unsigned char data[4]; memset(data, 0x00, sizeof(data)); @@ -281,7 +284,7 @@ public: .str()); } - void set_fpga_reset_pin(const bool reset) + void set_fpga_reset_pin(const bool reset) override { unsigned char data[4]; memset(data, (reset) ? 0xFF : 0x00, sizeof(data)); @@ -301,7 +304,7 @@ public: */ } - uint8_t get_usb_speed(void) + uint8_t get_usb_speed(void) override { unsigned char rx_data[1]; memset(rx_data, 0x00, sizeof(rx_data)); @@ -321,7 +324,7 @@ public: return boost::lexical_cast<uint8_t>(rx_data[0]); } - uint8_t get_fx3_status(void) + uint8_t get_fx3_status(void) override { unsigned char rx_data[1]; memset(rx_data, 0x00, sizeof(rx_data)); @@ -343,7 +346,7 @@ public: return boost::lexical_cast<uint8_t>(rx_data[0]); } - uint16_t get_compat_num(void) + uint16_t get_compat_num(void) override { unsigned char rx_data[2]; memset(rx_data, 0x00, sizeof(rx_data)); @@ -482,7 +485,7 @@ public: return static_cast<size_t>(filesize); } - uint32_t load_fpga(const std::string filestring, bool force) + uint32_t load_fpga(const std::string filestring, bool force) override { uint8_t fx3_state = 0; uint32_t wait_count; @@ -660,7 +663,7 @@ public: return 0; } - uint32_t load_bootloader(const std::string filestring) + uint32_t load_bootloader(const std::string filestring) override { // open bootloader file const char* filename = filestring.c_str(); diff --git a/host/lib/usrp/b200/b200_iface.hpp b/host/lib/usrp/b200/b200_iface.hpp index 7d7e169d4..5450fb7b6 100644 --- a/host/lib/usrp/b200/b200_iface.hpp +++ b/host/lib/usrp/b200/b200_iface.hpp @@ -94,11 +94,11 @@ public: //! load a bootloader image onto device EEPROM virtual uint32_t load_bootloader(const std::string filestring) = 0; - virtual void write_eeprom( - uint16_t addr, uint16_t offset, const uhd::byte_vector_t& bytes) = 0; + void write_eeprom( + uint16_t addr, uint16_t offset, const uhd::byte_vector_t& bytes) override = 0; - virtual uhd::byte_vector_t read_eeprom( - uint16_t addr, uint16_t offset, size_t num_bytes) = 0; + uhd::byte_vector_t read_eeprom( + uint16_t addr, uint16_t offset, size_t num_bytes) override = 0; static std::string fx3_state_string(uint8_t state); }; diff --git a/host/lib/usrp/b200/b200_image_loader.cpp b/host/lib/usrp/b200/b200_image_loader.cpp index 25bf7ce2f..675819018 100644 --- a/host/lib/usrp/b200/b200_image_loader.cpp +++ b/host/lib/usrp/b200/b200_image_loader.cpp @@ -34,7 +34,7 @@ static b200_iface::sptr get_b200_iface( b200_iface::sptr iface; mboard_eeprom_t eeprom; // Internal use - if (dev_handles.size() > 0) { + if (!dev_handles.empty()) { for (usb_device_handle::sptr dev_handle : dev_handles) { if (dev_handle->firmware_loaded()) { iface = b200_iface::make(usb_control::make(dev_handle, 0)); @@ -104,7 +104,7 @@ static bool b200_image_loader(const image_loader::image_loader_args_t& image_loa return false; // No initialized B2x0 found std::string fpga_path; - if (image_loader_args.fpga_path == "") { + if (image_loader_args.fpga_path.empty()) { /* * Normally, we can auto-generate the FPGA filename from what's in the EEPROM, * but if the applicable value is not in the EEPROM, the user must give a specific diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp index 7f250fd42..e43eff045 100644 --- a/host/lib/usrp/b200/b200_impl.cpp +++ b/host/lib/usrp/b200/b200_impl.cpp @@ -42,8 +42,8 @@ constexpr int64_t REENUMERATION_TIMEOUT_MS = 3000; class b200_ad9361_client_t : public ad9361_params { public: - ~b200_ad9361_client_t() {} - double get_band_edge(frequency_band_t band) + ~b200_ad9361_client_t() override {} + double get_band_edge(frequency_band_t band) override { switch (band) { case AD9361_RX_BAND0: @@ -56,15 +56,15 @@ public: return 0; } } - clocking_mode_t get_clocking_mode() + clocking_mode_t get_clocking_mode() override { return clocking_mode_t::AD9361_XTAL_N_CLK_PATH; } - digital_interface_mode_t get_digital_interface_mode() + digital_interface_mode_t get_digital_interface_mode() override { return AD9361_DDR_FDD_LVCMOS; } - digital_interface_delays_t get_digital_interface_timing() + digital_interface_delays_t get_digital_interface_timing() override { digital_interface_delays_t delays; delays.rx_clk_delay = 0; @@ -79,8 +79,8 @@ public: class b2xxmini_ad9361_client_t : public ad9361_params { public: - ~b2xxmini_ad9361_client_t() {} - double get_band_edge(frequency_band_t band) + ~b2xxmini_ad9361_client_t() override {} + double get_band_edge(frequency_band_t band) override { switch (band) { case AD9361_RX_BAND0: @@ -93,15 +93,15 @@ public: return 0; // On both Rx and Tx } } - clocking_mode_t get_clocking_mode() + clocking_mode_t get_clocking_mode() override { return clocking_mode_t::AD9361_XTAL_N_CLK_PATH; } - digital_interface_mode_t get_digital_interface_mode() + digital_interface_mode_t get_digital_interface_mode() override { return AD9361_DDR_FDD_LVCMOS; } - digital_interface_delays_t get_digital_interface_timing() + digital_interface_delays_t get_digital_interface_timing() override { digital_interface_delays_t delays; delays.rx_clk_delay = 0; diff --git a/host/lib/usrp/b200/b200_impl.hpp b/host/lib/usrp/b200/b200_impl.hpp index cb2edea80..44205f03a 100644 --- a/host/lib/usrp/b200/b200_impl.hpp +++ b/host/lib/usrp/b200/b200_impl.hpp @@ -115,12 +115,12 @@ class b200_impl : public uhd::device public: // structors b200_impl(const uhd::device_addr_t&, uhd::transport::usb_device_handle::sptr& handle); - ~b200_impl(void); + ~b200_impl(void) override; // the io interface - uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args); - uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args); - bool recv_async_msg(uhd::async_metadata_t&, double); + uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args) override; + uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args) override; + bool recv_async_msg(uhd::async_metadata_t&, double) override; //! Check that the combination of stream args and tick rate are valid. // diff --git a/host/lib/usrp/b200/b200_io_impl.cpp b/host/lib/usrp/b200/b200_io_impl.cpp index 57a1b18c7..ac87a0e34 100644 --- a/host/lib/usrp/b200/b200_io_impl.cpp +++ b/host/lib/usrp/b200/b200_io_impl.cpp @@ -255,7 +255,8 @@ uhd::usrp::subdev_spec_t b200_impl::coerce_subdev_spec( // // Any other spec is probably illegal and will be caught by // validate_subdev_spec(). - if (spec.size() and (_product == B200 or _product == B200MINI or _product == B205MINI) + if (!spec.empty() + and (_product == B200 or _product == B200MINI or _product == B205MINI) and spec[0].sd_name == "B") { spec[0].sd_name = "A"; } @@ -266,7 +267,7 @@ void b200_impl::update_subdev_spec( const std::string& tx_rx, const uhd::usrp::subdev_spec_t& spec) { // sanity checking - if (spec.size()) { + if (!spec.empty()) { validate_subdev_spec(_tree, spec, tx_rx); } diff --git a/host/lib/usrp/b200/b200_uart.cpp b/host/lib/usrp/b200/b200_uart.cpp index b78690705..089c6c9b3 100644 --- a/host/lib/usrp/b200/b200_uart.cpp +++ b/host/lib/usrp/b200/b200_uart.cpp @@ -57,21 +57,21 @@ struct b200_uart_impl : b200_uart buff->commit(packet_info.num_packet_words32 * sizeof(uint32_t)); } - void write_uart(const std::string& buff) + void write_uart(const std::string& buff) override { for (const char ch : buff) { this->send_char(ch); } } - std::string read_uart(double timeout) + std::string read_uart(double timeout) override { std::string line; _line_queue.pop_with_timed_wait(line, timeout); return line; } - void handle_uart_packet(managed_recv_buffer::sptr buff) + void handle_uart_packet(managed_recv_buffer::sptr buff) override { const uint32_t* packet_buff = buff->cast<const uint32_t*>(); vrt::if_packet_info_t packet_info; diff --git a/host/lib/usrp/common/ad9361_ctrl.cpp b/host/lib/usrp/common/ad9361_ctrl.cpp index a584ef0f7..55abd025c 100644 --- a/host/lib/usrp/common/ad9361_ctrl.cpp +++ b/host/lib/usrp/common/ad9361_ctrl.cpp @@ -28,9 +28,9 @@ public: { } - virtual ~ad9361_io_spi() {} + ~ad9361_io_spi() override {} - virtual uint8_t peek8(uint32_t reg) + uint8_t peek8(uint32_t reg) override { std::lock_guard<std::mutex> lock(_mutex); @@ -51,7 +51,7 @@ public: return static_cast<uint8_t>(val); } - virtual void poke8(uint32_t reg, uint8_t val) + void poke8(uint32_t reg, uint8_t val) override { std::lock_guard<std::mutex> lock(_mutex); @@ -93,7 +93,7 @@ public: { _device.initialize(); } - double set_gain(const std::string& which, const double value) + double set_gain(const std::string& which, const double value) override { std::lock_guard<std::mutex> lock(_mutex); @@ -103,7 +103,7 @@ public: return return_val; } - void set_agc(const std::string& which, bool enable) + void set_agc(const std::string& which, bool enable) override { std::lock_guard<std::mutex> lock(_mutex); @@ -111,7 +111,7 @@ public: _device.set_agc(chain, enable); } - void set_agc_mode(const std::string& which, const std::string& mode) + void set_agc_mode(const std::string& which, const std::string& mode) override { std::lock_guard<std::mutex> lock(_mutex); ad9361_device_t::chain_t chain = _get_chain_from_antenna(which); @@ -125,7 +125,7 @@ public: } //! set a new clock rate, return the exact value - double set_clock_rate(const double rate) + double set_clock_rate(const double rate) override { std::lock_guard<std::mutex> lock(_mutex); // clip to known bounds @@ -144,14 +144,14 @@ public: } //! set which RX and TX chains/antennas are active - void set_active_chains(bool tx1, bool tx2, bool rx1, bool rx2) + void set_active_chains(bool tx1, bool tx2, bool rx1, bool rx2) override { std::lock_guard<std::mutex> lock(_mutex); _device.set_active_chains(tx1, tx2, rx1, rx2); } //! set which timing mode to use - 1R1T, 2R2T - void set_timing_mode(const std::string& timing_mode) + void set_timing_mode(const std::string& timing_mode) override { std::lock_guard<std::mutex> lock(_mutex); @@ -164,7 +164,7 @@ public: } //! tune the given frontend, return the exact value - double tune(const std::string& which, const double freq) + double tune(const std::string& which, const double freq) override { std::lock_guard<std::mutex> lock(_mutex); @@ -179,7 +179,7 @@ public: } //! get the current frequency for the given frontend - double get_freq(const std::string& which) + double get_freq(const std::string& which) override { std::lock_guard<std::mutex> lock(_mutex); @@ -188,7 +188,7 @@ public: } //! turn on/off data port loopback - void data_port_loopback(const bool on) + void data_port_loopback(const bool on) override { std::lock_guard<std::mutex> lock(_mutex); @@ -196,7 +196,7 @@ public: } //! read internal RSSI sensor - sensor_value_t get_rssi(const std::string& which) + sensor_value_t get_rssi(const std::string& which) override { std::lock_guard<std::mutex> lock(_mutex); @@ -205,12 +205,12 @@ public: } //! read the internal temp sensor. Average over 3 results - sensor_value_t get_temperature() + sensor_value_t get_temperature() override { return sensor_value_t("temp", _device.get_average_temperature(), "C"); } - void set_dc_offset_auto(const std::string& which, const bool on) + void set_dc_offset_auto(const std::string& which, const bool on) override { std::lock_guard<std::mutex> lock(_mutex); @@ -218,7 +218,7 @@ public: _device.set_dc_offset_auto(direction, on); } - void set_iq_balance_auto(const std::string& which, const bool on) + void set_iq_balance_auto(const std::string& which, const bool on) override { std::lock_guard<std::mutex> lock(_mutex); @@ -226,7 +226,7 @@ public: _device.set_iq_balance_auto(direction, on); } - double set_bw_filter(const std::string& which, const double bw) + double set_bw_filter(const std::string& which, const double bw) override { ad9361_device_t::direction_t direction = _get_direction_from_antenna(which); double actual_bw = bw; @@ -248,7 +248,7 @@ public: return actual_bw; } - std::vector<std::string> get_filter_names(const std::string& which) + std::vector<std::string> get_filter_names(const std::string& which) override { std::lock_guard<std::mutex> lock(_mutex); @@ -257,7 +257,7 @@ public: } filter_info_base::sptr get_filter( - const std::string& which, const std::string& filter_name) + const std::string& which, const std::string& filter_name) override { std::lock_guard<std::mutex> lock(_mutex); @@ -268,7 +268,7 @@ public: void set_filter(const std::string& which, const std::string& filter_name, - const filter_info_base::sptr filter) + const filter_info_base::sptr filter) override { std::lock_guard<std::mutex> lock(_mutex); @@ -277,7 +277,7 @@ public: _device.set_filter(direction, chain, filter_name, filter); } - void output_digital_test_tone(bool enb) + void output_digital_test_tone(bool enb) override { _device.digital_test_tone(enb); } diff --git a/host/lib/usrp/common/ad936x_manager.cpp b/host/lib/usrp/common/ad936x_manager.cpp index 9646f0427..31e823d32 100644 --- a/host/lib/usrp/common/ad936x_manager.cpp +++ b/host/lib/usrp/common/ad936x_manager.cpp @@ -57,7 +57,7 @@ public: /************************************************************************ * API Calls ***********************************************************************/ - void init_codec() + void init_codec() override { for (const std::string& rx_fe : _rx_frontends) { _codec_ctrl->set_gain(rx_fe, DEFAULT_GAIN); @@ -86,7 +86,7 @@ public: // worst case conditions to stress the interface. // void loopback_self_test(std::function<void(uint32_t)> poker_functor, - std::function<uint64_t()> peeker_functor) + std::function<uint64_t()> peeker_functor) override { // Put AD936x in loopback mode _codec_ctrl->data_port_loopback(true); @@ -135,7 +135,7 @@ public: } - double get_auto_tick_rate(const double lcm_rate, size_t num_chans) + double get_auto_tick_rate(const double lcm_rate, size_t num_chans) override { UHD_ASSERT_THROW(num_chans >= 1 and num_chans <= _n_frontends); const uhd::meta_range_t rate_range = _codec_ctrl->get_clock_rate_range(); @@ -186,7 +186,7 @@ public: return new_rate; } - bool check_bandwidth(double rate, const std::string dir) + bool check_bandwidth(double rate, const std::string dir) override { double bw = _bw[dir == "Rx" ? "RX1" : "TX1"]; if (bw == 0.) // 0 indicates bandwidth is default value. @@ -208,8 +208,9 @@ public: return (rate <= bw); } - void populate_frontend_subtree( - uhd::property_tree::sptr subtree, const std::string& key, uhd::direction_t dir) + void populate_frontend_subtree(uhd::property_tree::sptr subtree, + const std::string& key, + uhd::direction_t dir) override { subtree->create<std::string>("name").set("FE-" + key); diff --git a/host/lib/usrp/common/fx2_ctrl.cpp b/host/lib/usrp/common/fx2_ctrl.cpp index cbb108dae..82e84c6d9 100644 --- a/host/lib/usrp/common/fx2_ctrl.cpp +++ b/host/lib/usrp/common/fx2_ctrl.cpp @@ -134,7 +134,7 @@ public: _ctrl_transport = ctrl_transport; } - void usrp_fx2_reset(void) + void usrp_fx2_reset(void) override { unsigned char reset_y = 1; unsigned char reset_n = 0; @@ -144,7 +144,7 @@ public: std::this_thread::sleep_for(std::chrono::milliseconds(2000)); } - void usrp_load_firmware(std::string filestring, bool force) + void usrp_load_firmware(std::string filestring, bool force) override { const char* filename = filestring.c_str(); @@ -218,7 +218,7 @@ public: throw uhd::io_error("usrp_load_firmware: bad record"); } - void usrp_init(void) + void usrp_init(void) override { // disable usrp_rx_enable(false); @@ -231,7 +231,7 @@ public: usrp_tx_reset(false); } - void usrp_load_fpga(std::string filestring) + void usrp_load_fpga(std::string filestring) override { const char* filename = filestring.c_str(); @@ -283,7 +283,7 @@ public: UHD_LOGGER_INFO("FX2") << "FPGA image loaded"; } - void usrp_load_eeprom(std::string filestring) + void usrp_load_eeprom(std::string filestring) override { if (load_img_msg) UHD_LOGGER_INFO("FX2") << "Loading EEPROM image: " << filestring << "..."; @@ -369,13 +369,13 @@ public: >= 0); } - void usrp_tx_enable(bool on) + void usrp_tx_enable(bool on) override { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_TX_ENABLE, on, 0) >= 0); } - void usrp_rx_enable(bool on) + void usrp_rx_enable(bool on) override { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RX_ENABLE, on, 0) >= 0); } @@ -392,7 +392,7 @@ public: UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RX_RESET, on, 0) >= 0); } - void usrp_fpga_reset(bool on) + void usrp_fpga_reset(bool on) override { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RESET, on, 0) >= 0); } @@ -401,7 +401,7 @@ public: uint16_t value, uint16_t index, unsigned char* buff, - uint16_t length) + uint16_t length) override { return _ctrl_transport->submit(VRT_VENDOR_OUT, // bmReqeustType request, // bRequest @@ -416,7 +416,7 @@ public: uint16_t value, uint16_t index, unsigned char* buff, - uint16_t length) + uint16_t length) override { return _ctrl_transport->submit(VRT_VENDOR_IN, // bmReqeustType request, // bRequest @@ -432,18 +432,18 @@ public: return usrp_control_write(request, value, index, 0, 0); } - byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) + byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) override { this->write_i2c(addr, byte_vector_t(1, uint8_t(offset))); return this->read_i2c(addr, num_bytes); } - int usrp_i2c_write(uint16_t i2c_addr, unsigned char* buf, uint16_t len) + int usrp_i2c_write(uint16_t i2c_addr, unsigned char* buf, uint16_t len) override { return usrp_control_write(VRQ_I2C_WRITE, i2c_addr, 0, buf, len); } - int usrp_i2c_read(uint16_t i2c_addr, unsigned char* buf, uint16_t len) + int usrp_i2c_read(uint16_t i2c_addr, unsigned char* buf, uint16_t len) override { return usrp_control_read(VRQ_I2C_READ, i2c_addr, 0, buf, len); } @@ -451,7 +451,7 @@ public: static const bool iface_debug = false; static const size_t max_i2c_data_bytes = 64; - void write_i2c(uint16_t addr, const byte_vector_t& bytes) + void write_i2c(uint16_t addr, const byte_vector_t& bytes) override { UHD_ASSERT_THROW(bytes.size() < max_i2c_data_bytes); @@ -462,7 +462,7 @@ public: uhd::runtime_error("USRP: failed i2c write"); } - byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) + byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) override { UHD_ASSERT_THROW(num_bytes < max_i2c_data_bytes); diff --git a/host/lib/usrp/common/io_service_mgr.cpp b/host/lib/usrp/common/io_service_mgr.cpp index e30fa422d..0c2af5f68 100644 --- a/host/lib/usrp/common/io_service_mgr.cpp +++ b/host/lib/usrp/common/io_service_mgr.cpp @@ -416,9 +416,10 @@ public: const link_type_t link_type, const io_service_args_t& default_args, const uhd::device_addr_t& stream_args, - const std::string& streamer_id); + const std::string& streamer_id) override; - void disconnect_links(recv_link_if::sptr recv_link, send_link_if::sptr send_link); + void disconnect_links( + recv_link_if::sptr recv_link, send_link_if::sptr send_link) override; private: enum io_service_type_t { INLINE_IO_SRV, BLOCKING_IO_SRV, POLLING_IO_SRV }; diff --git a/host/lib/usrp/common/pwr_cal_mgr.cpp b/host/lib/usrp/common/pwr_cal_mgr.cpp index 0c30be7ad..d2838cbe9 100644 --- a/host/lib/usrp/common/pwr_cal_mgr.cpp +++ b/host/lib/usrp/common/pwr_cal_mgr.cpp @@ -55,19 +55,19 @@ public: set_serial(serial); } - void set_gain_group(uhd::gain_group::sptr gain_group) + void set_gain_group(uhd::gain_group::sptr gain_group) override { _gain_group = gain_group; } - bool has_power_data() + bool has_power_data() override { const std::string key = _get_key(); _load_cal_data(key); return _cal_data.count(key) && bool(_cal_data.at(key)); } - void populate_subtree(uhd::property_tree::sptr subtree) + void populate_subtree(uhd::property_tree::sptr subtree) override { subtree->create<std::string>(uhd::fs_path("ref_power/key")) .set_coercer([](const std::string&) -> std::string { @@ -93,7 +93,7 @@ public: .set_publisher([this]() { return this->get_power_range(); }); } - double set_power(const double power_dbm) + double set_power(const double power_dbm) override { const std::string key = _get_key(); _load_cal_data(key); @@ -128,7 +128,7 @@ public: return coerced_total_power; } - double get_power() + double get_power() override { const std::string key = _get_key(); _load_cal_data(key); @@ -148,14 +148,14 @@ public: return hw_power + (_gain_group->get_value() - hw_gain); } - void update_power() + void update_power() override { if (_mode == tracking_mode::TRACK_POWER) { set_power(_desired_power); } } - uhd::meta_range_t get_power_range() + uhd::meta_range_t get_power_range() override { const std::string key = _get_key(); _load_cal_data(key); @@ -171,7 +171,7 @@ public: return cal_data->get_power_limits(freq); } - void set_temperature(const int temp_C) + void set_temperature(const int temp_C) override { for (auto& cal_data : _cal_data) { if (cal_data.second) { @@ -180,12 +180,12 @@ public: } } - void set_tracking_mode(const tracking_mode mode) + void set_tracking_mode(const tracking_mode mode) override { _mode = mode; } - void set_serial(const std::string& serial) + void set_serial(const std::string& serial) override { if (serial == _serial || serial.empty()) { return; @@ -233,12 +233,12 @@ public: } } - std::string get_serial() const + std::string get_serial() const override { return _serial; } - std::string get_key() + std::string get_key() override { return _get_key(); } diff --git a/host/lib/usrp/common/recv_packet_demuxer.cpp b/host/lib/usrp/common/recv_packet_demuxer.cpp index c5ed1563e..9d3067286 100644 --- a/host/lib/usrp/common/recv_packet_demuxer.cpp +++ b/host/lib/usrp/common/recv_packet_demuxer.cpp @@ -26,7 +26,7 @@ public: { /*NOP*/ } - void release(void) + void release(void) override { delete this; } @@ -56,7 +56,8 @@ public: /* NOP */ } - managed_recv_buffer::sptr get_recv_buff(const size_t index, const double timeout) + managed_recv_buffer::sptr get_recv_buff( + const size_t index, const double timeout) override { boost::mutex::scoped_lock lock(_mutex); managed_recv_buffer::sptr buff; diff --git a/host/lib/usrp/common/validate_subdev_spec.cpp b/host/lib/usrp/common/validate_subdev_spec.cpp index 61895a7f8..dc9c7700a 100644 --- a/host/lib/usrp/common/validate_subdev_spec.cpp +++ b/host/lib/usrp/common/validate_subdev_spec.cpp @@ -32,7 +32,7 @@ void uhd::usrp::validate_subdev_spec(property_tree::sptr tree, tree->list(str(boost::format("/mboards/%s/%s_dsps") % mb % type)).size(); // sanity checking on the length - if (spec.size() == 0) + if (spec.empty()) throw uhd::value_error( str(boost::format("Empty %s subdevice specification is not supported.\n") % type)); diff --git a/host/lib/usrp/cores/dma_fifo_core_3000.cpp b/host/lib/usrp/cores/dma_fifo_core_3000.cpp index 382006b67..405ff24d8 100644 --- a/host/lib/usrp/cores/dma_fifo_core_3000.cpp +++ b/host/lib/usrp/cores/dma_fifo_core_3000.cpp @@ -83,12 +83,12 @@ public: << dma_fifo_core_3000_impl::get_fifo_timeout() << " cycles"); } - virtual ~dma_fifo_core_3000_impl() {} + ~dma_fifo_core_3000_impl() override {} /************************************************************************** * API *************************************************************************/ - bool has_bist() const + bool has_bist() const override { return _has_bist; } @@ -101,17 +101,17 @@ public: // TODO: read suppress API // fullness in bytes - uint64_t get_fifo_fullness() + uint64_t get_fifo_fullness() override { return peek64(REG_FIFO_FULLNESS); } - uint16_t get_fifo_timeout() + uint16_t get_fifo_timeout() override { return peek32(REG_FIFO_TIMEOUT) & 0xFFF; } - void set_fifo_timeout(const uint16_t timeout_cycles) + void set_fifo_timeout(const uint16_t timeout_cycles) override { UHD_ASSERT_THROW(timeout_cycles <= 0xFFF); poke32(timeout_cycles, REG_FIFO_TIMEOUT); @@ -138,7 +138,7 @@ public: poke64(REG_FIFO_ADDR_BASE, base_addr); } - uint32_t get_packet_count() + uint32_t get_packet_count() override { return peek32(REG_FIFO_PACKET_CNT); } @@ -197,7 +197,7 @@ public: poke32(REG_BIST_CTRL, 1 << 2); } - double run_bist(const uint64_t num_bytes, const double timeout_s) + double run_bist(const uint64_t num_bytes, const double timeout_s) override { // The number of cycles it will take to transfer all the BIST data if // there is a transfer on every clock cycle (this is the minimum time it diff --git a/host/lib/usrp/cores/gpio_atr_3000.cpp b/host/lib/usrp/cores/gpio_atr_3000.cpp index 14996f659..875752ee2 100644 --- a/host/lib/usrp/cores/gpio_atr_3000.cpp +++ b/host/lib/usrp/cores/gpio_atr_3000.cpp @@ -64,7 +64,7 @@ public: } } - virtual void set_atr_mode(const gpio_atr_mode_t mode, const uint32_t mask) + void set_atr_mode(const gpio_atr_mode_t mode, const uint32_t mask) override { // Each bit in the "ATR Disable" register determines whether the respective bit in // the GPIO output bus is driven by the ATR engine or a static register. For each @@ -79,7 +79,7 @@ public: _update_attr_state(GPIO_CTRL, ~value, mask); } - virtual void set_gpio_ddr(const gpio_ddr_t dir, const uint32_t mask) + void set_gpio_ddr(const gpio_ddr_t dir, const uint32_t mask) override { // Each bit in the "DDR" register determines whether the respective bit in the // GPIO bus is an input or an output. For each bit position, a 1 means that the @@ -92,9 +92,9 @@ public: _update_attr_state(GPIO_DDR, value, mask); } - virtual void set_atr_reg(const gpio_atr_reg_t atr, + void set_atr_reg(const gpio_atr_reg_t atr, const uint32_t value, - const uint32_t mask = MASK_SET_ALL) + const uint32_t mask = MASK_SET_ALL) override { // Set the value of the specified ATR register. For bits with ATR Disable set to // 1, the IDLE register will hold the output state This setting will only get @@ -135,7 +135,7 @@ public: _update_attr_state(attr, value, mask); } - virtual void set_gpio_out(const uint32_t value, const uint32_t mask = MASK_SET_ALL) + void set_gpio_out(const uint32_t value, const uint32_t mask = MASK_SET_ALL) override { // Set the value of the specified GPIO output register. // This setting will only get applied to all bits in the "mask" that are 1. All @@ -148,7 +148,7 @@ public: _update_attr_state(GPIO_OUT, value, mask); } - virtual uint32_t read_gpio() + uint32_t read_gpio() override { // Read the state of the GPIO pins // If a pin is configured as an input, reads the actual value of the pin @@ -160,7 +160,7 @@ public: } } - virtual uint32_t get_attr_reg(const gpio_attr_t attr) + uint32_t get_attr_reg(const gpio_attr_t attr) override { if (attr == GPIO_SRC) { throw uhd::runtime_error("Can't get GPIO source by GPIO ATR interface."); @@ -175,7 +175,7 @@ public: return _attr_reg_state.at(attr); } - inline virtual void set_gpio_attr(const gpio_attr_t attr, const uint32_t value) + inline void set_gpio_attr(const gpio_attr_t attr, const uint32_t value) override { // An attribute based API to configure all settings for the GPIO bus in one // function call. This API does not have a mask so it configures all bits at the @@ -243,7 +243,7 @@ protected: return uhd::soft_reg32_wo_t::get(uhd::soft_reg32_wo_t::REGISTER); } - virtual void flush() + void flush() override { uhd::soft_reg32_wo_t::flush(); } @@ -260,12 +260,12 @@ protected: { } - virtual void set_with_mask(const uint32_t value, const uint32_t mask) + void set_with_mask(const uint32_t value, const uint32_t mask) override { _atr_idle_cache = (value & mask) | (_atr_idle_cache & (~mask)); } - virtual uint32_t get() + uint32_t get() override { return _atr_idle_cache; } @@ -280,7 +280,7 @@ protected: return _gpio_out_cache; } - virtual void flush() + void flush() override { set(REGISTER, (_atr_idle_cache & (~_atr_disable_reg.get())) @@ -344,26 +344,26 @@ public: } inline void set_pin_ctrl( - const db_unit_t unit, const uint32_t value, const uint32_t mask) + const db_unit_t unit, const uint32_t value, const uint32_t mask) override { gpio_atr_3000_impl::set_atr_mode(MODE_ATR, compute_mask(unit, value & mask)); gpio_atr_3000_impl::set_atr_mode(MODE_GPIO, compute_mask(unit, (~value) & mask)); } - inline uint32_t get_pin_ctrl(const db_unit_t unit) + inline uint32_t get_pin_ctrl(const db_unit_t unit) override { return (~_atr_disable_reg.get()) >> compute_shift(unit); } using gpio_atr_3000_impl::set_gpio_ddr; inline void set_gpio_ddr( - const db_unit_t unit, const uint32_t value, const uint32_t mask) + const db_unit_t unit, const uint32_t value, const uint32_t mask) override { gpio_atr_3000_impl::set_gpio_ddr(DDR_OUTPUT, compute_mask(unit, value & mask)); gpio_atr_3000_impl::set_gpio_ddr(DDR_INPUT, compute_mask(unit, (~value) & mask)); } - inline uint32_t get_gpio_ddr(const db_unit_t unit) + inline uint32_t get_gpio_ddr(const db_unit_t unit) override { return _ddr_reg.get() >> compute_shift(unit); } @@ -372,13 +372,13 @@ public: inline void set_atr_reg(const db_unit_t unit, const gpio_atr_reg_t atr, const uint32_t value, - const uint32_t mask) + const uint32_t mask) override { gpio_atr_3000_impl::set_atr_reg( atr, value << compute_shift(unit), compute_mask(unit, mask)); } - inline uint32_t get_atr_reg(const db_unit_t unit, const gpio_atr_reg_t atr) + inline uint32_t get_atr_reg(const db_unit_t unit, const gpio_atr_reg_t atr) override { masked_reg_t* reg = NULL; switch (atr) { @@ -403,21 +403,21 @@ public: using gpio_atr_3000_impl::set_gpio_out; inline void set_gpio_out( - const db_unit_t unit, const uint32_t value, const uint32_t mask) + const db_unit_t unit, const uint32_t value, const uint32_t mask) override { gpio_atr_3000_impl::set_gpio_out( static_cast<uint32_t>(value) << compute_shift(unit), compute_mask(unit, mask)); } - inline uint32_t get_gpio_out(const db_unit_t unit) + inline uint32_t get_gpio_out(const db_unit_t unit) override { return (_atr_idle_reg.get_gpio_out() & compute_mask(unit, MASK_SET_ALL)) >> compute_shift(unit); } using gpio_atr_3000_impl::read_gpio; - inline uint32_t read_gpio(const db_unit_t unit) + inline uint32_t read_gpio(const db_unit_t unit) override { return (gpio_atr_3000_impl::read_gpio() & compute_mask(unit, MASK_SET_ALL)) >> compute_shift(unit); diff --git a/host/lib/usrp/cores/gpio_core_200.cpp b/host/lib/usrp/cores/gpio_core_200.cpp index 7ee0daf70..b39cd0b75 100644 --- a/host/lib/usrp/cores/gpio_core_200.cpp +++ b/host/lib/usrp/cores/gpio_core_200.cpp @@ -36,7 +36,8 @@ public: { /* NOP */ } - void set_pin_ctrl(const unit_t unit, const uint16_t value, const uint16_t mask) + void set_pin_ctrl( + const unit_t unit, const uint16_t value, const uint16_t mask) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); @@ -44,15 +45,17 @@ public: update(); // full update } - uint16_t get_pin_ctrl(unit_t unit) + uint16_t get_pin_ctrl(unit_t unit) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); return _pin_ctrl[unit]; } - void set_atr_reg( - const unit_t unit, const atr_reg_t atr, const uint16_t value, const uint16_t mask) + void set_atr_reg(const unit_t unit, + const atr_reg_t atr, + const uint16_t value, + const uint16_t mask) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); @@ -65,14 +68,15 @@ public: update(atr); } - uint16_t get_atr_reg(unit_t unit, atr_reg_t reg) + uint16_t get_atr_reg(unit_t unit, atr_reg_t reg) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); return _atr_regs[unit][reg]; } - void set_gpio_ddr(const unit_t unit, const uint16_t value, const uint16_t mask) + void set_gpio_ddr( + const unit_t unit, const uint16_t value, const uint16_t mask) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); @@ -84,14 +88,15 @@ public: << shift_by_unit(dboard_iface::UNIT_TX))); } - uint16_t get_gpio_ddr(unit_t unit) + uint16_t get_gpio_ddr(unit_t unit) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); return _gpio_ddr[unit]; } - void set_gpio_out(const unit_t unit, const uint16_t value, const uint16_t mask) + void set_gpio_out( + const unit_t unit, const uint16_t value, const uint16_t mask) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); @@ -99,14 +104,14 @@ public: this->update(); // full update } - uint16_t get_gpio_out(unit_t unit) + uint16_t get_gpio_out(unit_t unit) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); return _gpio_out[unit]; } - uint16_t read_gpio(const unit_t unit) + uint16_t read_gpio(const unit_t unit) override { if (unit == dboard_iface::UNIT_BOTH) throw uhd::runtime_error("UNIT_BOTH not supported in gpio_core_200"); @@ -197,13 +202,13 @@ public: set_ddr_reg(); } - void set_ddr_reg() + void set_ddr_reg() override { _iface->poke32(REG_GPIO_DDR, 0xffffffff); } - void set_atr_reg(const atr_reg_t atr, const uint32_t value) + void set_atr_reg(const atr_reg_t atr, const uint32_t value) override { if (atr == gpio_atr::ATR_REG_IDLE) _iface->poke32(REG_GPIO_IDLE, value); @@ -217,7 +222,7 @@ public: UHD_THROW_INVALID_CODE_PATH(); } - void set_all_regs(const uint32_t value) + void set_all_regs(const uint32_t value) override { set_atr_reg(gpio_atr::ATR_REG_IDLE, value); set_atr_reg(gpio_atr::ATR_REG_TX_ONLY, value); diff --git a/host/lib/usrp/cores/i2c_core_100_wb32.cpp b/host/lib/usrp/cores/i2c_core_100_wb32.cpp index d3d0a135a..d1f1f9fe0 100644 --- a/host/lib/usrp/cores/i2c_core_100_wb32.cpp +++ b/host/lib/usrp/cores/i2c_core_100_wb32.cpp @@ -61,7 +61,7 @@ public: _iface->poke32(REG_I2C_CTRL, I2C_CTRL_EN); // enable I2C core } - void set_clock_rate(const double rate) + void set_clock_rate(const double rate) override { static const uint32_t i2c_datarate = 400000; uint16_t prescaler = uint16_t(rate / (i2c_datarate * 5) - 1); @@ -69,11 +69,11 @@ public: _iface->poke32(REG_I2C_PRESCALER_HI, (prescaler >> 8) & 0xFF); } - void write_i2c(uint16_t addr, const byte_vector_t& bytes) + void write_i2c(uint16_t addr, const byte_vector_t& bytes) override { _iface->poke32(REG_I2C_DATA, (addr << 1) | 0); // addr and read bit (0) _iface->poke32(REG_I2C_CMD_STATUS, - I2C_CMD_WR | I2C_CMD_START | (bytes.size() == 0 ? I2C_CMD_STOP : 0)); + I2C_CMD_WR | I2C_CMD_START | (bytes.empty() ? I2C_CMD_STOP : 0)); // wait for previous transfer to complete if (not wait_chk_ack()) { @@ -92,7 +92,7 @@ public: } } - byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) + byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) override { byte_vector_t bytes; if (num_bytes == 0) @@ -119,7 +119,7 @@ public: // override read_eeprom so we can write once, read all N bytes // the default implementation calls read i2c once per byte - byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) + byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) override { this->write_i2c(addr, byte_vector_t(1, uint8_t(offset))); return this->read_i2c(addr, num_bytes); diff --git a/host/lib/usrp/cores/i2c_core_200.cpp b/host/lib/usrp/cores/i2c_core_200.cpp index 431ba194c..93e3fedf8 100644 --- a/host/lib/usrp/cores/i2c_core_200.cpp +++ b/host/lib/usrp/cores/i2c_core_200.cpp @@ -70,11 +70,11 @@ public: this->poke(REG_I2C_WR_CTRL, I2C_CTRL_EN); // enable I2C core } - void write_i2c(uint16_t addr, const byte_vector_t& bytes) + void write_i2c(uint16_t addr, const byte_vector_t& bytes) override { this->poke(REG_I2C_WR_DATA, (addr << 1) | 0); // addr and read bit (0) this->poke(REG_I2C_WR_CMD, - I2C_CMD_WR | I2C_CMD_START | (bytes.size() == 0 ? I2C_CMD_STOP : 0)); + I2C_CMD_WR | I2C_CMD_START | (bytes.empty() ? I2C_CMD_STOP : 0)); // wait for previous transfer to complete if (not wait_chk_ack()) { @@ -93,7 +93,7 @@ public: } } - byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) + byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) override { byte_vector_t bytes; if (num_bytes == 0) diff --git a/host/lib/usrp/cores/radio_ctrl_core_3000.cpp b/host/lib/usrp/cores/radio_ctrl_core_3000.cpp index 7518bfe6f..6947da3f1 100644 --- a/host/lib/usrp/cores/radio_ctrl_core_3000.cpp +++ b/host/lib/usrp/cores/radio_ctrl_core_3000.cpp @@ -60,7 +60,7 @@ public: this->set_tick_rate(1.0); // something possible but bogus } - ~radio_ctrl_core_3000_impl(void) + ~radio_ctrl_core_3000_impl(void) override { _timeout = ACK_TIMEOUT; // reset timeout to something small UHD_SAFE_CALL( @@ -72,14 +72,14 @@ public: /******************************************************************* * Peek and poke 32 bit implementation ******************************************************************/ - void poke32(const wb_addr_type addr, const uint32_t data) + void poke32(const wb_addr_type addr, const uint32_t data) override { boost::mutex::scoped_lock lock(_mutex); this->send_pkt(addr / 4, data); this->wait_for_ack(false); } - uint32_t peek32(const wb_addr_type addr) + uint32_t peek32(const wb_addr_type addr) override { boost::mutex::scoped_lock lock(_mutex); this->send_pkt(SR_READBACK, addr / 8); @@ -89,7 +89,7 @@ public: return ((addr / 4) & 0x1) ? hi : lo; } - uint64_t peek64(const wb_addr_type addr) + uint64_t peek64(const wb_addr_type addr) override { boost::mutex::scoped_lock lock(_mutex); this->send_pkt(SR_READBACK, addr / 8); @@ -99,7 +99,7 @@ public: /******************************************************************* * Update methods for time ******************************************************************/ - void set_time(const uhd::time_spec_t& time) + void set_time(const uhd::time_spec_t& time) override { boost::mutex::scoped_lock lock(_mutex); _time = time; @@ -108,13 +108,13 @@ public: _timeout = MASSIVE_TIMEOUT; // permanently sets larger timeout } - uhd::time_spec_t get_time(void) + uhd::time_spec_t get_time(void) override { boost::mutex::scoped_lock lock(_mutex); return _time; } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { boost::mutex::scoped_lock lock(_mutex); _tick_rate = rate; @@ -298,7 +298,7 @@ private: uhd::msg_task::msg_payload_t msg; do { msg = _async_task->get_msg_from_dump_queue(recv_sid); - } while (msg.size() < min_buff_size && msg.size() != 0); + } while (msg.size() < min_buff_size && !msg.empty()); if (msg.size() >= min_buff_size) { memcpy(b.data, &msg.front(), std::min(msg.size(), sizeof(b.data))); @@ -307,14 +307,14 @@ private: return false; } - void push_response(const uint32_t* buff) + void push_response(const uint32_t* buff) override { resp_buff_type resp_buff; std::memcpy(resp_buff.data, buff, sizeof(resp_buff)); _resp_queue.push_with_haste(resp_buff); } - void hold_task(uhd::msg_task::sptr task) + void hold_task(uhd::msg_task::sptr task) override { _async_task = task; } diff --git a/host/lib/usrp/cores/rx_dsp_core_200.cpp b/host/lib/usrp/cores/rx_dsp_core_200.cpp index 89b44290f..5e2c3804f 100644 --- a/host/lib/usrp/cores/rx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_200.cpp @@ -82,14 +82,14 @@ public: this->clear(); } - ~rx_dsp_core_200_impl(void) + ~rx_dsp_core_200_impl(void) override { UHD_SAFE_CALL( // shutdown any possible streaming this->clear();) } - void clear(void) + void clear(void) override { _iface->poke32(REG_RX_CTRL_NCHANNELS, 0); // also reset _iface->poke32(REG_RX_CTRL_VRT_HDR, @@ -101,12 +101,12 @@ public: _iface->poke32(REG_RX_CTRL_VRT_TLR, 0); } - void set_nsamps_per_packet(const size_t nsamps) + void set_nsamps_per_packet(const size_t nsamps) override { _iface->poke32(REG_RX_CTRL_NSAMPS_PP, nsamps); } - void issue_stream_command(const stream_cmd_t& stream_cmd) + void issue_stream_command(const stream_cmd_t& stream_cmd) override { UHD_ASSERT_THROW(stream_cmd.num_samps <= 0x0fffffff); _continuous_streaming = stream_cmd.stream_mode @@ -147,7 +147,7 @@ public: _iface->poke32(REG_RX_CTRL_TIME_LO, uint32_t(ticks >> 0)); // latches the command } - void set_mux(const std::string& mode, const bool fe_swapped) + void set_mux(const std::string& mode, const bool fe_swapped) override { static const uhd::dict<std::string, uint32_t> mode_to_mux = boost::assign::map_list_of("IQ", 0)("QI", FLAG_DSP_RX_MUX_SWAP_IQ)( @@ -157,18 +157,18 @@ public: mode_to_mux[mode] ^ (fe_swapped ? FLAG_DSP_RX_MUX_SWAP_IQ : 0)); } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; } - void set_link_rate(const double rate) + void set_link_rate(const double rate) override { //_link_rate = rate/sizeof(uint32_t); //in samps/s _link_rate = rate / sizeof(uint16_t); // in samps/s (allows for 8sc) } - uhd::meta_range_t get_host_rates(void) + uhd::meta_range_t get_host_rates(void) override { meta_range_t range; for (int rate = 512; rate > 256; rate -= 4) { @@ -183,7 +183,7 @@ public: return range; } - double set_host_rate(const double rate) + double set_host_rate(const double rate) override { const size_t decim_rate = boost::math::iround(_tick_rate / this->get_host_rates().clip(rate, true)); @@ -235,12 +235,12 @@ public: _iface->poke32(REG_DSP_RX_SCALE_IQ, actual_scalar); } - double get_scaling_adjustment(void) + double get_scaling_adjustment(void) override { return _fxpt_scalar_correction * _host_extra_scaling / 32767.; } - double set_freq(const double requested_freq) + double set_freq(const double requested_freq) override { double actual_freq; int32_t freq_word; @@ -249,19 +249,19 @@ public: return actual_freq; } - uhd::meta_range_t get_freq_range(void) + uhd::meta_range_t get_freq_range(void) override { return uhd::meta_range_t( -_tick_rate / 2, +_tick_rate / 2, _tick_rate / std::pow(2.0, 32)); } - void handle_overflow(void) + void handle_overflow(void) override { if (_continuous_streaming) issue_stream_command(stream_cmd_t::STREAM_MODE_START_CONTINUOUS); } - void setup(const uhd::stream_args_t& stream_args) + void setup(const uhd::stream_args_t& stream_args) override { if (not stream_args.args.has_key("noclear")) this->clear(); diff --git a/host/lib/usrp/cores/rx_dsp_core_3000.cpp b/host/lib/usrp/cores/rx_dsp_core_3000.cpp index 3724ca827..ff431fd41 100644 --- a/host/lib/usrp/cores/rx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_3000.cpp @@ -54,13 +54,13 @@ public: { } - ~rx_dsp_core_3000_impl(void) + ~rx_dsp_core_3000_impl(void) override { UHD_SAFE_CALL(; // NOP ) } - void set_mux(const uhd::usrp::fe_connection_t& fe_conn) + void set_mux(const uhd::usrp::fe_connection_t& fe_conn) override { uint32_t reg_val = 0; switch (fe_conn.get_sampling_mode()) { @@ -101,19 +101,19 @@ public: } } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; set_freq(_current_freq); } - void set_link_rate(const double rate) + void set_link_rate(const double rate) override { //_link_rate = rate/sizeof(uint32_t); //in samps/s _link_rate = rate / sizeof(uint16_t); // in samps/s (allows for 8sc) } - uhd::meta_range_t get_host_rates(void) + uhd::meta_range_t get_host_rates(void) override { meta_range_t range; if (!_is_b200) { @@ -133,7 +133,7 @@ public: return range; } - double set_host_rate(const double rate) + double set_host_rate(const double rate) override { const size_t decim_rate = boost::math::iround(_tick_rate / this->get_host_rates().clip(rate, true)); @@ -237,12 +237,12 @@ public: _iface->poke32(REG_DSP_RX_SCALE_IQ, actual_scalar); } - double get_scaling_adjustment(void) + double get_scaling_adjustment(void) override { return _fxpt_scalar_correction * _host_extra_scaling / 32767.; } - double set_freq(const double requested_freq) + double set_freq(const double requested_freq) override { double actual_freq; int32_t freq_word; @@ -253,12 +253,12 @@ public: return actual_freq; } - double get_freq(void) + double get_freq(void) override { return _current_freq; } - uhd::meta_range_t get_freq_range(void) + uhd::meta_range_t get_freq_range(void) override { // Too keep the DSP range symmetric about 0, we use abs(_dsp_freq_offset) const double offset = std::abs<double>(_dsp_freq_offset); @@ -267,7 +267,7 @@ public: _tick_rate / std::pow(2.0, 32)); } - void setup(const uhd::stream_args_t& stream_args) + void setup(const uhd::stream_args_t& stream_args) override { if (stream_args.otw_format == "sc16") { _dsp_extra_scaling = 1.0; @@ -294,7 +294,7 @@ public: this->update_scalar(); } - void populate_subtree(property_tree::sptr subtree) + void populate_subtree(property_tree::sptr subtree) override { subtree->create<meta_range_t>("rate/range") .set_publisher(std::bind(&rx_dsp_core_3000::get_host_rates, this)); diff --git a/host/lib/usrp/cores/rx_frontend_core_200.cpp b/host/lib/usrp/cores/rx_frontend_core_200.cpp index b16de0d9e..d96672da4 100644 --- a/host/lib/usrp/cores/rx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_200.cpp @@ -52,17 +52,17 @@ public: // NOP } - void set_mux(const bool swap) + void set_mux(const bool swap) override { _iface->poke32(REG_RX_FE_SWAP_IQ, swap ? 1 : 0); } - void set_dc_offset_auto(const bool enb) + void set_dc_offset_auto(const bool enb) override { this->set_dc_offset(enb ? 0 : OFFSET_FIXED); } - std::complex<double> set_dc_offset(const std::complex<double>& off) + std::complex<double> set_dc_offset(const std::complex<double>& off) override { static const double scaler = double(1ul << 29); _i_dc_off = boost::math::iround(off.real() * scaler); @@ -79,13 +79,13 @@ public: _iface->poke32(REG_RX_FE_OFFSET_Q, flags | (_q_dc_off & ~FLAG_MASK)); } - void set_iq_balance(const std::complex<double>& cor) + void set_iq_balance(const std::complex<double>& cor) override { _iface->poke32(REG_RX_FE_MAG_CORRECTION, fs_to_bits(cor.real(), 18)); _iface->poke32(REG_RX_FE_PHASE_CORRECTION, fs_to_bits(cor.imag(), 18)); } - void populate_subtree(uhd::property_tree::sptr subtree) + void populate_subtree(uhd::property_tree::sptr subtree) override { subtree->create<uhd::meta_range_t>("dc_offset/range") .set(meta_range_t(DC_OFFSET_MIN, DC_OFFSET_MAX)); diff --git a/host/lib/usrp/cores/rx_frontend_core_3000.cpp b/host/lib/usrp/cores/rx_frontend_core_3000.cpp index 756f0995d..abbe64b13 100644 --- a/host/lib/usrp/cores/rx_frontend_core_3000.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_3000.cpp @@ -79,12 +79,12 @@ public: // NOP } - void set_adc_rate(const double rate) + void set_adc_rate(const double rate) override { _adc_rate = rate; } - void bypass_all(bool bypass_en) + void bypass_all(bool bypass_en) override { if (bypass_en) { _iface->poke32(_rx_fe_mapping_reg, FLAG_DSP_RX_MAPPING_BYPASS_ALL); @@ -93,7 +93,7 @@ public: } } - void set_fe_connection(const fe_connection_t& fe_conn) + void set_fe_connection(const fe_connection_t& fe_conn) override { uint32_t mapping_reg_val = 0; switch (fe_conn.get_sampling_mode()) { @@ -143,12 +143,12 @@ public: _fe_conn = fe_conn; } - void set_dc_offset_auto(const bool enb) + void set_dc_offset_auto(const bool enb) override { _set_dc_offset(enb ? 0 : OFFSET_FIXED); } - std::complex<double> set_dc_offset(const std::complex<double>& off) + std::complex<double> set_dc_offset(const std::complex<double>& off) override { static const double scaler = double(1ul << 29); _i_dc_off = boost::math::iround(off.real() * scaler); @@ -165,13 +165,13 @@ public: _iface->poke32(_rx_fe_offset_q_reg, flags | (_q_dc_off & ~FLAG_MASK)); } - void set_iq_balance(const std::complex<double>& cor) + void set_iq_balance(const std::complex<double>& cor) override { _iface->poke32(_rx_fe_mag_corr_reg, fs_to_bits(cor.real(), 18)); _iface->poke32(_rx_fe_phase_corr_reg, fs_to_bits(cor.imag(), 18)); } - void populate_subtree(uhd::property_tree::sptr subtree) + void populate_subtree(uhd::property_tree::sptr subtree) override { subtree->create<uhd::meta_range_t>("dc_offset/range") .set(meta_range_t(DC_OFFSET_MIN, DC_OFFSET_MAX)); diff --git a/host/lib/usrp/cores/rx_vita_core_3000.cpp b/host/lib/usrp/cores/rx_vita_core_3000.cpp index fb3305ce8..622120d90 100644 --- a/host/lib/usrp/cores/rx_vita_core_3000.cpp +++ b/host/lib/usrp/cores/rx_vita_core_3000.cpp @@ -41,12 +41,12 @@ struct rx_vita_core_3000_impl : rx_vita_core_3000 this->clear(); } - ~rx_vita_core_3000_impl(void) + ~rx_vita_core_3000_impl(void) override { UHD_SAFE_CALL(this->clear();) } - void configure_flow_control(const size_t window_size) + void configure_flow_control(const size_t window_size) override { // The window needs to be disabled in the case where this object is // uncleanly destroyed and the FC window is left enabled @@ -63,19 +63,19 @@ struct rx_vita_core_3000_impl : rx_vita_core_3000 _iface->poke32(REG_FC_ENABLE, window_size ? 1 : 0); } - void clear(void) + void clear(void) override { // FC should never be disabled, this will actually become // impossible in the future // this->configure_flow_control(0); //disable fc } - void set_nsamps_per_packet(const size_t nsamps) + void set_nsamps_per_packet(const size_t nsamps) override { _iface->poke32(REG_FRAMER_MAXLEN, nsamps); } - void issue_stream_command(const uhd::stream_cmd_t& stream_cmd) + void issue_stream_command(const uhd::stream_cmd_t& stream_cmd) override { if (not _is_setup) { // UHD_LOGGER_WARNING("CORES") << "rx vita core 3000 issue stream command - @@ -134,28 +134,28 @@ struct rx_vita_core_3000_impl : rx_vita_core_3000 _iface->poke32(REG_CTRL_TIME_LO, uint32_t(ticks >> 0)); // latches the command } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; } - void set_sid(const uint32_t sid) + void set_sid(const uint32_t sid) override { _iface->poke32(REG_FRAMER_SID, sid); } - void handle_overflow(void) + void handle_overflow(void) override { if (_continuous_streaming) this->issue_stream_command(stream_cmd_t::STREAM_MODE_START_CONTINUOUS); } - void setup(const uhd::stream_args_t&) + void setup(const uhd::stream_args_t&) override { _is_setup = true; } - bool in_continuous_streaming_mode(void) + bool in_continuous_streaming_mode(void) override { return _continuous_streaming; } diff --git a/host/lib/usrp/cores/spi_core_3000.cpp b/host/lib/usrp/cores/spi_core_3000.cpp index e279ffa66..28a8782d5 100644 --- a/host/lib/usrp/cores/spi_core_3000.cpp +++ b/host/lib/usrp/cores/spi_core_3000.cpp @@ -46,7 +46,7 @@ public: const spi_config_t& config, uint32_t data, size_t num_bits, - bool readback) + bool readback) override { std::lock_guard<std::mutex> lock(_mutex); @@ -93,7 +93,7 @@ public: return 0; } - void set_divider(const double div) + void set_divider(const double div) override { _div = size_t((div / 2) - 0.5); } diff --git a/host/lib/usrp/cores/time64_core_200.cpp b/host/lib/usrp/cores/time64_core_200.cpp index a7d5427c1..f5cd7158f 100644 --- a/host/lib/usrp/cores/time64_core_200.cpp +++ b/host/lib/usrp/cores/time64_core_200.cpp @@ -54,17 +54,17 @@ public: _sources.push_back("mimo"); } - void enable_gpsdo(void) + void enable_gpsdo(void) override { _sources.push_back("gpsdo"); } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; } - uhd::time_spec_t get_time_now(void) + uhd::time_spec_t get_time_now(void) override { for (size_t i = 0; i < 3; i++) { // special algorithm because we cant read 64 bits synchronously @@ -78,7 +78,7 @@ public: throw uhd::runtime_error("time64_core_200: get time now timeout"); } - uhd::time_spec_t get_time_last_pps(void) + uhd::time_spec_t get_time_last_pps(void) override { for (size_t i = 0; i < 3; i++) { // special algorithm because we cant read 64 bits synchronously @@ -92,7 +92,7 @@ public: throw uhd::runtime_error("time64_core_200: get time last pps timeout"); } - void set_time_now(const uhd::time_spec_t& time) + void set_time_now(const uhd::time_spec_t& time) override { const uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME64_TICKS_LO, uint32_t(ticks >> 0)); @@ -100,7 +100,7 @@ public: _iface->poke32(REG_TIME64_TICKS_HI, uint32_t(ticks >> 32)); // latches all 3 } - void set_time_next_pps(const uhd::time_spec_t& time) + void set_time_next_pps(const uhd::time_spec_t& time) override { const uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME64_TICKS_LO, uint32_t(ticks >> 0)); @@ -108,7 +108,7 @@ public: _iface->poke32(REG_TIME64_TICKS_HI, uint32_t(ticks >> 32)); // latches all 3 } - void set_time_source(const std::string& source) + void set_time_source(const std::string& source) override { assert_has(_sources, source, "time source"); @@ -130,7 +130,7 @@ public: } } - std::vector<std::string> get_time_sources(void) + std::vector<std::string> get_time_sources(void) override { return _sources; } diff --git a/host/lib/usrp/cores/time_core_3000.cpp b/host/lib/usrp/cores/time_core_3000.cpp index 852c3882e..8e32cf4b8 100644 --- a/host/lib/usrp/cores/time_core_3000.cpp +++ b/host/lib/usrp/cores/time_core_3000.cpp @@ -36,18 +36,18 @@ struct time_core_3000_impl : time_core_3000 this->set_tick_rate(1); // init to non zero } - ~time_core_3000_impl(void) + ~time_core_3000_impl(void) override { UHD_SAFE_CALL(; // NOP ) } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; } - void self_test(void) + void self_test(void) override { const size_t sleep_millis = 100; UHD_LOGGER_DEBUG("CORES") << "Performing timer loopback test... "; @@ -71,19 +71,19 @@ struct time_core_3000_impl : time_core_3000 << "Approximate clock rate: " << (approx_rate / 1e6) << " MHz\n"; } - uhd::time_spec_t get_time_now(void) + uhd::time_spec_t get_time_now(void) override { const uint64_t ticks = _iface->peek64(_readback_bases.rb_now); return time_spec_t::from_ticks(ticks, _tick_rate); } - uhd::time_spec_t get_time_last_pps(void) + uhd::time_spec_t get_time_last_pps(void) override { const uint64_t ticks = _iface->peek64(_readback_bases.rb_pps); return time_spec_t::from_ticks(ticks, _tick_rate); } - void set_time_now(const uhd::time_spec_t& time) + void set_time_now(const uhd::time_spec_t& time) override { const uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME_HI, uint32_t(ticks >> 32)); @@ -91,7 +91,7 @@ struct time_core_3000_impl : time_core_3000 _iface->poke32(REG_TIME_CTRL, CTRL_LATCH_TIME_NOW); } - void set_time_sync(const uhd::time_spec_t& time) + void set_time_sync(const uhd::time_spec_t& time) override { const uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME_HI, uint32_t(ticks >> 32)); @@ -99,7 +99,7 @@ struct time_core_3000_impl : time_core_3000 _iface->poke32(REG_TIME_CTRL, CTRL_LATCH_TIME_SYNC); } - void set_time_next_pps(const uhd::time_spec_t& time) + void set_time_next_pps(const uhd::time_spec_t& time) override { const uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME_HI, uint32_t(ticks >> 32)); diff --git a/host/lib/usrp/cores/tx_dsp_core_200.cpp b/host/lib/usrp/cores/tx_dsp_core_200.cpp index 8dd48181c..1c743b0b0 100644 --- a/host/lib/usrp/cores/tx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_200.cpp @@ -70,7 +70,7 @@ public: this->set_underflow_policy("next_packet"); } - void clear(void) + void clear(void) override { _iface->poke32(REG_TX_CTRL_CLEAR, 1); // reset and flush technique std::this_thread::sleep_for(std::chrono::milliseconds(10)); @@ -89,18 +89,18 @@ public: "USRP TX cannot handle requested underflow policy: " + policy); } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; } - void set_link_rate(const double rate) + void set_link_rate(const double rate) override { //_link_rate = rate/sizeof(uint32_t); //in samps/s _link_rate = rate / sizeof(uint16_t); // in samps/s (allows for 8sc) } - uhd::meta_range_t get_host_rates(void) + uhd::meta_range_t get_host_rates(void) override { meta_range_t range; for (int rate = 512; rate > 256; rate -= 4) { @@ -115,7 +115,7 @@ public: return range; } - double set_host_rate(const double rate) + double set_host_rate(const double rate) override { const size_t interp_rate = boost::math::iround(_tick_rate / this->get_host_rates().clip(rate, true)); @@ -165,12 +165,12 @@ public: _iface->poke32(REG_DSP_TX_SCALE_IQ, actual_scalar); } - double get_scaling_adjustment(void) + double get_scaling_adjustment(void) override { return _fxpt_scalar_correction * _host_extra_scaling * 32767.; } - double set_freq(const double requested_freq) + double set_freq(const double requested_freq) override { double actual_freq; int32_t freq_word; @@ -179,13 +179,13 @@ public: return actual_freq; } - uhd::meta_range_t get_freq_range(void) + uhd::meta_range_t get_freq_range(void) override { return uhd::meta_range_t( -_tick_rate / 2, +_tick_rate / 2, _tick_rate / std::pow(2.0, 32)); } - void set_updates(const size_t cycles_per_up, const size_t packets_per_up) + void set_updates(const size_t cycles_per_up, const size_t packets_per_up) override { _iface->poke32(REG_TX_CTRL_CYCLES_PER_UP, (cycles_per_up == 0) ? 0 : (FLAG_TX_CTRL_UP_ENB | cycles_per_up)); @@ -193,7 +193,7 @@ public: (packets_per_up == 0) ? 0 : (FLAG_TX_CTRL_UP_ENB | packets_per_up)); } - void setup(const uhd::stream_args_t& stream_args) + void setup(const uhd::stream_args_t& stream_args) override { if (not stream_args.args.has_key("noclear")) this->clear(); diff --git a/host/lib/usrp/cores/tx_dsp_core_3000.cpp b/host/lib/usrp/cores/tx_dsp_core_3000.cpp index 3b0d85c00..f46938de3 100644 --- a/host/lib/usrp/cores/tx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_3000.cpp @@ -46,19 +46,19 @@ public: this->set_tick_rate(1.0); } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { _tick_rate = rate; set_freq(_current_freq); } - void set_link_rate(const double rate) + void set_link_rate(const double rate) override { //_link_rate = rate/sizeof(uint32_t); //in samps/s _link_rate = rate / sizeof(uint16_t); // in samps/s (allows for 8sc) } - uhd::meta_range_t get_host_rates(void) + uhd::meta_range_t get_host_rates(void) override { meta_range_t range; for (int rate = 512; rate > 256; rate -= 4) { @@ -73,7 +73,7 @@ public: return range; } - double set_host_rate(const double rate) + double set_host_rate(const double rate) override { const size_t interp_rate = boost::math::iround(_tick_rate / this->get_host_rates().clip(rate, true)); @@ -128,12 +128,12 @@ public: _iface->poke32(REG_DSP_TX_SCALE_IQ, actual_scalar); } - double get_scaling_adjustment(void) + double get_scaling_adjustment(void) override { return _fxpt_scalar_correction * _host_extra_scaling * 32767.; } - double set_freq(const double requested_freq) + double set_freq(const double requested_freq) override { double actual_freq; int32_t freq_word; @@ -143,18 +143,18 @@ public: return actual_freq; } - double get_freq(void) + double get_freq(void) override { return _current_freq; } - uhd::meta_range_t get_freq_range(void) + uhd::meta_range_t get_freq_range(void) override { return uhd::meta_range_t( -_tick_rate / 2, +_tick_rate / 2, _tick_rate / std::pow(2.0, 32)); } - void setup(const uhd::stream_args_t& stream_args) + void setup(const uhd::stream_args_t& stream_args) override { if (stream_args.otw_format == "sc16") { _dsp_extra_scaling = 1.0; @@ -181,7 +181,7 @@ public: this->update_scalar(); } - void populate_subtree(property_tree::sptr subtree) + void populate_subtree(property_tree::sptr subtree) override { subtree->create<meta_range_t>("rate/range") .set_publisher(std::bind(&tx_dsp_core_3000::get_host_rates, this)); diff --git a/host/lib/usrp/cores/tx_frontend_core_200.cpp b/host/lib/usrp/cores/tx_frontend_core_200.cpp index 46a79c497..45b2045dd 100644 --- a/host/lib/usrp/cores/tx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/tx_frontend_core_200.cpp @@ -51,7 +51,7 @@ public: // NOP } - void set_mux(const std::string& mode) + void set_mux(const std::string& mode) override { static const uhd::dict<std::string, uint32_t> mode_to_mux = boost::assign::map_list_of( @@ -63,7 +63,7 @@ public: _iface->poke32(REG_TX_FE_MUX, mode_to_mux[mode]); } - std::complex<double> set_dc_offset(const std::complex<double>& off) + std::complex<double> set_dc_offset(const std::complex<double>& off) override { static const double scaler = double(1ul << 23); const int32_t i_dc_off = boost::math::iround(off.real() * scaler); @@ -75,13 +75,13 @@ public: return std::complex<double>(i_dc_off / scaler, q_dc_off / scaler); } - void set_iq_balance(const std::complex<double>& cor) + void set_iq_balance(const std::complex<double>& cor) override { _iface->poke32(REG_TX_FE_MAG_CORRECTION, fs_to_bits(cor.real(), 18)); _iface->poke32(REG_TX_FE_PHASE_CORRECTION, fs_to_bits(cor.imag(), 18)); } - void populate_subtree(uhd::property_tree::sptr subtree) + void populate_subtree(uhd::property_tree::sptr subtree) override { subtree->create<uhd::meta_range_t>("dc_offset/range") .set(meta_range_t(DC_OFFSET_MIN, DC_OFFSET_MAX)); diff --git a/host/lib/usrp/cores/tx_vita_core_3000.cpp b/host/lib/usrp/cores/tx_vita_core_3000.cpp index c89301464..d586e2cfc 100644 --- a/host/lib/usrp/cores/tx_vita_core_3000.cpp +++ b/host/lib/usrp/cores/tx_vita_core_3000.cpp @@ -44,12 +44,12 @@ struct tx_vita_core_3000_impl : tx_vita_core_3000 this->clear(); } - ~tx_vita_core_3000_impl(void) + ~tx_vita_core_3000_impl(void) override { UHD_SAFE_CALL(this->clear();) } - void clear(void) + void clear(void) override { this->configure_flow_control(0, 0); this->set_underflow_policy(_policy); // clears the seq @@ -69,14 +69,15 @@ struct tx_vita_core_3000_impl : tx_vita_core_3000 _policy = policy; } - void setup(const uhd::stream_args_t& stream_args) + void setup(const uhd::stream_args_t& stream_args) override { if (stream_args.args.has_key("underflow_policy")) { this->set_underflow_policy(stream_args.args["underflow_policy"]); } } - void configure_flow_control(const size_t cycs_per_up, const size_t pkts_per_up) + void configure_flow_control( + const size_t cycs_per_up, const size_t pkts_per_up) override { if (cycs_per_up == 0) _iface->poke32(_fc_base + REG_CTRL_FC_CYCLE_OFFSET, 0); diff --git a/host/lib/usrp/cores/user_settings_core_200.cpp b/host/lib/usrp/cores/user_settings_core_200.cpp index c3606738a..abe1bee5f 100644 --- a/host/lib/usrp/cores/user_settings_core_200.cpp +++ b/host/lib/usrp/cores/user_settings_core_200.cpp @@ -26,7 +26,7 @@ public: // NOP } - void set_reg(const user_reg_t& reg) + void set_reg(const user_reg_t& reg) override { _iface->poke32(REG_USER_ADDR, reg.first); _iface->poke32(REG_USER_DATA, reg.second); diff --git a/host/lib/usrp/cores/user_settings_core_3000.cpp b/host/lib/usrp/cores/user_settings_core_3000.cpp index 7518756f7..9e04175c2 100644 --- a/host/lib/usrp/cores/user_settings_core_3000.cpp +++ b/host/lib/usrp/cores/user_settings_core_3000.cpp @@ -25,7 +25,7 @@ public: { } - void poke64(const wb_addr_type offset, const uint64_t value) + void poke64(const wb_addr_type offset, const uint64_t value) override { if (offset % sizeof(uint64_t) != 0) throw uhd::value_error("poke64: Incorrect address alignment"); @@ -33,7 +33,7 @@ public: poke32(offset + 4, static_cast<uint32_t>(value >> 32)); } - uint64_t peek64(const wb_addr_type offset) + uint64_t peek64(const wb_addr_type offset) override { if (offset % sizeof(uint64_t) != 0) throw uhd::value_error("peek64: Incorrect address alignment"); @@ -44,7 +44,7 @@ public: return _iface->peek64(_rb_reg_addr); } - void poke32(const wb_addr_type offset, const uint32_t value) + void poke32(const wb_addr_type offset, const uint32_t value) override { if (offset % sizeof(uint32_t) != 0) throw uhd::value_error("poke32: Incorrect address alignment"); @@ -55,7 +55,7 @@ public: _iface->poke32(REG_USER_SR_DATA, value); } - uint32_t peek32(const wb_addr_type offset) + uint32_t peek32(const wb_addr_type offset) override { if (offset % sizeof(uint32_t) != 0) throw uhd::value_error("peek32: Incorrect address alignment"); diff --git a/host/lib/usrp/dboard/db_basic_and_lf.cpp b/host/lib/usrp/dboard/db_basic_and_lf.cpp index 3282d53c3..d97220fde 100644 --- a/host/lib/usrp/dboard/db_basic_and_lf.cpp +++ b/host/lib/usrp/dboard/db_basic_and_lf.cpp @@ -28,7 +28,7 @@ class basic_rx : public rx_dboard_base { public: basic_rx(ctor_args_t args, double max_freq); - virtual ~basic_rx(void); + ~basic_rx(void) override; private: double _max_freq; @@ -38,7 +38,7 @@ class basic_tx : public tx_dboard_base { public: basic_tx(ctor_args_t args, double max_freq); - virtual ~basic_tx(void); + ~basic_tx(void) override; private: double _max_freq; diff --git a/host/lib/usrp/dboard/db_sbx_common.hpp b/host/lib/usrp/dboard/db_sbx_common.hpp index c11f0bbe2..235d45fd2 100644 --- a/host/lib/usrp/dboard/db_sbx_common.hpp +++ b/host/lib/usrp/dboard/db_sbx_common.hpp @@ -124,7 +124,7 @@ class sbx_xcvr : public xcvr_dboard_base { public: sbx_xcvr(ctor_args_t args); - virtual ~sbx_xcvr(void); + ~sbx_xcvr(void) override; protected: uhd::dict<std::string, double> _tx_gains, _rx_gains; @@ -182,9 +182,9 @@ protected: { public: sbx_version3(sbx_xcvr* _self_sbx_xcvr); - virtual ~sbx_version3(void); + ~sbx_version3(void) override; - double set_lo_freq(dboard_iface::unit_t unit, double target_freq); + double set_lo_freq(dboard_iface::unit_t unit, double target_freq) override; /*! This is the registered instance of the wrapper class, sbx_base. */ sbx_xcvr* self_base; @@ -204,9 +204,9 @@ protected: { public: sbx_version4(sbx_xcvr* _self_sbx_xcvr); - virtual ~sbx_version4(void); + ~sbx_version4(void) override; - double set_lo_freq(dboard_iface::unit_t unit, double target_freq); + double set_lo_freq(dboard_iface::unit_t unit, double target_freq) override; /*! This is the registered instance of the wrapper class, sbx_base. */ sbx_xcvr* self_base; @@ -231,9 +231,9 @@ protected: { public: cbx(sbx_xcvr* _self_sbx_xcvr); - virtual ~cbx(void); + ~cbx(void) override; - double set_lo_freq(dboard_iface::unit_t unit, double target_freq); + double set_lo_freq(dboard_iface::unit_t unit, double target_freq) override; /*! This is the registered instance of the wrapper class, sbx_base. */ sbx_xcvr* self_base; diff --git a/host/lib/usrp/dboard/db_twinrx.cpp b/host/lib/usrp/dboard/db_twinrx.cpp index a7c57979d..9aa67318b 100644 --- a/host/lib/usrp/dboard/db_twinrx.cpp +++ b/host/lib/usrp/dboard/db_twinrx.cpp @@ -247,7 +247,7 @@ public: _expert, prepend_ch("synth/LO2/mapping", _ch_name), MAPPING_NONE); } - virtual ~twinrx_rcvr_fe(void) {} + ~twinrx_rcvr_fe(void) override {} sensor_value_t get_lo_locked() { @@ -287,7 +287,7 @@ public: _expert = expert_factory::create_container("twinrx_expert"); } - virtual ~twinrx_rcvr(void) {} + ~twinrx_rcvr(void) override {} inline expert_container::sptr get_expert() { @@ -299,7 +299,7 @@ public: return _ctrl; } - virtual void initialize() + void initialize() override { //--------------------------------------------------------- // Add internal channel-agnostic data nodes to expert diff --git a/host/lib/usrp/dboard/db_wbx_common.hpp b/host/lib/usrp/dboard/db_wbx_common.hpp index e7beabd8b..63a40c504 100644 --- a/host/lib/usrp/dboard/db_wbx_common.hpp +++ b/host/lib/usrp/dboard/db_wbx_common.hpp @@ -95,7 +95,7 @@ class wbx_base : public xcvr_dboard_base { public: wbx_base(ctor_args_t args); - virtual ~wbx_base(void); + ~wbx_base(void) override; protected: virtual double set_rx_gain(double gain, const std::string& name); @@ -156,11 +156,11 @@ protected: { public: wbx_version2(wbx_base* _self_wbx_base); - virtual ~wbx_version2(void); + ~wbx_version2(void) override; - double set_tx_gain(double gain, const std::string& name); - void set_tx_enabled(bool enb); - double set_lo_freq(dboard_iface::unit_t unit, double target_freq); + double set_tx_gain(double gain, const std::string& name) override; + void set_tx_enabled(bool enb) override; + double set_lo_freq(dboard_iface::unit_t unit, double target_freq) override; }; /*! @@ -172,11 +172,11 @@ protected: { public: wbx_version3(wbx_base* _self_wbx_base); - virtual ~wbx_version3(void); + ~wbx_version3(void) override; - double set_tx_gain(double gain, const std::string& name); - void set_tx_enabled(bool enb); - double set_lo_freq(dboard_iface::unit_t unit, double target_freq); + double set_tx_gain(double gain, const std::string& name) override; + void set_tx_enabled(bool enb) override; + double set_lo_freq(dboard_iface::unit_t unit, double target_freq) override; }; /*! @@ -188,11 +188,11 @@ protected: { public: wbx_version4(wbx_base* _self_wbx_base); - virtual ~wbx_version4(void); + ~wbx_version4(void) override; - double set_tx_gain(double gain, const std::string& name); - void set_tx_enabled(bool enb); - double set_lo_freq(dboard_iface::unit_t unit, double target_freq); + double set_tx_gain(double gain, const std::string& name) override; + void set_tx_enabled(bool enb) override; + double set_lo_freq(dboard_iface::unit_t unit, double target_freq) override; }; /*! diff --git a/host/lib/usrp/dboard/e3xx/e31x_radio_control_impl.hpp b/host/lib/usrp/dboard/e3xx/e31x_radio_control_impl.hpp index 04fa800e2..0fe0ccd56 100644 --- a/host/lib/usrp/dboard/e3xx/e31x_radio_control_impl.hpp +++ b/host/lib/usrp/dboard/e3xx/e31x_radio_control_impl.hpp @@ -29,9 +29,9 @@ public: * Structors and deinit ***********************************************************************/ e31x_radio_control_impl(make_args_ptr make_args); - virtual ~e31x_radio_control_impl(); + ~e31x_radio_control_impl() override; - std::vector<std::string> get_gpio_banks() const + std::vector<std::string> get_gpio_banks() const override { return {E31x_GPIO_BANK}; } @@ -117,22 +117,22 @@ private: /************************************************************************ * E3XX API calls ***********************************************************************/ - const std::string get_default_timing_mode() + const std::string get_default_timing_mode() override { return TIMING_MODE_1R1T; }; uint32_t get_rx_switches( - const size_t chan, const double freq, const std::string& ant); + const size_t chan, const double freq, const std::string& ant) override; - uint32_t get_tx_switches(const size_t chan, const double freq); + uint32_t get_tx_switches(const size_t chan, const double freq) override; - uint32_t get_idle_switches(); + uint32_t get_idle_switches() override; - uint32_t get_tx_led(); - uint32_t get_rx_led(); - uint32_t get_txrx_led(); - uint32_t get_idle_led(); + uint32_t get_tx_led() override; + uint32_t get_rx_led() override; + uint32_t get_txrx_led() override; + uint32_t get_idle_led() override; }; }} /* namespace uhd::rfnoc */ diff --git a/host/lib/usrp/dboard/e3xx/e320_radio_control_impl.hpp b/host/lib/usrp/dboard/e3xx/e320_radio_control_impl.hpp index f781eb49d..7ba64b0ab 100644 --- a/host/lib/usrp/dboard/e3xx/e320_radio_control_impl.hpp +++ b/host/lib/usrp/dboard/e3xx/e320_radio_control_impl.hpp @@ -28,9 +28,9 @@ public: * Structors ***********************************************************************/ e320_radio_control_impl(make_args_ptr make_args); - virtual ~e320_radio_control_impl(); + ~e320_radio_control_impl() override; - std::vector<std::string> get_gpio_banks() const + std::vector<std::string> get_gpio_banks() const override { return {E320_GPIO_BANK}; } @@ -103,22 +103,22 @@ protected: /************************************************************************ * E3XX API calls ***********************************************************************/ - const std::string get_default_timing_mode() + const std::string get_default_timing_mode() override { return TIMING_MODE_2R2T; }; uint32_t get_rx_switches( - const size_t chan, const double freq, const std::string& ant); + const size_t chan, const double freq, const std::string& ant) override; - uint32_t get_tx_switches(const size_t chan, const double freq); + uint32_t get_tx_switches(const size_t chan, const double freq) override; - uint32_t get_idle_switches(); + uint32_t get_idle_switches() override; - uint32_t get_tx_led(); - uint32_t get_rx_led(); - uint32_t get_txrx_led(); - uint32_t get_idle_led(); + uint32_t get_tx_led() override; + uint32_t get_rx_led() override; + uint32_t get_txrx_led() override; + uint32_t get_idle_led() override; }; }} /* namespace uhd::rfnoc */ diff --git a/host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp b/host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp index acd0be211..108b94a80 100644 --- a/host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp +++ b/host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp @@ -21,94 +21,94 @@ public: _log_prefix, "Initialized controls with RPC prefix " << _rpc_prefix); } - double set_bw_filter(const std::string& which, const double bw) + double set_bw_filter(const std::string& which, const double bw) override { return _rpcc->request_with_token<double>( this->_rpc_prefix + "set_bw_filter", which, bw); } - double set_gain(const std::string& which, const double value) + double set_gain(const std::string& which, const double value) override { return _rpcc->request_with_token<double>( this->_rpc_prefix + "set_gain", which, value); } - void set_agc(const std::string& which, bool enable) + void set_agc(const std::string& which, bool enable) override { _rpcc->request_with_token<void>(this->_rpc_prefix + "set_agc", which, enable); } - void set_agc_mode(const std::string& which, const std::string& mode) + void set_agc_mode(const std::string& which, const std::string& mode) override { _rpcc->request_with_token<void>(this->_rpc_prefix + "set_agc_mode", which, mode); } - double set_clock_rate(const double rate) + double set_clock_rate(const double rate) override { return _rpcc->request_with_token<double>( E3XX_RATE_TIMEOUT, this->_rpc_prefix + "set_catalina_clock_rate", rate); } - void set_active_chains(bool tx1, bool tx2, bool rx1, bool rx2) + void set_active_chains(bool tx1, bool tx2, bool rx1, bool rx2) override { _rpcc->request_with_token<void>( this->_rpc_prefix + "set_active_chains", tx1, tx2, rx1, rx2); } - double tune(const std::string& which, const double value) + double tune(const std::string& which, const double value) override { return _rpcc->request_with_token<double>( E3XX_TUNE_TIMEOUT, this->_rpc_prefix + "catalina_tune", which, value); } - void set_dc_offset_auto(const std::string& which, const bool on) + void set_dc_offset_auto(const std::string& which, const bool on) override { _rpcc->request_with_token<void>( this->_rpc_prefix + "set_dc_offset_auto", which, on); } - void set_timing_mode(const std::string& timing_mode) + void set_timing_mode(const std::string& timing_mode) override { _rpcc->request_with_token<void>( this->_rpc_prefix + "set_timing_mode", timing_mode); } - void set_iq_balance_auto(const std::string& which, const bool on) + void set_iq_balance_auto(const std::string& which, const bool on) override { _rpcc->request_with_token<void>( this->_rpc_prefix + "set_iq_balance_auto", which, on); } - double get_freq(const std::string& which) + double get_freq(const std::string& which) override { return _rpcc->request_with_token<double>(this->_rpc_prefix + "get_freq", which); } - void data_port_loopback(const bool on) + void data_port_loopback(const bool on) override { _rpcc->request_with_token<void>(this->_rpc_prefix + "data_port_loopback", on); } - sensor_value_t get_rssi(const std::string& which) + sensor_value_t get_rssi(const std::string& which) override { return sensor_value_t(_rpcc->request_with_token<sensor_value_t::sensor_map_t>( this->_rpc_prefix + "get_rssi", which)); } - sensor_value_t get_temperature() + sensor_value_t get_temperature() override { return sensor_value_t(_rpcc->request_with_token<sensor_value_t::sensor_map_t>( this->_rpc_prefix + "get_temperature")); } - std::vector<std::string> get_filter_names(const std::string& which) + std::vector<std::string> get_filter_names(const std::string& which) override { return _rpcc->request_with_token<std::vector<std::string>>( this->_rpc_prefix + "get_filter_names", which); } filter_info_base::sptr get_filter( - const std::string& /*which*/, const std::string& /*filter_name*/) + const std::string& /*which*/, const std::string& /*filter_name*/) override { throw uhd::runtime_error( "ad9361_ctrl::get_filter is not supported over an RPC connection"); @@ -116,13 +116,13 @@ public: void set_filter(const std::string& /*which*/, const std::string& /*filter_name*/, - const filter_info_base::sptr /*filter*/) + const filter_info_base::sptr /*filter*/) override { throw uhd::runtime_error( "ad9361_ctrl::set_filter is not supported over an RPC connection"); } - void output_digital_test_tone(bool enb) + void output_digital_test_tone(bool enb) override { _rpcc->request_with_token<void>( this->_rpc_prefix + "output_digital_test_tone", enb); diff --git a/host/lib/usrp/dboard/e3xx/e3xx_radio_control_impl.hpp b/host/lib/usrp/dboard/e3xx/e3xx_radio_control_impl.hpp index d5714634c..658edc987 100644 --- a/host/lib/usrp/dboard/e3xx/e3xx_radio_control_impl.hpp +++ b/host/lib/usrp/dboard/e3xx/e3xx_radio_control_impl.hpp @@ -71,90 +71,94 @@ public: * Structors ***********************************************************************/ e3xx_radio_control_impl(make_args_ptr make_args); - virtual ~e3xx_radio_control_impl(); + ~e3xx_radio_control_impl() override; /************************************************************************ * node_t && noc_block_base API calls ***********************************************************************/ - void deinit(); + void deinit() override; bool check_topology(const std::vector<size_t>& connected_inputs, - const std::vector<size_t>& connected_outputs); + const std::vector<size_t>& connected_outputs) override; /************************************************************************ * radio_control API calls ***********************************************************************/ - double set_rate(const double rate); - uhd::meta_range_t get_rate_range() const; + double set_rate(const double rate) override; + uhd::meta_range_t get_rate_range() const override; // Setters - void set_tx_antenna(const std::string& ant, const size_t chan); - void set_rx_antenna(const std::string& ant, const size_t chan); - double set_tx_frequency(const double freq, const size_t chan); - double set_rx_frequency(const double freq, const size_t chan); - double set_tx_gain(const double gain, const size_t chan); - double set_rx_gain(const double gain, const size_t chan); - void set_rx_agc(const bool enable, const size_t chan); - double set_tx_bandwidth(const double bandwidth, const size_t chan); - double set_rx_bandwidth(const double bandwidth, const size_t chan); + void set_tx_antenna(const std::string& ant, const size_t chan) override; + void set_rx_antenna(const std::string& ant, const size_t chan) override; + double set_tx_frequency(const double freq, const size_t chan) override; + double set_rx_frequency(const double freq, const size_t chan) override; + double set_tx_gain(const double gain, const size_t chan) override; + double set_rx_gain(const double gain, const size_t chan) override; + void set_rx_agc(const bool enable, const size_t chan) override; + double set_tx_bandwidth(const double bandwidth, const size_t chan) override; + double set_rx_bandwidth(const double bandwidth, const size_t chan) override; // Getters - std::vector<std::string> get_tx_antennas(const size_t chan) const; - std::vector<std::string> get_rx_antennas(const size_t chan) const; - uhd::freq_range_t get_tx_frequency_range(const size_t chan) const; - uhd::freq_range_t get_rx_frequency_range(const size_t chan) const; - uhd::gain_range_t get_tx_gain_range(const size_t) const; - uhd::gain_range_t get_rx_gain_range(const size_t) const; - meta_range_t get_tx_bandwidth_range(size_t chan) const; - meta_range_t get_rx_bandwidth_range(size_t chan) const; + std::vector<std::string> get_tx_antennas(const size_t chan) const override; + std::vector<std::string> get_rx_antennas(const size_t chan) const override; + uhd::freq_range_t get_tx_frequency_range(const size_t chan) const override; + uhd::freq_range_t get_rx_frequency_range(const size_t chan) const override; + uhd::gain_range_t get_tx_gain_range(const size_t) const override; + uhd::gain_range_t get_rx_gain_range(const size_t) const override; + meta_range_t get_tx_bandwidth_range(size_t chan) const override; + meta_range_t get_rx_bandwidth_range(size_t chan) const override; /************************************************************************** * Calibration-Related API Calls *************************************************************************/ - virtual void set_rx_dc_offset(const bool enb, size_t chan = ALL_CHANS); - virtual void set_rx_iq_balance(const bool enb, size_t chan); + void set_rx_dc_offset(const bool enb, size_t chan = ALL_CHANS) override; + void set_rx_iq_balance(const bool enb, size_t chan) override; /************************************************************************** * GPIO Controls *************************************************************************/ - virtual void set_gpio_attr( - const std::string& bank, const std::string& attr, const uint32_t value); - virtual uint32_t get_gpio_attr(const std::string& bank, const std::string& attr); + void set_gpio_attr( + const std::string& bank, const std::string& attr, const uint32_t value) override; + uint32_t get_gpio_attr(const std::string& bank, const std::string& attr) override; /************************************************************************** * Sensor API *************************************************************************/ - std::vector<std::string> get_rx_sensor_names(size_t chan) const; - uhd::sensor_value_t get_rx_sensor(const std::string& name, size_t chan); - std::vector<std::string> get_tx_sensor_names(size_t chan) const; - uhd::sensor_value_t get_tx_sensor(const std::string& name, size_t chan); + std::vector<std::string> get_rx_sensor_names(size_t chan) const override; + uhd::sensor_value_t get_rx_sensor(const std::string& name, size_t chan) override; + std::vector<std::string> get_tx_sensor_names(size_t chan) const override; + uhd::sensor_value_t get_tx_sensor(const std::string& name, size_t chan) override; /************************************************************************** * Filter API *************************************************************************/ - std::vector<std::string> get_rx_filter_names(const size_t chan) const; - uhd::filter_info_base::sptr get_rx_filter(const std::string& name, const size_t chan); - void set_rx_filter( - const std::string& name, uhd::filter_info_base::sptr filter, const size_t chan); - - std::vector<std::string> get_tx_filter_names(const size_t chan) const; - uhd::filter_info_base::sptr get_tx_filter(const std::string& name, const size_t chan); - void set_tx_filter( - const std::string& name, uhd::filter_info_base::sptr filter, const size_t chan); + std::vector<std::string> get_rx_filter_names(const size_t chan) const override; + uhd::filter_info_base::sptr get_rx_filter( + const std::string& name, const size_t chan) override; + void set_rx_filter(const std::string& name, + uhd::filter_info_base::sptr filter, + const size_t chan) override; + + std::vector<std::string> get_tx_filter_names(const size_t chan) const override; + uhd::filter_info_base::sptr get_tx_filter( + const std::string& name, const size_t chan) override; + void set_tx_filter(const std::string& name, + uhd::filter_info_base::sptr filter, + const size_t chan) override; /************************************************************************** * Radio Identification API Calls *************************************************************************/ - std::string get_slot_name() const + std::string get_slot_name() const override { return "A"; } - virtual size_t get_chan_from_dboard_fe( - const std::string& fe, const uhd::direction_t direction) const; - virtual std::string get_dboard_fe_from_chan( - const size_t chan, const uhd::direction_t direction) const; - virtual std::string get_fe_name( - const size_t chan, const uhd::direction_t direction) const; + size_t get_chan_from_dboard_fe( + const std::string& fe, const uhd::direction_t direction) const override; + std::string get_dboard_fe_from_chan( + const size_t chan, const uhd::direction_t direction) const override; + std::string get_fe_name( + const size_t chan, const uhd::direction_t direction) const override; protected: //! Map a frequency in Hz to an rx_band value. Will return @@ -239,9 +243,9 @@ private: void _set_atr_bits(const size_t chan); - void set_db_eeprom(const uhd::eeprom_map_t& db_eeprom); + void set_db_eeprom(const uhd::eeprom_map_t& db_eeprom) override; - uhd::eeprom_map_t get_db_eeprom(); + uhd::eeprom_map_t get_db_eeprom() override; /************************************************************************** * Private attributes diff --git a/host/lib/usrp/dboard/magnesium/magnesium_radio_control.hpp b/host/lib/usrp/dboard/magnesium/magnesium_radio_control.hpp index e8c252605..897e00868 100644 --- a/host/lib/usrp/dboard/magnesium/magnesium_radio_control.hpp +++ b/host/lib/usrp/dboard/magnesium/magnesium_radio_control.hpp @@ -67,99 +67,107 @@ public: * Structors ***********************************************************************/ magnesium_radio_control_impl(make_args_ptr make_args); - virtual ~magnesium_radio_control_impl(); + ~magnesium_radio_control_impl() override; /************************************************************************ * RF API calls ***********************************************************************/ // Note: We use the cached values in radio_ctrl_impl, so most getters are // not reimplemented here - double set_rate(double rate); + double set_rate(double rate) override; // Setters - void set_tx_antenna(const std::string& ant, const size_t chan); - void set_rx_antenna(const std::string& ant, const size_t chan); - double set_tx_frequency(const double freq, const size_t chan); - double set_rx_frequency(const double freq, const size_t chan); - double set_tx_gain(const double gain, const size_t chan); - double set_tx_gain(const double gain, const std::string& name, const size_t chan); - double set_rx_gain(const double gain, const size_t chan); - double set_rx_gain(const double gain, const std::string& name, const size_t chan); - double set_tx_bandwidth(const double bandwidth, const size_t chan); - double set_rx_bandwidth(const double bandwidth, const size_t chan); + void set_tx_antenna(const std::string& ant, const size_t chan) override; + void set_rx_antenna(const std::string& ant, const size_t chan) override; + double set_tx_frequency(const double freq, const size_t chan) override; + double set_rx_frequency(const double freq, const size_t chan) override; + double set_tx_gain(const double gain, const size_t chan) override; + double set_tx_gain( + const double gain, const std::string& name, const size_t chan) override; + double set_rx_gain(const double gain, const size_t chan) override; + double set_rx_gain( + const double gain, const std::string& name, const size_t chan) override; + double set_tx_bandwidth(const double bandwidth, const size_t chan) override; + double set_rx_bandwidth(const double bandwidth, const size_t chan) override; // Getters - std::vector<std::string> get_tx_antennas(const size_t chan) const; - std::vector<std::string> get_rx_antennas(const size_t chan) const; - uhd::freq_range_t get_tx_frequency_range(const size_t chan) const; - uhd::freq_range_t get_rx_frequency_range(const size_t chan) const; - std::vector<std::string> get_tx_gain_names(const size_t) const; - std::vector<std::string> get_rx_gain_names(const size_t) const; - double get_tx_gain(const std::string&, size_t); - double get_rx_gain(const std::string&, size_t); - uhd::gain_range_t get_tx_gain_range(const size_t) const; - uhd::gain_range_t get_tx_gain_range(const std::string&, const size_t) const; - uhd::gain_range_t get_rx_gain_range(const size_t) const; - uhd::gain_range_t get_rx_gain_range(const std::string&, const size_t) const; - uhd::meta_range_t get_tx_bandwidth_range(size_t chan) const; - uhd::meta_range_t get_rx_bandwidth_range(size_t chan) const; + std::vector<std::string> get_tx_antennas(const size_t chan) const override; + std::vector<std::string> get_rx_antennas(const size_t chan) const override; + uhd::freq_range_t get_tx_frequency_range(const size_t chan) const override; + uhd::freq_range_t get_rx_frequency_range(const size_t chan) const override; + std::vector<std::string> get_tx_gain_names(const size_t) const override; + std::vector<std::string> get_rx_gain_names(const size_t) const override; + double get_tx_gain(const std::string&, size_t) override; + double get_rx_gain(const std::string&, size_t) override; + uhd::gain_range_t get_tx_gain_range(const size_t) const override; + uhd::gain_range_t get_tx_gain_range(const std::string&, const size_t) const override; + uhd::gain_range_t get_rx_gain_range(const size_t) const override; + uhd::gain_range_t get_rx_gain_range(const std::string&, const size_t) const override; + uhd::meta_range_t get_tx_bandwidth_range(size_t chan) const override; + uhd::meta_range_t get_rx_bandwidth_range(size_t chan) const override; /************************************************************************** * LO Controls *************************************************************************/ - std::vector<std::string> get_rx_lo_names(const size_t chan) const; + std::vector<std::string> get_rx_lo_names(const size_t chan) const override; std::vector<std::string> get_rx_lo_sources( - const std::string& name, const size_t chan) const; - freq_range_t get_rx_lo_freq_range(const std::string& name, const size_t chan) const; + const std::string& name, const size_t chan) const override; + freq_range_t get_rx_lo_freq_range( + const std::string& name, const size_t chan) const override; void set_rx_lo_source( - const std::string& src, const std::string& name, const size_t chan); + const std::string& src, const std::string& name, const size_t chan) override; const std::string get_rx_lo_source(const std::string& name, const size_t chan) const; - double set_rx_lo_freq(double freq, const std::string& name, const size_t chan); - double get_rx_lo_freq(const std::string& name, const size_t chan); - std::vector<std::string> get_tx_lo_names(const size_t chan) const; + double set_rx_lo_freq( + double freq, const std::string& name, const size_t chan) override; + double get_rx_lo_freq(const std::string& name, const size_t chan) override; + std::vector<std::string> get_tx_lo_names(const size_t chan) const override; std::vector<std::string> get_tx_lo_sources( const std::string& name, const size_t chan) const; - freq_range_t get_tx_lo_freq_range(const std::string& name, const size_t chan); + freq_range_t get_tx_lo_freq_range( + const std::string& name, const size_t chan) override; void set_tx_lo_source( - const std::string& src, const std::string& name, const size_t chan); - const std::string get_tx_lo_source(const std::string& name, const size_t chan); - double set_tx_lo_freq(const double freq, const std::string& name, const size_t chan); - double get_tx_lo_freq(const std::string& name, const size_t chan); + const std::string& src, const std::string& name, const size_t chan) override; + const std::string get_tx_lo_source( + const std::string& name, const size_t chan) override; + double set_tx_lo_freq( + const double freq, const std::string& name, const size_t chan) override; + double get_tx_lo_freq(const std::string& name, const size_t chan) override; /************************************************************************** * GPIO Controls *************************************************************************/ - std::vector<std::string> get_gpio_banks() const; + std::vector<std::string> get_gpio_banks() const override; void set_gpio_attr( - const std::string& bank, const std::string& attr, const uint32_t value); - uint32_t get_gpio_attr(const std::string& bank, const std::string& attr); + const std::string& bank, const std::string& attr, const uint32_t value) override; + uint32_t get_gpio_attr(const std::string& bank, const std::string& attr) override; /************************************************************************** * EEPROM API *************************************************************************/ - void set_db_eeprom(const uhd::eeprom_map_t& db_eeprom); - uhd::eeprom_map_t get_db_eeprom(); + void set_db_eeprom(const uhd::eeprom_map_t& db_eeprom) override; + uhd::eeprom_map_t get_db_eeprom() override; /************************************************************************** * Sensor API *************************************************************************/ std::vector<std::string> get_rx_sensor_names(size_t chan); - uhd::sensor_value_t get_rx_sensor(const std::string& name, size_t chan); + uhd::sensor_value_t get_rx_sensor(const std::string& name, size_t chan) override; std::vector<std::string> get_tx_sensor_names(size_t chan); - uhd::sensor_value_t get_tx_sensor(const std::string& name, size_t chan); + uhd::sensor_value_t get_tx_sensor(const std::string& name, size_t chan) override; /************************************************************************** * Radio Identification API Calls *************************************************************************/ - std::string get_slot_name() const + std::string get_slot_name() const override { return _radio_slot; } size_t get_chan_from_dboard_fe( - const std::string& fe, const uhd::direction_t direction) const; + const std::string& fe, const uhd::direction_t direction) const override; std::string get_dboard_fe_from_chan( - const size_t chan, const uhd::direction_t direction) const; - std::string get_fe_name(const size_t chan, const uhd::direction_t direction) const; + const size_t chan, const uhd::direction_t direction) const override; + std::string get_fe_name( + const size_t chan, const uhd::direction_t direction) const override; private: /************************************************************************** diff --git a/host/lib/usrp/dboard/rhodium/rhodium_radio_control.hpp b/host/lib/usrp/dboard/rhodium/rhodium_radio_control.hpp index 1d33f0357..4d5ce2cbd 100644 --- a/host/lib/usrp/dboard/rhodium/rhodium_radio_control.hpp +++ b/host/lib/usrp/dboard/rhodium/rhodium_radio_control.hpp @@ -61,98 +61,105 @@ public: * Structors ***********************************************************************/ rhodium_radio_control_impl(make_args_ptr make_args); - virtual ~rhodium_radio_control_impl(); + ~rhodium_radio_control_impl() override; /************************************************************************ * RF API calls ***********************************************************************/ // Note: We use the cached values in radio_ctrl_impl, so most getters are // not reimplemented here - double set_rate(double rate); + double set_rate(double rate) override; // Setters - void set_tx_antenna(const std::string& ant, const size_t chan); - void set_rx_antenna(const std::string& ant, const size_t chan); - double set_tx_frequency(const double freq, const size_t chan); - double set_rx_frequency(const double freq, const size_t chan); - void set_tx_tune_args(const uhd::device_addr_t&, const size_t chan); - void set_rx_tune_args(const uhd::device_addr_t&, const size_t chan); - double set_tx_gain(const double gain, const size_t chan); - double set_rx_gain(const double gain, const size_t chan); + void set_tx_antenna(const std::string& ant, const size_t chan) override; + void set_rx_antenna(const std::string& ant, const size_t chan) override; + double set_tx_frequency(const double freq, const size_t chan) override; + double set_rx_frequency(const double freq, const size_t chan) override; + void set_tx_tune_args(const uhd::device_addr_t&, const size_t chan) override; + void set_rx_tune_args(const uhd::device_addr_t&, const size_t chan) override; + double set_tx_gain(const double gain, const size_t chan) override; + double set_rx_gain(const double gain, const size_t chan) override; // Getters - std::vector<std::string> get_tx_antennas(const size_t) const; - std::vector<std::string> get_rx_antennas(const size_t) const; - uhd::freq_range_t get_tx_frequency_range(const size_t) const; - uhd::freq_range_t get_rx_frequency_range(const size_t) const; - uhd::gain_range_t get_tx_gain_range(const size_t) const; - uhd::gain_range_t get_rx_gain_range(const size_t) const; - uhd::meta_range_t get_tx_bandwidth_range(size_t) const; - uhd::meta_range_t get_rx_bandwidth_range(size_t) const; + std::vector<std::string> get_tx_antennas(const size_t) const override; + std::vector<std::string> get_rx_antennas(const size_t) const override; + uhd::freq_range_t get_tx_frequency_range(const size_t) const override; + uhd::freq_range_t get_rx_frequency_range(const size_t) const override; + uhd::gain_range_t get_tx_gain_range(const size_t) const override; + uhd::gain_range_t get_rx_gain_range(const size_t) const override; + uhd::meta_range_t get_tx_bandwidth_range(size_t) const override; + uhd::meta_range_t get_rx_bandwidth_range(size_t) const override; /************************************************************************** * LO Controls *************************************************************************/ - std::vector<std::string> get_rx_lo_names(const size_t chan) const; + std::vector<std::string> get_rx_lo_names(const size_t chan) const override; std::vector<std::string> get_rx_lo_sources( - const std::string& name, const size_t chan) const; - freq_range_t get_rx_lo_freq_range(const std::string& name, const size_t chan) const; + const std::string& name, const size_t chan) const override; + freq_range_t get_rx_lo_freq_range( + const std::string& name, const size_t chan) const override; void set_rx_lo_source( - const std::string& src, const std::string& name, const size_t chan); - const std::string get_rx_lo_source(const std::string& name, const size_t chan); - double set_rx_lo_freq(double freq, const std::string& name, const size_t chan); - double get_rx_lo_freq(const std::string& name, const size_t chan); - std::vector<std::string> get_tx_lo_names(const size_t chan) const; + const std::string& src, const std::string& name, const size_t chan) override; + const std::string get_rx_lo_source( + const std::string& name, const size_t chan) override; + double set_rx_lo_freq( + double freq, const std::string& name, const size_t chan) override; + double get_rx_lo_freq(const std::string& name, const size_t chan) override; + std::vector<std::string> get_tx_lo_names(const size_t chan) const override; std::vector<std::string> get_tx_lo_sources( const std::string& name, const size_t chan) const; - freq_range_t get_tx_lo_freq_range(const std::string& name, const size_t chan); + freq_range_t get_tx_lo_freq_range( + const std::string& name, const size_t chan) override; void set_tx_lo_source( - const std::string& src, const std::string& name, const size_t chan); - const std::string get_tx_lo_source(const std::string& name, const size_t chan); - double set_tx_lo_freq(const double freq, const std::string& name, const size_t chan); - double get_tx_lo_freq(const std::string& name, const size_t chan); + const std::string& src, const std::string& name, const size_t chan) override; + const std::string get_tx_lo_source( + const std::string& name, const size_t chan) override; + double set_tx_lo_freq( + const double freq, const std::string& name, const size_t chan) override; + double get_tx_lo_freq(const std::string& name, const size_t chan) override; // LO Export Control void set_tx_lo_export_enabled( - const bool enabled, const std::string& name, const size_t chan); + const bool enabled, const std::string& name, const size_t chan) override; void set_rx_lo_export_enabled( - const bool enabled, const std::string& name, const size_t chan); - bool get_tx_lo_export_enabled(const std::string& name, const size_t chan); + const bool enabled, const std::string& name, const size_t chan) override; + bool get_tx_lo_export_enabled(const std::string& name, const size_t chan) override; bool get_rx_lo_export_enabled(const std::string& name, const size_t chan); /************************************************************************** * GPIO Controls *************************************************************************/ - std::vector<std::string> get_gpio_banks() const; + std::vector<std::string> get_gpio_banks() const override; void set_gpio_attr( - const std::string& bank, const std::string& attr, const uint32_t value); - uint32_t get_gpio_attr(const std::string& bank, const std::string& attr); + const std::string& bank, const std::string& attr, const uint32_t value) override; + uint32_t get_gpio_attr(const std::string& bank, const std::string& attr) override; /************************************************************************** * EEPROM API *************************************************************************/ - void set_db_eeprom(const uhd::eeprom_map_t& db_eeprom); - uhd::eeprom_map_t get_db_eeprom(); + void set_db_eeprom(const uhd::eeprom_map_t& db_eeprom) override; + uhd::eeprom_map_t get_db_eeprom() override; /************************************************************************** * Sensor API *************************************************************************/ - std::vector<std::string> get_rx_sensor_names(size_t chan) const; - uhd::sensor_value_t get_rx_sensor(const std::string& name, size_t chan); - std::vector<std::string> get_tx_sensor_names(size_t chan) const; - uhd::sensor_value_t get_tx_sensor(const std::string& name, size_t chan); + std::vector<std::string> get_rx_sensor_names(size_t chan) const override; + uhd::sensor_value_t get_rx_sensor(const std::string& name, size_t chan) override; + std::vector<std::string> get_tx_sensor_names(size_t chan) const override; + uhd::sensor_value_t get_tx_sensor(const std::string& name, size_t chan) override; /************************************************************************** * Radio Identification API Calls *************************************************************************/ - std::string get_slot_name() const + std::string get_slot_name() const override { return _radio_slot; } size_t get_chan_from_dboard_fe( - const std::string& fe, const uhd::direction_t direction) const; + const std::string& fe, const uhd::direction_t direction) const override; std::string get_dboard_fe_from_chan( - const size_t chan, const uhd::direction_t direction) const; - std::string get_fe_name(const size_t chan, const uhd::direction_t direction) const; + const size_t chan, const uhd::direction_t direction) const override; + std::string get_fe_name( + const size_t chan, const uhd::direction_t direction) const override; /************************************************************************ * ??? calls @@ -201,7 +208,7 @@ private: //! Safely shut down all peripherals // // Reminder: After this is called, no peeks and pokes are allowed! - void deinit() + void deinit() override { RFNOC_LOG_TRACE("deinit()"); // Remove access to all peripherals diff --git a/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp b/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp index 9d2269916..0d5fea42c 100644 --- a/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp +++ b/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp @@ -77,7 +77,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<time_spec_t> _command_time; @@ -126,7 +126,7 @@ public: } private: - virtual void resolve(); + void resolve() override; static lo_inj_side_t _compute_lo2_inj_side( double lo1_freq, double if1_freq, double if2_freq, double bandwidth); static bool _has_mixer_spurs(double lo1_freq, @@ -189,7 +189,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<std::string> _lo_source_ch0; @@ -240,7 +240,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<twinrx_ctrl::lo_source_t> _lox_src_ch0; @@ -282,7 +282,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<double> _lo1_freq_c; @@ -331,7 +331,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs const std::string _channel; @@ -390,7 +390,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<std::string> _antenna_ch0; @@ -449,7 +449,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<double> _gain; @@ -519,7 +519,7 @@ public: } private: - virtual void resolve(); + void resolve() override; // Inputs experts::data_reader_t<twinrx_ctrl::antenna_mapping_t> _ant_mapping; @@ -610,7 +610,7 @@ public: } private: - virtual void resolve(); + void resolve() override; void _resolve_lox_freq(lo_stage_t lo_stage, experts::data_reader_t<double>& ch0_freq_d, experts::data_reader_t<double>& ch1_freq_d, diff --git a/host/lib/usrp/dboard/twinrx/twinrx_io.hpp b/host/lib/usrp/dboard/twinrx/twinrx_io.hpp index 2949138dd..538b0bfa8 100644 --- a/host/lib/usrp/dboard/twinrx/twinrx_io.hpp +++ b/host/lib/usrp/dboard/twinrx/twinrx_io.hpp @@ -88,7 +88,7 @@ public: _db_iface->set_gpio_out(dboard_iface::UNIT_BOTH, 0, ~GPIO_PINCTRL_MASK); } - ~twinrx_gpio() + ~twinrx_gpio() override { _db_iface->set_gpio_ddr(dboard_iface::UNIT_BOTH, ~GPIO_OUTPUT_MASK, SET_ALL_BITS); } @@ -111,7 +111,7 @@ public: } // CPLD register write-only interface - void poke32(const wb_addr_type addr, const uint32_t data) + void poke32(const wb_addr_type addr, const uint32_t data) override { boost::lock_guard<boost::mutex> lock(_mutex); using namespace soft_reg_field; diff --git a/host/lib/usrp/dboard_manager.cpp b/host/lib/usrp/dboard_manager.cpp index dc7ca6ac9..4fe3e8a00 100644 --- a/host/lib/usrp/dboard_manager.cpp +++ b/host/lib/usrp/dboard_manager.cpp @@ -198,19 +198,19 @@ public: dboard_iface::sptr iface, property_tree::sptr subtree, bool defer_db_init); - virtual ~dboard_manager_impl(void); + ~dboard_manager_impl(void) override; - inline const std::vector<std::string>& get_rx_frontends() const + inline const std::vector<std::string>& get_rx_frontends() const override { return _rx_frontends; } - inline const std::vector<std::string>& get_tx_frontends() const + inline const std::vector<std::string>& get_tx_frontends() const override { return _tx_frontends; } - void initialize_dboards(); + void initialize_dboards() override; private: void init(dboard_eeprom_t, dboard_eeprom_t, property_tree::sptr, bool); diff --git a/host/lib/usrp/gps_ctrl.cpp b/host/lib/usrp/gps_ctrl.cpp index 60866b85e..bcf938863 100644 --- a/host/lib/usrp/gps_ctrl.cpp +++ b/host/lib/usrp/gps_ctrl.cpp @@ -248,20 +248,20 @@ public: update_cache(); } - ~gps_ctrl_impl(void) + ~gps_ctrl_impl(void) override { /* NOP */ } // return a list of supported sensors - std::vector<std::string> get_sensors(void) + std::vector<std::string> get_sensors(void) override { std::vector<std::string> ret{ "gps_gpgga", "gps_gprmc", "gps_time", "gps_locked", "gps_servo"}; return ret; } - uhd::sensor_value_t get_sensor(std::string key) + uhd::sensor_value_t get_sensor(std::string key) override { if (key == "gps_gpgga" or key == "gps_gprmc") { return sensor_value_t(boost::to_upper_copy(key), @@ -333,7 +333,7 @@ private: std::string datestr = get_token(reply, 9); std::string timestr = get_token(reply, 1); - if (datestr.size() == 0 or timestr.size() == 0) { + if (datestr.empty() or timestr.empty()) { throw uhd::value_error( str(boost::format("Invalid response \"%s\"") % reply)); } @@ -368,7 +368,7 @@ private: return (get_time() - from_time_t(0)).total_seconds(); } - bool gps_detected(void) + bool gps_detected(void) override { return (_gps_type != GPS_TYPE_NONE); } diff --git a/host/lib/usrp/mpmd/mpmd_find.cpp b/host/lib/usrp/mpmd/mpmd_find.cpp index 5d5aab1ba..97e6fab80 100644 --- a/host/lib/usrp/mpmd/mpmd_find.cpp +++ b/host/lib/usrp/mpmd/mpmd_find.cpp @@ -160,7 +160,7 @@ device_addrs_t mpmd_find_with_addrs(const device_addrs_t& hints) UHD_LOG_TRACE("MPMD FIND", "Device responded: " << reply_addrs[0].to_string()); found_devices.push_back(reply_addrs[0]); } - if (found_devices.size() == 0) { + if (found_devices.empty()) { return device_addrs_t(); } else if (found_devices.size() == 1) { return found_devices; diff --git a/host/lib/usrp/mpmd/mpmd_impl.hpp b/host/lib/usrp/mpmd/mpmd_impl.hpp index 5b19bcc00..a8d7909e0 100644 --- a/host/lib/usrp/mpmd/mpmd_impl.hpp +++ b/host/lib/usrp/mpmd/mpmd_impl.hpp @@ -222,12 +222,12 @@ public: * Structors ************************************************************************/ mpmd_impl(const uhd::device_addr_t& device_addr); - ~mpmd_impl(); + ~mpmd_impl() override; /************************************************************************** * API ************************************************************************/ - uhd::rfnoc::mb_iface& get_mb_iface(const size_t mb_idx) + uhd::rfnoc::mb_iface& get_mb_iface(const size_t mb_idx) override { if (mb_idx >= _mb.size()) { throw uhd::index_error( diff --git a/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.cpp b/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.cpp index 56557bc39..dcb5d3473 100644 --- a/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.cpp +++ b/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.cpp @@ -82,13 +82,12 @@ std::vector<std::string> get_addrs_from_mb_args(const uhd::device_addr_t& mb_arg const mpmd_link_if_ctrl_udp::udp_link_info_map& link_info_list) { std::vector<std::string> addrs; - if(link_info_list.size() > 0 && - link_info_list.begin()->second.link_type == "internal") { + if (!link_info_list.empty() + && link_info_list.begin()->second.link_type == "internal") { // If link_type is "internal" we are local. In this case // use this address always. MPM knows better than us. addrs.push_back(link_info_list.begin()->first); - } - else { + } else { if (mb_args.has_key(FIRST_ADDR_KEY)) { addrs.push_back(mb_args[FIRST_ADDR_KEY]); } @@ -97,10 +96,9 @@ std::vector<std::string> get_addrs_from_mb_args(const uhd::device_addr_t& mb_arg } } if(addrs.empty()) { - if(link_info_list.size() > 0) { + if (!link_info_list.empty()) { addrs.push_back(link_info_list.begin()->first); - } - else { + } else { UHD_LOG_WARNING("MPMD::XPORT::UDP", "The `" << FIRST_ADDR_KEY << "' key must be specified in " diff --git a/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.hpp b/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.hpp index 13d28e42b..876109aa4 100644 --- a/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.hpp +++ b/host/lib/usrp/mpmd/mpmd_link_if_ctrl_udp.hpp @@ -36,16 +36,16 @@ public: const mpmd_link_if_mgr::xport_info_list_t& xport_info, const uhd::rfnoc::chdr_w_t chdr_w); - size_t get_num_links() const; + size_t get_num_links() const override; uhd::transport::both_links_t get_link(const size_t link_idx, const uhd::transport::link_type_t link_type, - const uhd::device_addr_t& link_args); - size_t get_mtu(const uhd::direction_t) const + const uhd::device_addr_t& link_args) override; + size_t get_mtu(const uhd::direction_t) const override { return _mtu; } - double get_link_rate(const size_t link_idx) const; - const uhd::rfnoc::chdr::chdr_packet_factory& get_packet_factory() const; + double get_link_rate(const size_t link_idx) const override; + const uhd::rfnoc::chdr::chdr_packet_factory& get_packet_factory() const override; private: const uhd::device_addr_t _mb_args; diff --git a/host/lib/usrp/mpmd/mpmd_link_if_mgr.cpp b/host/lib/usrp/mpmd/mpmd_link_if_mgr.cpp index 558570257..2b27e83cb 100644 --- a/host/lib/usrp/mpmd/mpmd_link_if_mgr.cpp +++ b/host/lib/usrp/mpmd/mpmd_link_if_mgr.cpp @@ -35,7 +35,7 @@ public: *************************************************************************/ bool connect(const std::string& link_type, const xport_info_list_t& xport_info, - const uhd::rfnoc::chdr_w_t chdr_w) + const uhd::rfnoc::chdr_w_t chdr_w) override { auto link_if_ctrl = make_link_if_ctrl(link_type, xport_info, chdr_w); if (!link_if_ctrl) { @@ -57,14 +57,14 @@ public: return true; } - size_t get_num_links() + size_t get_num_links() override { return _link_link_if_ctrl_map.size(); } uhd::transport::both_links_t get_link(const size_t link_idx, const uhd::transport::link_type_t link_type, - const uhd::device_addr_t& link_args) + const uhd::device_addr_t& link_args) override { const size_t link_if_ctrl_idx = _link_link_if_ctrl_map.at(link_idx).first; const size_t xport_link_idx = _link_link_if_ctrl_map.at(link_idx).second; @@ -72,13 +72,13 @@ public: ->get_link(xport_link_idx, link_type, link_args); } - size_t get_mtu(const size_t link_idx, const uhd::direction_t dir) const + size_t get_mtu(const size_t link_idx, const uhd::direction_t dir) const override { return _link_if_ctrls.at(_link_link_if_ctrl_map.at(link_idx).first)->get_mtu(dir); } const uhd::rfnoc::chdr::chdr_packet_factory& get_packet_factory( - const size_t link_idx) const + const size_t link_idx) const override { const size_t link_if_ctrl_idx = _link_link_if_ctrl_map.at(link_idx).first; return _link_if_ctrls.at(link_if_ctrl_idx)->get_packet_factory(); diff --git a/host/lib/usrp/mpmd/mpmd_mb_iface.hpp b/host/lib/usrp/mpmd/mpmd_mb_iface.hpp index 4e54cfc12..f1b7285ec 100644 --- a/host/lib/usrp/mpmd/mpmd_mb_iface.hpp +++ b/host/lib/usrp/mpmd/mpmd_mb_iface.hpp @@ -22,24 +22,26 @@ public: using uptr = std::unique_ptr<mpmd_mb_iface>; using clock_iface_list_t = std::vector<std::map<std::string, std::string>>; mpmd_mb_iface(const uhd::device_addr_t& mb_args, uhd::rpc_client::sptr rpc); - ~mpmd_mb_iface() = default; + ~mpmd_mb_iface() override = default; /*** mpmd_mb_iface API calls *****************************************/ //! Initialize transports void init(); /*** mb_iface API calls **********************************************/ - uint16_t get_proto_ver(); - uhd::rfnoc::chdr_w_t get_chdr_w(); - uhd::endianness_t get_endianness(const uhd::rfnoc::device_id_t local_device_id); - uhd::rfnoc::device_id_t get_remote_device_id(); - std::vector<uhd::rfnoc::device_id_t> get_local_device_ids(); + uint16_t get_proto_ver() override; + uhd::rfnoc::chdr_w_t get_chdr_w() override; + uhd::endianness_t get_endianness( + const uhd::rfnoc::device_id_t local_device_id) override; + uhd::rfnoc::device_id_t get_remote_device_id() override; + std::vector<uhd::rfnoc::device_id_t> get_local_device_ids() override; uhd::transport::adapter_id_t get_adapter_id( - const uhd::rfnoc::device_id_t local_device_id); - void reset_network(); - uhd::rfnoc::clock_iface::sptr get_clock_iface(const std::string& clock_name); + const uhd::rfnoc::device_id_t local_device_id) override; + void reset_network() override; + uhd::rfnoc::clock_iface::sptr get_clock_iface(const std::string& clock_name) override; uhd::rfnoc::chdr_ctrl_xport::sptr make_ctrl_transport( - uhd::rfnoc::device_id_t local_device_id, const uhd::rfnoc::sep_id_t& local_epid); + uhd::rfnoc::device_id_t local_device_id, + const uhd::rfnoc::sep_id_t& local_epid) override; uhd::rfnoc::chdr_rx_data_xport::uptr make_rx_data_transport( uhd::rfnoc::mgmt::mgmt_portal& mgmt_portal, const uhd::rfnoc::sep_addr_pair_t& addrs, @@ -47,7 +49,7 @@ public: const uhd::rfnoc::sw_buff_t pyld_buff_fmt, const uhd::rfnoc::sw_buff_t mdata_buff_fmt, const uhd::device_addr_t& xport_args, - const std::string& streamer_id); + const std::string& streamer_id) override; uhd::rfnoc::chdr_tx_data_xport::uptr make_tx_data_transport( uhd::rfnoc::mgmt::mgmt_portal& mgmt_portal, const uhd::rfnoc::sep_addr_pair_t& addrs, @@ -55,7 +57,7 @@ public: const uhd::rfnoc::sw_buff_t pyld_buff_fmt, const uhd::rfnoc::sw_buff_t mdata_buff_fmt, const uhd::device_addr_t& xport_args, - const std::string& streamer_id); + const std::string& streamer_id) override; private: uhd::device_addr_t _mb_args; diff --git a/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp b/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp index ac620f3e0..6e67b4b7e 100644 --- a/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp +++ b/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp @@ -293,7 +293,7 @@ mpmd_mboard_impl::mpmd_mboard_impl( UHD_LOG_DEBUG("MPMD", "MPM reports device info: " << device_info.to_string()); /// Get dboard info const auto dboards_info = rpc->request<std::vector<dev_info>>("get_dboard_info"); - UHD_ASSERT_THROW(this->dboard_info.size() == 0); + UHD_ASSERT_THROW(this->dboard_info.empty()); for (const auto& dboard_info_dict : dboards_info) { uhd::device_addr_t this_db_info; for (const auto& info_pair : dboard_info_dict) { diff --git a/host/lib/usrp/mpmd/sim_find.cpp b/host/lib/usrp/mpmd/sim_find.cpp index 2f957977e..d41d8dc10 100644 --- a/host/lib/usrp/mpmd/sim_find.cpp +++ b/host/lib/usrp/mpmd/sim_find.cpp @@ -81,7 +81,7 @@ public: { } - ~sim_impl() + ~sim_impl() override { // Destroys the mb_ifaces, causing mpm to be unclaimed before shutting down the // simulator diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index 78205fbdd..b80790f64 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -404,17 +404,17 @@ public: _tree = _dev->get_tree(); } - device::sptr get_device(void) + device::sptr get_device(void) override { return _dev; } - uhd::property_tree::sptr get_tree() const + uhd::property_tree::sptr get_tree() const override { return _tree; } - dict<std::string, std::string> get_usrp_rx_info(size_t chan) + dict<std::string, std::string> get_usrp_rx_info(size_t chan) override { mboard_chan_pair mcp = rx_chan_to_mcp(chan); dict<std::string, std::string> usrp_info; @@ -453,7 +453,7 @@ public: return usrp_info; } - dict<std::string, std::string> get_usrp_tx_info(size_t chan) + dict<std::string, std::string> get_usrp_tx_info(size_t chan) override { mboard_chan_pair mcp = tx_chan_to_mcp(chan); dict<std::string, std::string> usrp_info; @@ -495,7 +495,7 @@ public: /******************************************************************* * Mboard methods ******************************************************************/ - void set_master_clock_rate(double rate, size_t mboard) + void set_master_clock_rate(double rate, size_t mboard) override { if (mboard != ALL_MBOARDS) { if (_tree->exists(mb_root(mboard) / "auto_tick_rate") @@ -512,12 +512,12 @@ public: } } - double get_master_clock_rate(size_t mboard) + double get_master_clock_rate(size_t mboard) override { return _tree->access<double>(mb_root(mboard) / "tick_rate").get(); } - meta_range_t get_master_clock_rate_range(const size_t mboard) + meta_range_t get_master_clock_rate_range(const size_t mboard) override { if (_tree->exists(mb_root(mboard) / "tick_rate/range")) { return _tree->access<meta_range_t>(mb_root(mboard) / "tick_rate/range").get(); @@ -528,7 +528,7 @@ public: return meta_range_t(tick_rate, tick_rate, 0); } - std::string get_pp_string(void) + std::string get_pp_string(void) override { std::string buff = str(boost::format("%s USRP:\n" " Device: %s\n") @@ -570,22 +570,22 @@ public: return buff; } - std::string get_mboard_name(size_t mboard) + std::string get_mboard_name(size_t mboard) override { return _tree->access<std::string>(mb_root(mboard) / "name").get(); } - time_spec_t get_time_now(size_t mboard = 0) + time_spec_t get_time_now(size_t mboard = 0) override { return _tree->access<time_spec_t>(mb_root(mboard) / "time/now").get(); } - time_spec_t get_time_last_pps(size_t mboard = 0) + time_spec_t get_time_last_pps(size_t mboard = 0) override { return _tree->access<time_spec_t>(mb_root(mboard) / "time/pps").get(); } - void set_time_now(const time_spec_t& time_spec, size_t mboard) + void set_time_now(const time_spec_t& time_spec, size_t mboard) override { if (mboard != ALL_MBOARDS) { _tree->access<time_spec_t>(mb_root(mboard) / "time/now").set(time_spec); @@ -596,7 +596,7 @@ public: } } - void set_time_next_pps(const time_spec_t& time_spec, size_t mboard) + void set_time_next_pps(const time_spec_t& time_spec, size_t mboard) override { if (mboard != ALL_MBOARDS) { _tree->access<time_spec_t>(mb_root(mboard) / "time/pps").set(time_spec); @@ -607,7 +607,7 @@ public: } } - void set_time_unknown_pps(const time_spec_t& time_spec) + void set_time_unknown_pps(const time_spec_t& time_spec) override { UHD_LOGGER_INFO("MULTI_USRP") << " 1) catch time transition at pps edge"; auto end_time = @@ -643,7 +643,7 @@ public: } } - bool get_time_synchronized(void) + bool get_time_synchronized(void) override { for (size_t m = 1; m < get_num_mboards(); m++) { time_spec_t time_0 = this->get_time_now(0); @@ -654,7 +654,7 @@ public: return true; } - void set_command_time(const time_spec_t& time_spec, size_t mboard) + void set_command_time(const time_spec_t& time_spec, size_t mboard) override { if (mboard != ALL_MBOARDS) { if (not _tree->exists(mb_root(mboard) / "time/cmd")) { @@ -669,7 +669,7 @@ public: } } - void clear_command_time(size_t mboard) + void clear_command_time(size_t mboard) override { if (mboard != ALL_MBOARDS) { _tree->access<time_spec_t>(mb_root(mboard) / "time/cmd") @@ -681,7 +681,7 @@ public: } } - void issue_stream_cmd(const stream_cmd_t& stream_cmd, size_t chan) + void issue_stream_cmd(const stream_cmd_t& stream_cmd, size_t chan) override { if (chan != ALL_CHANS) { _tree->access<stream_cmd_t>(rx_dsp_root(chan) / "stream_cmd").set(stream_cmd); @@ -692,7 +692,7 @@ public: } } - void set_time_source(const std::string& source, const size_t mboard) + void set_time_source(const std::string& source, const size_t mboard) override { if (mboard != ALL_MBOARDS) { const auto time_source_path = mb_root(mboard) / "time_source/value"; @@ -713,7 +713,7 @@ public: } } - std::string get_time_source(const size_t mboard) + std::string get_time_source(const size_t mboard) override { const auto time_source_path = mb_root(mboard) / "time_source/value"; if (_tree->exists(time_source_path)) { @@ -729,7 +729,7 @@ public: throw uhd::runtime_error("Cannot query time_source on this device!"); } - std::vector<std::string> get_time_sources(const size_t mboard) + std::vector<std::string> get_time_sources(const size_t mboard) override { const auto time_source_path = mb_root(mboard) / "time_source/options"; if (_tree->exists(time_source_path)) { @@ -746,7 +746,7 @@ public: throw uhd::runtime_error("Cannot query time_source on this device!"); } - void set_clock_source(const std::string& source, const size_t mboard) + void set_clock_source(const std::string& source, const size_t mboard) override { if (mboard != ALL_MBOARDS) { const auto clock_source_path = mb_root(mboard) / "clock_source/value"; @@ -767,7 +767,7 @@ public: } } - std::string get_clock_source(const size_t mboard) + std::string get_clock_source(const size_t mboard) override { const auto clock_source_path = mb_root(mboard) / "clock_source/value"; if (_tree->exists(clock_source_path)) { @@ -786,7 +786,7 @@ public: void set_sync_source(const std::string& clock_source, const std::string& time_source, - const size_t mboard) + const size_t mboard) override { device_addr_t sync_args; sync_args["clock_source"] = clock_source; @@ -794,7 +794,7 @@ public: set_sync_source(sync_args, mboard); } - void set_sync_source(const device_addr_t& sync_source, const size_t mboard) + void set_sync_source(const device_addr_t& sync_source, const size_t mboard) override { if (mboard != ALL_MBOARDS) { const auto sync_source_path = mb_root(mboard) / "sync_source/value"; @@ -818,7 +818,7 @@ public: } } - device_addr_t get_sync_source(const size_t mboard) + device_addr_t get_sync_source(const size_t mboard) override { const auto sync_source_path = mb_root(mboard) / "sync_source/value"; if (_tree->exists(sync_source_path)) { @@ -834,7 +834,7 @@ public: return sync_source; } - std::vector<device_addr_t> get_sync_sources(const size_t mboard) + std::vector<device_addr_t> get_sync_sources(const size_t mboard) override { const auto sync_source_path = mb_root(mboard) / "sync_source/options"; if (_tree->exists(sync_source_path)) { @@ -857,7 +857,7 @@ public: return sync_sources; } - std::vector<std::string> get_clock_sources(const size_t mboard) + std::vector<std::string> get_clock_sources(const size_t mboard) override { const auto clock_source_path = mb_root(mboard) / "clock_source/options"; if (_tree->exists(clock_source_path)) { @@ -874,7 +874,7 @@ public: throw uhd::runtime_error("Cannot query clock_source on this device!"); } - void set_clock_source_out(const bool enb, const size_t mboard) + void set_clock_source_out(const bool enb, const size_t mboard) override { if (mboard != ALL_MBOARDS) { if (_tree->exists(mb_root(mboard) / "clock_source" / "output")) { @@ -890,7 +890,7 @@ public: } } - void set_time_source_out(const bool enb, const size_t mboard) + void set_time_source_out(const bool enb, const size_t mboard) override { if (mboard != ALL_MBOARDS) { if (_tree->exists(mb_root(mboard) / "time_source" / "output")) { @@ -906,17 +906,17 @@ public: } } - size_t get_num_mboards(void) + size_t get_num_mboards(void) override { return _tree->list("/mboards").size(); } - sensor_value_t get_mboard_sensor(const std::string& name, size_t mboard) + sensor_value_t get_mboard_sensor(const std::string& name, size_t mboard) override { return _tree->access<sensor_value_t>(mb_root(mboard) / "sensors" / name).get(); } - std::vector<std::string> get_mboard_sensor_names(size_t mboard) + std::vector<std::string> get_mboard_sensor_names(size_t mboard) override { if (_tree->exists(mb_root(mboard) / "sensors")) { return _tree->list(mb_root(mboard) / "sensors"); @@ -924,7 +924,8 @@ public: return {}; } - void set_user_register(const uint8_t addr, const uint32_t data, size_t mboard) + void set_user_register( + const uint8_t addr, const uint32_t data, size_t mboard) override { if (mboard != ALL_MBOARDS) { typedef std::pair<uint8_t, uint32_t> user_reg_t; @@ -937,7 +938,7 @@ public: } } - wb_iface::sptr get_user_settings_iface(const size_t chan) + wb_iface::sptr get_user_settings_iface(const size_t chan) override { const auto user_settings_path = rx_rf_fe_root(chan) / "user_settings" / "iface"; if (_tree->exists(user_settings_path)) { @@ -948,7 +949,7 @@ public: return nullptr; } - uhd::rfnoc::radio_control& get_radio_control(const size_t) + uhd::rfnoc::radio_control& get_radio_control(const size_t) override { throw uhd::not_implemented_error( "get_radio_control() not supported on this device!"); @@ -957,7 +958,7 @@ public: /******************************************************************* * RX methods ******************************************************************/ - rx_streamer::sptr get_rx_stream(const stream_args_t& args) + rx_streamer::sptr get_rx_stream(const stream_args_t& args) override { _check_link_rate(args, false); stream_args_t args_ = args; @@ -972,7 +973,7 @@ public: return this->get_device()->get_rx_stream(args_); } - void set_rx_subdev_spec(const subdev_spec_t& spec, size_t mboard) + void set_rx_subdev_spec(const subdev_spec_t& spec, size_t mboard) override { if (mboard != ALL_MBOARDS) { _tree->access<subdev_spec_t>(mb_root(mboard) / "rx_subdev_spec").set(spec); @@ -983,7 +984,7 @@ public: } } - subdev_spec_t get_rx_subdev_spec(size_t mboard) + subdev_spec_t get_rx_subdev_spec(size_t mboard) override { subdev_spec_t spec = _tree->access<subdev_spec_t>(mb_root(mboard) / "rx_subdev_spec").get(); @@ -1009,7 +1010,7 @@ public: return spec; } - size_t get_rx_num_channels(void) + size_t get_rx_num_channels(void) override { size_t sum = 0; for (size_t m = 0; m < get_num_mboards(); m++) { @@ -1018,12 +1019,12 @@ public: return sum; } - std::string get_rx_subdev_name(size_t chan) + std::string get_rx_subdev_name(size_t chan) override { return _tree->access<std::string>(rx_rf_fe_root(chan) / "name").get(); } - void set_rx_rate(double rate, size_t chan) + void set_rx_rate(double rate, size_t chan) override { if (chan != ALL_CHANS) { _tree->access<double>(rx_dsp_root(chan) / "rate" / "value").set(rate); @@ -1035,22 +1036,22 @@ public: } } - void set_rx_spp(const size_t spp, const size_t chan = ALL_CHANS) + void set_rx_spp(const size_t spp, const size_t chan = ALL_CHANS) override { _rx_spp[chan] = spp; } - double get_rx_rate(size_t chan) + double get_rx_rate(size_t chan) override { return _tree->access<double>(rx_dsp_root(chan) / "rate" / "value").get(); } - meta_range_t get_rx_rates(size_t chan) + meta_range_t get_rx_rates(size_t chan) override { return _tree->access<meta_range_t>(rx_dsp_root(chan) / "rate" / "range").get(); } - tune_result_t set_rx_freq(const tune_request_t& tune_request, size_t chan) + tune_result_t set_rx_freq(const tune_request_t& tune_request, size_t chan) override { // If any mixer is driven by an external LO the daughterboard assumes that no // CORDIC correction is necessary. Since the LO might be sourced from another @@ -1080,14 +1081,14 @@ public: return result; } - double get_rx_freq(size_t chan) + double get_rx_freq(size_t chan) override { return derive_freq_from_xx_subdev_and_dsp(RX_SIGN, _tree->subtree(rx_dsp_root(chan)), _tree->subtree(rx_rf_fe_root(chan))); } - freq_range_t get_rx_freq_range(size_t chan) + freq_range_t get_rx_freq_range(size_t chan) override { return make_overall_tune_range( _tree->access<meta_range_t>(rx_rf_fe_root(chan) / "freq" / "range").get(), @@ -1095,7 +1096,7 @@ public: this->get_rx_bandwidth(chan)); } - freq_range_t get_fe_rx_freq_range(size_t chan) + freq_range_t get_fe_rx_freq_range(size_t chan) override { return _tree->access<meta_range_t>(rx_rf_fe_root(chan) / "freq" / "range").get(); } @@ -1103,7 +1104,7 @@ public: /************************************************************************** * LO controls *************************************************************************/ - std::vector<std::string> get_rx_lo_names(size_t chan = 0) + std::vector<std::string> get_rx_lo_names(size_t chan = 0) override { std::vector<std::string> lo_names; if (_tree->exists(rx_rf_fe_root(chan) / "los")) { @@ -1114,8 +1115,9 @@ public: return lo_names; } - void set_rx_lo_source( - const std::string& src, const std::string& name = ALL_LOS, size_t chan = 0) + void set_rx_lo_source(const std::string& src, + const std::string& name = ALL_LOS, + size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1148,7 +1150,8 @@ public: } } - const std::string get_rx_lo_source(const std::string& name = ALL_LOS, size_t chan = 0) + const std::string get_rx_lo_source( + const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1174,7 +1177,7 @@ public: } std::vector<std::string> get_rx_lo_sources( - const std::string& name = ALL_LOS, size_t chan = 0) + const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1205,7 +1208,7 @@ public: } void set_rx_lo_export_enabled( - bool enabled, const std::string& name = ALL_LOS, size_t chan = 0) + bool enabled, const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1234,7 +1237,8 @@ public: } } - bool get_rx_lo_export_enabled(const std::string& name = ALL_LOS, size_t chan = 0) + bool get_rx_lo_export_enabled( + const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1257,7 +1261,8 @@ public: } } - double set_rx_lo_freq(double freq, const std::string& name = ALL_LOS, size_t chan = 0) + double set_rx_lo_freq( + double freq, const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1283,7 +1288,7 @@ public: } } - double get_rx_lo_freq(const std::string& name = ALL_LOS, size_t chan = 0) + double get_rx_lo_freq(const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1305,7 +1310,8 @@ public: } } - freq_range_t get_rx_lo_freq_range(const std::string& name = ALL_LOS, size_t chan = 0) + freq_range_t get_rx_lo_freq_range( + const std::string& name = ALL_LOS, size_t chan = 0) override { if (_tree->exists(rx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1328,7 +1334,7 @@ public: } } - std::vector<std::string> get_tx_lo_names(const size_t chan = 0) + std::vector<std::string> get_tx_lo_names(const size_t chan = 0) override { std::vector<std::string> lo_names; if (_tree->exists(tx_rf_fe_root(chan) / "los")) { @@ -1339,8 +1345,9 @@ public: return lo_names; } - void set_tx_lo_source( - const std::string& src, const std::string& name = ALL_LOS, const size_t chan = 0) + void set_tx_lo_source(const std::string& src, + const std::string& name = ALL_LOS, + const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1373,7 +1380,7 @@ public: } const std::string get_tx_lo_source( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { @@ -1392,7 +1399,7 @@ public: } std::vector<std::string> get_tx_lo_sources( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1423,8 +1430,9 @@ public: } } - void set_tx_lo_export_enabled( - const bool enabled, const std::string& name = ALL_LOS, const size_t chan = 0) + void set_tx_lo_export_enabled(const bool enabled, + const std::string& name = ALL_LOS, + const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1454,7 +1462,7 @@ public: } bool get_tx_lo_export_enabled( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { @@ -1470,8 +1478,9 @@ public: } } - double set_tx_lo_freq( - const double freq, const std::string& name = ALL_LOS, const size_t chan = 0) + double set_tx_lo_freq(const double freq, + const std::string& name = ALL_LOS, + const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1494,7 +1503,8 @@ public: } } - double get_tx_lo_freq(const std::string& name = ALL_LOS, const size_t chan = 0) + double get_tx_lo_freq( + const std::string& name = ALL_LOS, const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1518,7 +1528,7 @@ public: } freq_range_t get_tx_lo_freq_range( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { if (_tree->exists(tx_rf_fe_root(chan) / "los")) { if (name == ALL_LOS) { @@ -1545,7 +1555,7 @@ public: /************************************************************************** * Gain control *************************************************************************/ - void set_rx_gain(double gain, const std::string& name, size_t chan) + void set_rx_gain(double gain, const std::string& name, size_t chan) override { /* Check if any AGC mode is enable and if so warn the user */ if (chan != ALL_CHANS) { @@ -1581,7 +1591,7 @@ public: } } - void set_rx_gain_profile(const std::string& profile, const size_t chan) + void set_rx_gain_profile(const std::string& profile, const size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_rf_fe_root(chan) / "gains/all/profile/value")) { @@ -1601,7 +1611,7 @@ public: } } - std::string get_rx_gain_profile(const size_t chan) + std::string get_rx_gain_profile(const size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_rf_fe_root(chan) / "gains/all/profile/value")) { @@ -1616,7 +1626,7 @@ public: return ""; } - std::vector<std::string> get_rx_gain_profile_names(const size_t chan) + std::vector<std::string> get_rx_gain_profile_names(const size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_rf_fe_root(chan) / "gains/all/profile/options")) { @@ -1632,7 +1642,7 @@ public: return std::vector<std::string>(); } - void set_normalized_rx_gain(double gain, size_t chan = 0) + void set_normalized_rx_gain(double gain, size_t chan = 0) override { if (gain > 1.0 || gain < 0.0) { throw uhd::runtime_error("Normalized gain out of range, " @@ -1644,7 +1654,7 @@ public: set_rx_gain(abs_gain, ALL_GAINS, chan); } - void set_rx_agc(bool enable, size_t chan = 0) + void set_rx_agc(bool enable, size_t chan = 0) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_rf_fe_root(chan) / "gain" / "agc" / "enable")) { @@ -1661,7 +1671,7 @@ public: } } - double get_rx_gain(const std::string& name, size_t chan) + double get_rx_gain(const std::string& name, size_t chan) override { try { return rx_gain_group(chan)->get_value(name); @@ -1670,7 +1680,7 @@ public: } } - double get_normalized_rx_gain(size_t chan) + double get_normalized_rx_gain(size_t chan) override { gain_range_t gain_range = get_rx_gain_range(ALL_GAINS, chan); double gain_range_width = gain_range.stop() - gain_range.start(); @@ -1688,7 +1698,7 @@ public: return norm_gain; } - gain_range_t get_rx_gain_range(const std::string& name, size_t chan) + gain_range_t get_rx_gain_range(const std::string& name, size_t chan) override { try { return rx_gain_group(chan)->get_range(name); @@ -1697,7 +1707,7 @@ public: } } - std::vector<std::string> get_rx_gain_names(size_t chan) + std::vector<std::string> get_rx_gain_names(size_t chan) override { return rx_gain_group(chan)->get_names(); } @@ -1705,12 +1715,12 @@ public: /************************************************************************** * RX Power control *************************************************************************/ - bool has_rx_power_reference(const size_t chan) + bool has_rx_power_reference(const size_t chan) override { return _tree->exists(rx_rf_fe_root(chan) / "ref_power/value"); } - void set_rx_power_reference(const double power_dbm, const size_t chan = 0) + void set_rx_power_reference(const double power_dbm, const size_t chan = 0) override { const auto power_ref_path = rx_rf_fe_root(chan) / "ref_power/value"; if (!_tree->exists(power_ref_path)) { @@ -1720,7 +1730,7 @@ public: _tree->access<double>(power_ref_path).set(power_dbm); } - double get_rx_power_reference(const size_t chan = 0) + double get_rx_power_reference(const size_t chan = 0) override { const auto power_ref_path = rx_rf_fe_root(chan) / "ref_power/value"; if (!_tree->exists(power_ref_path)) { @@ -1730,7 +1740,7 @@ public: return _tree->access<double>(power_ref_path).get(); } - meta_range_t get_rx_power_range(const size_t chan) + meta_range_t get_rx_power_range(const size_t chan) override { const auto power_ref_path = rx_rf_fe_root(chan) / "ref_power/range"; if (!_tree->exists(power_ref_path)) { @@ -1741,18 +1751,18 @@ public: } - void set_rx_antenna(const std::string& ant, size_t chan) + void set_rx_antenna(const std::string& ant, size_t chan) override { _tree->access<std::string>(rx_rf_fe_root(chan) / "antenna" / "value").set(ant); } - std::string get_rx_antenna(size_t chan) + std::string get_rx_antenna(size_t chan) override { return _tree->access<std::string>(rx_rf_fe_root(chan) / "antenna" / "value") .get(); } - std::vector<std::string> get_rx_antennas(size_t chan) + std::vector<std::string> get_rx_antennas(size_t chan) override { return _tree ->access<std::vector<std::string>>( @@ -1760,23 +1770,23 @@ public: .get(); } - void set_rx_bandwidth(double bandwidth, size_t chan) + void set_rx_bandwidth(double bandwidth, size_t chan) override { _tree->access<double>(rx_rf_fe_root(chan) / "bandwidth" / "value").set(bandwidth); } - double get_rx_bandwidth(size_t chan) + double get_rx_bandwidth(size_t chan) override { return _tree->access<double>(rx_rf_fe_root(chan) / "bandwidth" / "value").get(); } - meta_range_t get_rx_bandwidth_range(size_t chan) + meta_range_t get_rx_bandwidth_range(size_t chan) override { return _tree->access<meta_range_t>(rx_rf_fe_root(chan) / "bandwidth" / "range") .get(); } - dboard_iface::sptr get_rx_dboard_iface(size_t chan) + dboard_iface::sptr get_rx_dboard_iface(size_t chan) override { return _tree ->access<dboard_iface::sptr>( @@ -1784,13 +1794,13 @@ public: .get(); } - sensor_value_t get_rx_sensor(const std::string& name, size_t chan) + sensor_value_t get_rx_sensor(const std::string& name, size_t chan) override { return _tree->access<sensor_value_t>(rx_rf_fe_root(chan) / "sensors" / name) .get(); } - std::vector<std::string> get_rx_sensor_names(size_t chan) + std::vector<std::string> get_rx_sensor_names(size_t chan) override { std::vector<std::string> sensor_names; if (_tree->exists(rx_rf_fe_root(chan) / "sensors")) { @@ -1799,7 +1809,7 @@ public: return sensor_names; } - void set_rx_dc_offset(const bool enb, size_t chan) + void set_rx_dc_offset(const bool enb, size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_fe_root(chan) / "dc_offset" / "enable")) { @@ -1820,7 +1830,7 @@ public: } } - void set_rx_dc_offset(const std::complex<double>& offset, size_t chan) + void set_rx_dc_offset(const std::complex<double>& offset, size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_fe_root(chan) / "dc_offset" / "value")) { @@ -1839,7 +1849,7 @@ public: } } - meta_range_t get_rx_dc_offset_range(size_t chan) + meta_range_t get_rx_dc_offset_range(size_t chan) override { if (_tree->exists(rx_fe_root(chan) / "dc_offset" / "range")) { return _tree @@ -1852,7 +1862,7 @@ public: } } - void set_rx_iq_balance(const bool enb, size_t chan) + void set_rx_iq_balance(const bool enb, size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_rf_fe_root(chan) / "iq_balance" / "enable")) { @@ -1869,7 +1879,7 @@ public: } } - void set_rx_iq_balance(const std::complex<double>& offset, size_t chan) + void set_rx_iq_balance(const std::complex<double>& offset, size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(rx_fe_root(chan) / "iq_balance" / "value")) { @@ -1888,7 +1898,7 @@ public: } } - std::vector<std::string> get_rx_filter_names(const size_t chan) + std::vector<std::string> get_rx_filter_names(const size_t chan) override { if (chan >= get_rx_num_channels()) { throw uhd::index_error("Attempting to get non-existent RX filter names"); @@ -1913,7 +1923,8 @@ public: return ret; } - uhd::filter_info_base::sptr get_rx_filter(const std::string& name, const size_t chan) + uhd::filter_info_base::sptr get_rx_filter( + const std::string& name, const size_t chan) override { std::vector<std::string> possible_names = get_rx_filter_names(chan); std::vector<std::string>::iterator it; @@ -1925,8 +1936,9 @@ public: return _tree->access<filter_info_base::sptr>(fs_path(name) / "value").get(); } - void set_rx_filter( - const std::string& name, uhd::filter_info_base::sptr filter, const size_t chan) + void set_rx_filter(const std::string& name, + uhd::filter_info_base::sptr filter, + const size_t chan) override { std::vector<std::string> possible_names = get_rx_filter_names(chan); std::vector<std::string>::iterator it; @@ -1938,7 +1950,7 @@ public: _tree->access<filter_info_base::sptr>(fs_path(name) / "value").set(filter); } - std::vector<std::string> get_tx_filter_names(const size_t chan) + std::vector<std::string> get_tx_filter_names(const size_t chan) override { if (chan >= get_tx_num_channels()) { throw uhd::index_error("Attempting to get non-existent TX filter names"); @@ -1963,7 +1975,8 @@ public: return ret; } - uhd::filter_info_base::sptr get_tx_filter(const std::string& name, const size_t chan) + uhd::filter_info_base::sptr get_tx_filter( + const std::string& name, const size_t chan) override { std::vector<std::string> possible_names = get_tx_filter_names(chan); std::vector<std::string>::iterator it; @@ -1975,8 +1988,9 @@ public: return _tree->access<filter_info_base::sptr>(fs_path(name) / "value").get(); } - void set_tx_filter( - const std::string& name, uhd::filter_info_base::sptr filter, const size_t chan) + void set_tx_filter(const std::string& name, + uhd::filter_info_base::sptr filter, + const size_t chan) override { std::vector<std::string> possible_names = get_tx_filter_names(chan); std::vector<std::string>::iterator it; @@ -1991,13 +2005,13 @@ public: /******************************************************************* * TX methods ******************************************************************/ - tx_streamer::sptr get_tx_stream(const stream_args_t& args) + tx_streamer::sptr get_tx_stream(const stream_args_t& args) override { _check_link_rate(args, true); return this->get_device()->get_tx_stream(args); } - void set_tx_subdev_spec(const subdev_spec_t& spec, size_t mboard) + void set_tx_subdev_spec(const subdev_spec_t& spec, size_t mboard) override { if (mboard != ALL_MBOARDS) { _tree->access<subdev_spec_t>(mb_root(mboard) / "tx_subdev_spec").set(spec); @@ -2008,7 +2022,7 @@ public: } } - subdev_spec_t get_tx_subdev_spec(size_t mboard) + subdev_spec_t get_tx_subdev_spec(size_t mboard) override { subdev_spec_t spec = _tree->access<subdev_spec_t>(mb_root(mboard) / "tx_subdev_spec").get(); @@ -2034,7 +2048,7 @@ public: return spec; } - size_t get_tx_num_channels(void) + size_t get_tx_num_channels(void) override { size_t sum = 0; for (size_t m = 0; m < get_num_mboards(); m++) { @@ -2043,12 +2057,12 @@ public: return sum; } - std::string get_tx_subdev_name(size_t chan) + std::string get_tx_subdev_name(size_t chan) override { return _tree->access<std::string>(tx_rf_fe_root(chan) / "name").get(); } - void set_tx_rate(double rate, size_t chan) + void set_tx_rate(double rate, size_t chan) override { if (chan != ALL_CHANS) { _tree->access<double>(tx_dsp_root(chan) / "rate" / "value").set(rate); @@ -2060,17 +2074,17 @@ public: } } - double get_tx_rate(size_t chan) + double get_tx_rate(size_t chan) override { return _tree->access<double>(tx_dsp_root(chan) / "rate" / "value").get(); } - meta_range_t get_tx_rates(size_t chan) + meta_range_t get_tx_rates(size_t chan) override { return _tree->access<meta_range_t>(tx_dsp_root(chan) / "rate" / "range").get(); } - tune_result_t set_tx_freq(const tune_request_t& tune_request, size_t chan) + tune_result_t set_tx_freq(const tune_request_t& tune_request, size_t chan) override { tune_result_t result = tune_xx_subdev_and_dsp(TX_SIGN, _tree->subtree(tx_dsp_root(chan)), @@ -2080,14 +2094,14 @@ public: return result; } - double get_tx_freq(size_t chan) + double get_tx_freq(size_t chan) override { return derive_freq_from_xx_subdev_and_dsp(TX_SIGN, _tree->subtree(tx_dsp_root(chan)), _tree->subtree(tx_rf_fe_root(chan))); } - freq_range_t get_tx_freq_range(size_t chan) + freq_range_t get_tx_freq_range(size_t chan) override { return make_overall_tune_range( _tree->access<meta_range_t>(tx_rf_fe_root(chan) / "freq" / "range").get(), @@ -2095,12 +2109,12 @@ public: this->get_tx_bandwidth(chan)); } - freq_range_t get_fe_tx_freq_range(size_t chan) + freq_range_t get_fe_tx_freq_range(size_t chan) override { return _tree->access<meta_range_t>(tx_rf_fe_root(chan) / "freq" / "range").get(); } - void set_tx_gain(double gain, const std::string& name, size_t chan) + void set_tx_gain(double gain, const std::string& name, size_t chan) override { try { return tx_gain_group(chan)->set_value(gain, name); @@ -2109,7 +2123,7 @@ public: } } - void set_tx_gain_profile(const std::string& profile, const size_t chan) + void set_tx_gain_profile(const std::string& profile, const size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(tx_rf_fe_root(chan) / "gains/all/profile/value")) { @@ -2129,7 +2143,7 @@ public: } } - std::string get_tx_gain_profile(const size_t chan) + std::string get_tx_gain_profile(const size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(tx_rf_fe_root(chan) / "gains/all/profile/value")) { @@ -2144,7 +2158,7 @@ public: return ""; } - std::vector<std::string> get_tx_gain_profile_names(const size_t chan) + std::vector<std::string> get_tx_gain_profile_names(const size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(tx_rf_fe_root(chan) / "gains/all/profile/options")) { @@ -2160,7 +2174,7 @@ public: return std::vector<std::string>(); } - void set_normalized_tx_gain(double gain, size_t chan = 0) + void set_normalized_tx_gain(double gain, size_t chan = 0) override { if (gain > 1.0 || gain < 0.0) { throw uhd::runtime_error("Normalized gain out of range, must be in [0, 1]."); @@ -2172,7 +2186,7 @@ public: } - double get_tx_gain(const std::string& name, size_t chan) + double get_tx_gain(const std::string& name, size_t chan) override { try { return tx_gain_group(chan)->get_value(name); @@ -2181,7 +2195,7 @@ public: } } - double get_normalized_tx_gain(size_t chan) + double get_normalized_tx_gain(size_t chan) override { gain_range_t gain_range = get_tx_gain_range(ALL_GAINS, chan); double gain_range_width = gain_range.stop() - gain_range.start(); @@ -2199,7 +2213,7 @@ public: return norm_gain; } - gain_range_t get_tx_gain_range(const std::string& name, size_t chan) + gain_range_t get_tx_gain_range(const std::string& name, size_t chan) override { try { return tx_gain_group(chan)->get_range(name); @@ -2208,7 +2222,7 @@ public: } } - std::vector<std::string> get_tx_gain_names(size_t chan) + std::vector<std::string> get_tx_gain_names(size_t chan) override { return tx_gain_group(chan)->get_names(); } @@ -2216,12 +2230,12 @@ public: /************************************************************************** * TX Power Controls *************************************************************************/ - bool has_tx_power_reference(const size_t chan) + bool has_tx_power_reference(const size_t chan) override { return _tree->exists(tx_rf_fe_root(chan) / "ref_power/value"); } - void set_tx_power_reference(const double power_dbm, const size_t chan = 0) + void set_tx_power_reference(const double power_dbm, const size_t chan = 0) override { const auto power_ref_path = tx_rf_fe_root(chan) / "ref_power/value"; if (!_tree->exists(power_ref_path)) { @@ -2231,7 +2245,7 @@ public: _tree->access<double>(power_ref_path).set(power_dbm); } - double get_tx_power_reference(const size_t chan = 0) + double get_tx_power_reference(const size_t chan = 0) override { const auto power_ref_path = tx_rf_fe_root(chan) / "ref_power/value"; if (!_tree->exists(power_ref_path)) { @@ -2241,7 +2255,7 @@ public: return _tree->access<double>(power_ref_path).get(); } - meta_range_t get_tx_power_range(const size_t chan) + meta_range_t get_tx_power_range(const size_t chan) override { const auto power_ref_path = tx_rf_fe_root(chan) / "ref_power/range"; if (!_tree->exists(power_ref_path)) { @@ -2251,18 +2265,18 @@ public: return _tree->access<meta_range_t>(power_ref_path).get(); } - void set_tx_antenna(const std::string& ant, size_t chan) + void set_tx_antenna(const std::string& ant, size_t chan) override { _tree->access<std::string>(tx_rf_fe_root(chan) / "antenna" / "value").set(ant); } - std::string get_tx_antenna(size_t chan) + std::string get_tx_antenna(size_t chan) override { return _tree->access<std::string>(tx_rf_fe_root(chan) / "antenna" / "value") .get(); } - std::vector<std::string> get_tx_antennas(size_t chan) + std::vector<std::string> get_tx_antennas(size_t chan) override { return _tree ->access<std::vector<std::string>>( @@ -2270,23 +2284,23 @@ public: .get(); } - void set_tx_bandwidth(double bandwidth, size_t chan) + void set_tx_bandwidth(double bandwidth, size_t chan) override { _tree->access<double>(tx_rf_fe_root(chan) / "bandwidth" / "value").set(bandwidth); } - double get_tx_bandwidth(size_t chan) + double get_tx_bandwidth(size_t chan) override { return _tree->access<double>(tx_rf_fe_root(chan) / "bandwidth" / "value").get(); } - meta_range_t get_tx_bandwidth_range(size_t chan) + meta_range_t get_tx_bandwidth_range(size_t chan) override { return _tree->access<meta_range_t>(tx_rf_fe_root(chan) / "bandwidth" / "range") .get(); } - dboard_iface::sptr get_tx_dboard_iface(size_t chan) + dboard_iface::sptr get_tx_dboard_iface(size_t chan) override { return _tree ->access<dboard_iface::sptr>( @@ -2294,13 +2308,13 @@ public: .get(); } - sensor_value_t get_tx_sensor(const std::string& name, size_t chan) + sensor_value_t get_tx_sensor(const std::string& name, size_t chan) override { return _tree->access<sensor_value_t>(tx_rf_fe_root(chan) / "sensors" / name) .get(); } - std::vector<std::string> get_tx_sensor_names(size_t chan) + std::vector<std::string> get_tx_sensor_names(size_t chan) override { std::vector<std::string> sensor_names; if (_tree->exists(rx_rf_fe_root(chan) / "sensors")) { @@ -2309,7 +2323,7 @@ public: return sensor_names; } - void set_tx_dc_offset(const std::complex<double>& offset, size_t chan) + void set_tx_dc_offset(const std::complex<double>& offset, size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(tx_fe_root(chan) / "dc_offset" / "value")) { @@ -2328,7 +2342,7 @@ public: } } - meta_range_t get_tx_dc_offset_range(size_t chan) + meta_range_t get_tx_dc_offset_range(size_t chan) override { if (_tree->exists(tx_fe_root(chan) / "dc_offset" / "range")) { return _tree @@ -2341,7 +2355,7 @@ public: } } - void set_tx_iq_balance(const std::complex<double>& offset, size_t chan) + void set_tx_iq_balance(const std::complex<double>& offset, size_t chan) override { if (chan != ALL_CHANS) { if (_tree->exists(tx_fe_root(chan) / "iq_balance" / "value")) { @@ -2363,7 +2377,7 @@ public: /******************************************************************* * GPIO methods ******************************************************************/ - std::vector<std::string> get_gpio_banks(const size_t mboard) + std::vector<std::string> get_gpio_banks(const size_t mboard) override { std::vector<std::string> banks; if (_tree->exists(mb_root(mboard) / "gpio")) { @@ -2382,7 +2396,7 @@ public: const std::string& attr, const uint32_t value, const uint32_t mask, - const size_t mboard) + const size_t mboard) override { std::vector<std::string> attr_value; if (_tree->exists(mb_root(mboard) / "gpio" / bank)) { @@ -2466,7 +2480,7 @@ public: } uint32_t get_gpio_attr( - const std::string& bank, const std::string& attr, const size_t mboard) + const std::string& bank, const std::string& attr, const size_t mboard) override { std::vector<std::string> str_val; @@ -2533,31 +2547,32 @@ public: } // The next four methods are only for RFNoC devices - std::vector<std::string> get_gpio_src_banks(const size_t) + std::vector<std::string> get_gpio_src_banks(const size_t) override { throw uhd::not_implemented_error( "get_gpio_src_banks() not implemented for this motherboard!"); } - std::vector<std::string> get_gpio_srcs(const std::string&, const size_t) + std::vector<std::string> get_gpio_srcs(const std::string&, const size_t) override { throw uhd::not_implemented_error( "get_gpio_srcs() not implemented for this motherboard!"); } - std::vector<std::string> get_gpio_src(const std::string&, const size_t) + std::vector<std::string> get_gpio_src(const std::string&, const size_t) override { throw uhd::not_implemented_error( "get_gpio_src() not implemented for this motherboard!"); } - void set_gpio_src(const std::string&, const std::vector<std::string>&, const size_t) + void set_gpio_src( + const std::string&, const std::vector<std::string>&, const size_t) override { throw uhd::not_implemented_error( "set_gpio_src() not implemented for this motherboard!"); } - uhd::rfnoc::mb_controller& get_mb_controller(const size_t /*mboard*/) + uhd::rfnoc::mb_controller& get_mb_controller(const size_t /*mboard*/) override { throw uhd::not_implemented_error( "get_mb_controller() not supported on this device!"); diff --git a/host/lib/usrp/multi_usrp_rfnoc.cpp b/host/lib/usrp/multi_usrp_rfnoc.cpp index b9e8f0a1f..bed364e60 100644 --- a/host/lib/usrp/multi_usrp_rfnoc.cpp +++ b/host/lib/usrp/multi_usrp_rfnoc.cpp @@ -76,19 +76,19 @@ class redirector_device : public uhd::device public: redirector_device(multi_usrp* musrp_ptr) : _musrp(musrp_ptr) {} - rx_streamer::sptr get_rx_stream(const stream_args_t& args) + rx_streamer::sptr get_rx_stream(const stream_args_t& args) override { return _musrp->get_rx_stream(args); } - tx_streamer::sptr get_tx_stream(const stream_args_t& args) + tx_streamer::sptr get_tx_stream(const stream_args_t& args) override { auto streamer = _musrp->get_tx_stream(args); _last_tx_streamer = streamer; return streamer; } - bool recv_async_msg(async_metadata_t& md, double timeout) + bool recv_async_msg(async_metadata_t& md, double timeout) override { std::call_once(_async_warning_flag, []() { UHD_LOG_WARNING(LOG_ID, @@ -255,22 +255,22 @@ public: _graph->commit(); } - ~multi_usrp_rfnoc() + ~multi_usrp_rfnoc() override { // nop } - device::sptr get_device(void) + device::sptr get_device(void) override { return _device; } - uhd::property_tree::sptr get_tree() const + uhd::property_tree::sptr get_tree() const override { return _tree; } - rx_streamer::sptr get_rx_stream(const stream_args_t& args_) + rx_streamer::sptr get_rx_stream(const stream_args_t& args_) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); stream_args_t args = sanitize_stream_args(args_); @@ -355,7 +355,7 @@ public: return rx_streamer; } - tx_streamer::sptr get_tx_stream(const stream_args_t& args_) + tx_streamer::sptr get_tx_stream(const stream_args_t& args_) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); stream_args_t args = sanitize_stream_args(args_); @@ -467,7 +467,7 @@ public: return range; } - dict<std::string, std::string> get_usrp_rx_info(size_t chan) + dict<std::string, std::string> get_usrp_rx_info(size_t chan) override { auto& rx_chain = _get_rx_chan(chan); const size_t mb_idx = rx_chain.radio->get_block_id().get_device_no(); @@ -501,7 +501,7 @@ public: return usrp_info; } - dict<std::string, std::string> get_usrp_tx_info(size_t chan) + dict<std::string, std::string> get_usrp_tx_info(size_t chan) override { auto& tx_chain = _get_tx_chan(chan); const size_t mb_idx = tx_chain.radio->get_block_id().get_device_no(); @@ -640,7 +640,7 @@ public: /******************************************************************* * Mboard methods ******************************************************************/ - void set_master_clock_rate(double rate, size_t mboard) + void set_master_clock_rate(double rate, size_t mboard) override { for (auto& chain : _rx_chans) { auto radio = chain.second.radio; @@ -658,7 +658,7 @@ public: } } - double get_master_clock_rate(size_t mboard) + double get_master_clock_rate(size_t mboard) override { // We pick the first radio we can find on this mboard, and hope that all // radios have the same range. @@ -677,7 +677,7 @@ public: throw uhd::key_error("Invalid mboard index!"); } - meta_range_t get_master_clock_rate_range(const size_t mboard) + meta_range_t get_master_clock_rate_range(const size_t mboard) override { // We pick the first radio we can find on this mboard, and hope that all // radios have the same range. @@ -696,7 +696,7 @@ public: throw uhd::key_error("Invalid mboard index!"); } - std::string get_pp_string(void) + std::string get_pp_string(void) override { std::string buff = str(boost::format("%s USRP:\n" " Device: %s\n") @@ -735,34 +735,35 @@ public: return buff; } - std::string get_mboard_name(size_t mboard = 0) + std::string get_mboard_name(size_t mboard = 0) override { return _get_mbc(mboard)->get_mboard_name(); } - time_spec_t get_time_now(size_t mboard = 0) + time_spec_t get_time_now(size_t mboard = 0) override { return _get_mbc(mboard)->get_timekeeper(0)->get_time_now(); } - time_spec_t get_time_last_pps(size_t mboard = 0) + time_spec_t get_time_last_pps(size_t mboard = 0) override { return _get_mbc(mboard)->get_timekeeper(0)->get_time_last_pps(); } - void set_time_now(const time_spec_t& time_spec, size_t mboard = ALL_MBOARDS) + void set_time_now(const time_spec_t& time_spec, size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_time_now, time_spec); _get_mbc(mboard)->get_timekeeper(0)->set_time_now(time_spec); } - void set_time_next_pps(const time_spec_t& time_spec, size_t mboard = ALL_MBOARDS) + void set_time_next_pps( + const time_spec_t& time_spec, size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_time_next_pps, time_spec); _get_mbc(mboard)->get_timekeeper(0)->set_time_next_pps(time_spec); } - void set_time_unknown_pps(const time_spec_t& time_spec) + void set_time_unknown_pps(const time_spec_t& time_spec) override { UHD_LOGGER_INFO("MULTI_USRP") << " 1) catch time transition at pps edge"; auto end_time = std::chrono::steady_clock::now() + 1100ms; @@ -796,7 +797,7 @@ public: } } - bool get_time_synchronized(void) + bool get_time_synchronized(void) override { for (size_t m = 1; m < get_num_mboards(); m++) { time_spec_t time_0 = this->get_time_now(0); @@ -808,7 +809,8 @@ public: return true; } - void set_command_time(const uhd::time_spec_t& time_spec, size_t mboard = ALL_MBOARDS) + void set_command_time( + const uhd::time_spec_t& time_spec, size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_command_time, time_spec); @@ -833,7 +835,7 @@ public: } } - void clear_command_time(size_t mboard = ALL_MBOARDS) + void clear_command_time(size_t mboard = ALL_MBOARDS) override { if (mboard == ALL_MBOARDS) { for (size_t i = 0; i < get_num_mboards(); ++i) { @@ -863,7 +865,8 @@ public: } } - void issue_stream_cmd(const stream_cmd_t& stream_cmd, size_t chan = ALL_CHANS) + void issue_stream_cmd( + const stream_cmd_t& stream_cmd, size_t chan = ALL_CHANS) override { MUX_RX_API_CALL(issue_stream_cmd, stream_cmd); auto& rx_chain = _get_rx_chan(chan); @@ -874,104 +877,106 @@ public: } } - void set_time_source(const std::string& source, const size_t mboard = ALL_MBOARDS) + void set_time_source( + const std::string& source, const size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_time_source, source); _get_mbc(mboard)->set_time_source(source); } - std::string get_time_source(const size_t mboard) + std::string get_time_source(const size_t mboard) override { return _get_mbc(mboard)->get_time_source(); } - std::vector<std::string> get_time_sources(const size_t mboard) + std::vector<std::string> get_time_sources(const size_t mboard) override { return _get_mbc(mboard)->get_time_sources(); } - void set_clock_source(const std::string& source, const size_t mboard = ALL_MBOARDS) + void set_clock_source( + const std::string& source, const size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_clock_source, source); _get_mbc(mboard)->set_clock_source(source); } - std::string get_clock_source(const size_t mboard) + std::string get_clock_source(const size_t mboard) override { return _get_mbc(mboard)->get_clock_source(); } - std::vector<std::string> get_clock_sources(const size_t mboard) + std::vector<std::string> get_clock_sources(const size_t mboard) override { return _get_mbc(mboard)->get_clock_sources(); } void set_sync_source(const std::string& clock_source, const std::string& time_source, - const size_t mboard = ALL_MBOARDS) + const size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_sync_source, clock_source, time_source); _get_mbc(mboard)->set_sync_source(clock_source, time_source); } void set_sync_source( - const device_addr_t& sync_source, const size_t mboard = ALL_MBOARDS) + const device_addr_t& sync_source, const size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_sync_source, sync_source); _get_mbc(mboard)->set_sync_source(sync_source); } - device_addr_t get_sync_source(const size_t mboard) + device_addr_t get_sync_source(const size_t mboard) override { return _get_mbc(mboard)->get_sync_source(); } - std::vector<device_addr_t> get_sync_sources(const size_t mboard) + std::vector<device_addr_t> get_sync_sources(const size_t mboard) override { return _get_mbc(mboard)->get_sync_sources(); } - void set_clock_source_out(const bool enb, const size_t mboard = ALL_MBOARDS) + void set_clock_source_out(const bool enb, const size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_clock_source_out, enb); _get_mbc(mboard)->set_clock_source_out(enb); } - void set_time_source_out(const bool enb, const size_t mboard = ALL_MBOARDS) + void set_time_source_out(const bool enb, const size_t mboard = ALL_MBOARDS) override { MUX_MB_API_CALL(set_time_source_out, enb); _get_mbc(mboard)->set_time_source_out(enb); } - size_t get_num_mboards(void) + size_t get_num_mboards(void) override { return _graph->get_num_mboards(); } - sensor_value_t get_mboard_sensor(const std::string& name, size_t mboard = 0) + sensor_value_t get_mboard_sensor(const std::string& name, size_t mboard = 0) override { return _get_mbc(mboard)->get_sensor(name); } - std::vector<std::string> get_mboard_sensor_names(size_t mboard = 0) + std::vector<std::string> get_mboard_sensor_names(size_t mboard = 0) override { return _get_mbc(mboard)->get_sensor_names(); } // This only works on the USRP2 and B100, both of which are not rfnoc_device - void set_user_register(const uint8_t, const uint32_t, size_t) + void set_user_register(const uint8_t, const uint32_t, size_t) override { throw uhd::not_implemented_error( "set_user_register(): Not implemented on this device!"); } // This only works on the B200, which is not an rfnoc_device - uhd::wb_iface::sptr get_user_settings_iface(const size_t) + uhd::wb_iface::sptr get_user_settings_iface(const size_t) override { return nullptr; } - uhd::rfnoc::radio_control& get_radio_control(const size_t chan = 0) + uhd::rfnoc::radio_control& get_radio_control(const size_t chan = 0) override { return *_get_rx_chan(chan).radio; } @@ -1075,7 +1080,7 @@ public: } void set_rx_subdev_spec( - const uhd::usrp::subdev_spec_t& spec, size_t mboard = ALL_MBOARDS) + const uhd::usrp::subdev_spec_t& spec, size_t mboard = ALL_MBOARDS) override { // First, generate a vector of the RX channels that we need to register auto new_rx_chans = [this, spec, mboard]() { @@ -1127,7 +1132,7 @@ public: } } - uhd::usrp::subdev_spec_t get_rx_subdev_spec(size_t mboard = 0) + uhd::usrp::subdev_spec_t get_rx_subdev_spec(size_t mboard = 0) override { uhd::usrp::subdev_spec_t result; for (size_t rx_chan = 0; rx_chan < get_rx_num_channels(); rx_chan++) { @@ -1143,18 +1148,18 @@ public: return result; } - size_t get_rx_num_channels(void) + size_t get_rx_num_channels(void) override { return _rx_chans.size(); } - std::string get_rx_subdev_name(size_t chan = 0) + std::string get_rx_subdev_name(size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_fe_name(rx_chain.block_chan, uhd::RX_DIRECTION); } - void set_rx_rate(double rate, size_t chan = ALL_CHANS) + void set_rx_rate(double rate, size_t chan = ALL_CHANS) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); MUX_RX_API_CALL(set_rx_rate, rate); @@ -1175,7 +1180,7 @@ public: _rx_rates[chan] = actual_rate; } - void set_rx_spp(const size_t spp, const size_t chan = ALL_CHANS) + void set_rx_spp(const size_t spp, const size_t chan = ALL_CHANS) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); MUX_RX_API_CALL(set_rx_spp, spp); @@ -1184,7 +1189,7 @@ public: "spp", narrow_cast<int>(spp), rx_chain.block_chan); } - double get_rx_rate(size_t chan = 0) + double get_rx_rate(size_t chan = 0) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); auto& rx_chain = _get_rx_chan(chan); @@ -1194,7 +1199,7 @@ public: return rx_chain.radio->get_rate(); } - meta_range_t get_rx_rates(size_t chan = 0) + meta_range_t get_rx_rates(size_t chan = 0) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); auto rx_chain = _get_rx_chan(chan); @@ -1204,7 +1209,8 @@ public: return rx_chain.radio->get_rate_range(); } - tune_result_t set_rx_freq(const tune_request_t& tune_request, size_t chan = 0) + tune_result_t set_rx_freq( + const tune_request_t& tune_request, size_t chan = 0) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); @@ -1254,7 +1260,7 @@ public: tune_request); } - double get_rx_freq(size_t chan = 0) + double get_rx_freq(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); @@ -1267,7 +1273,7 @@ public: return actual_rf_freq - actual_dsp_freq * RX_SIGN; } - freq_range_t get_rx_freq_range(size_t chan = 0) + freq_range_t get_rx_freq_range(size_t chan = 0) override { auto fe_freq_range = get_fe_rx_freq_range(chan); @@ -1280,7 +1286,7 @@ public: return dsp_freq_range; } - freq_range_t get_fe_rx_freq_range(size_t chan = 0) + freq_range_t get_fe_rx_freq_range(size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_frequency_range(rx_chain.block_chan); @@ -1289,74 +1295,78 @@ public: /************************************************************************** * LO controls *************************************************************************/ - std::vector<std::string> get_rx_lo_names(size_t chan = 0) + std::vector<std::string> get_rx_lo_names(size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_lo_names(rx_chain.block_chan); } - void set_rx_lo_source( - const std::string& src, const std::string& name = ALL_LOS, size_t chan = 0) + void set_rx_lo_source(const std::string& src, + const std::string& name = ALL_LOS, + size_t chan = 0) override { MUX_RX_API_CALL(set_rx_lo_source, src, name); auto rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_lo_source(src, name, rx_chain.block_chan); } - const std::string get_rx_lo_source(const std::string& name = ALL_LOS, size_t chan = 0) + const std::string get_rx_lo_source( + const std::string& name = ALL_LOS, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_lo_source(name, rx_chain.block_chan); } std::vector<std::string> get_rx_lo_sources( - const std::string& name = ALL_LOS, size_t chan = 0) + const std::string& name = ALL_LOS, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_lo_sources(name, rx_chain.block_chan); } void set_rx_lo_export_enabled( - bool enabled, const std::string& name = ALL_LOS, size_t chan = 0) + bool enabled, const std::string& name = ALL_LOS, size_t chan = 0) override { MUX_RX_API_CALL(set_rx_lo_export_enabled, enabled, name); auto rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_lo_export_enabled(enabled, name, rx_chain.block_chan); } - bool get_rx_lo_export_enabled(const std::string& name = ALL_LOS, size_t chan = 0) + bool get_rx_lo_export_enabled( + const std::string& name = ALL_LOS, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_lo_export_enabled(name, rx_chain.block_chan); } - double set_rx_lo_freq(double freq, const std::string& name, size_t chan = 0) + double set_rx_lo_freq(double freq, const std::string& name, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->set_rx_lo_freq(freq, name, rx_chain.block_chan); } - double get_rx_lo_freq(const std::string& name, size_t chan = 0) + double get_rx_lo_freq(const std::string& name, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_lo_freq(name, rx_chain.block_chan); } - freq_range_t get_rx_lo_freq_range(const std::string& name, size_t chan = 0) + freq_range_t get_rx_lo_freq_range(const std::string& name, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_lo_freq_range(name, rx_chain.block_chan); } /*** TX LO API ***/ - std::vector<std::string> get_tx_lo_names(size_t chan = 0) + std::vector<std::string> get_tx_lo_names(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_lo_names(tx_chain.block_chan); } - void set_tx_lo_source( - const std::string& src, const std::string& name = ALL_LOS, const size_t chan = 0) + void set_tx_lo_source(const std::string& src, + const std::string& name = ALL_LOS, + const size_t chan = 0) override { MUX_TX_API_CALL(set_tx_lo_source, src, name); auto tx_chain = _get_tx_chan(chan); @@ -1364,21 +1374,22 @@ public: } const std::string get_tx_lo_source( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_lo_source(name, tx_chain.block_chan); } std::vector<std::string> get_tx_lo_sources( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_lo_sources(name, tx_chain.block_chan); } - void set_tx_lo_export_enabled( - const bool enabled, const std::string& name = ALL_LOS, const size_t chan = 0) + void set_tx_lo_export_enabled(const bool enabled, + const std::string& name = ALL_LOS, + const size_t chan = 0) override { MUX_TX_API_CALL(set_tx_lo_export_enabled, enabled, name); auto tx_chain = _get_tx_chan(chan); @@ -1386,26 +1397,27 @@ public: } bool get_tx_lo_export_enabled( - const std::string& name = ALL_LOS, const size_t chan = 0) + const std::string& name = ALL_LOS, const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_lo_export_enabled(name, tx_chain.block_chan); } double set_tx_lo_freq( - const double freq, const std::string& name, const size_t chan = 0) + const double freq, const std::string& name, const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->set_tx_lo_freq(freq, name, tx_chain.block_chan); } - double get_tx_lo_freq(const std::string& name, const size_t chan = 0) + double get_tx_lo_freq(const std::string& name, const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_lo_freq(name, tx_chain.block_chan); } - freq_range_t get_tx_lo_freq_range(const std::string& name, const size_t chan = 0) + freq_range_t get_tx_lo_freq_range( + const std::string& name, const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_lo_freq_range(name, tx_chain.block_chan); @@ -1414,33 +1426,33 @@ public: /************************************************************************** * Gain controls *************************************************************************/ - void set_rx_gain(double gain, const std::string& name, size_t chan = 0) + void set_rx_gain(double gain, const std::string& name, size_t chan = 0) override { MUX_RX_API_CALL(set_rx_gain, gain, name); auto rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_gain(gain, name, rx_chain.block_chan); } - std::vector<std::string> get_rx_gain_profile_names(const size_t chan = 0) + std::vector<std::string> get_rx_gain_profile_names(const size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_gain_profile_names(rx_chain.block_chan); } - void set_rx_gain_profile(const std::string& profile, const size_t chan = 0) + void set_rx_gain_profile(const std::string& profile, const size_t chan = 0) override { MUX_RX_API_CALL(set_rx_gain_profile, profile); auto rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_gain_profile(profile, rx_chain.block_chan); } - std::string get_rx_gain_profile(const size_t chan = 0) + std::string get_rx_gain_profile(const size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_gain_profile(rx_chain.block_chan); } - void set_normalized_rx_gain(double gain, size_t chan = 0) + void set_normalized_rx_gain(double gain, size_t chan = 0) override { if (gain > 1.0 || gain < 0.0) { throw uhd::runtime_error("Normalized gain out of range, must be in [0, 1]."); @@ -1452,20 +1464,20 @@ public: set_rx_gain(abs_gain, ALL_GAINS, chan); } - void set_rx_agc(bool enable, size_t chan = 0) + void set_rx_agc(bool enable, size_t chan = 0) override { MUX_RX_API_CALL(set_rx_agc, enable); auto& rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_agc(enable, rx_chain.block_chan); } - double get_rx_gain(const std::string& name, size_t chan = 0) + double get_rx_gain(const std::string& name, size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_gain(name, rx_chain.block_chan); } - double get_normalized_rx_gain(size_t chan = 0) + double get_normalized_rx_gain(size_t chan = 0) override { gain_range_t gain_range = get_rx_gain_range(ALL_GAINS, chan); const double gain_range_width = gain_range.stop() - gain_range.start(); @@ -1479,120 +1491,121 @@ public: return std::max(std::min(norm_gain, 1.0), 0.0); } - gain_range_t get_rx_gain_range(const std::string& name, size_t chan = 0) + gain_range_t get_rx_gain_range(const std::string& name, size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_gain_range(name, rx_chain.block_chan); } - std::vector<std::string> get_rx_gain_names(size_t chan = 0) + std::vector<std::string> get_rx_gain_names(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_gain_names(rx_chain.block_chan); } - bool has_rx_power_reference(const size_t chan = 0) + bool has_rx_power_reference(const size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->has_rx_power_reference(rx_chain.block_chan); } - void set_rx_power_reference(const double power_dbm, const size_t chan = 0) + void set_rx_power_reference(const double power_dbm, const size_t chan = 0) override { MUX_RX_API_CALL(set_rx_power_reference, power_dbm); auto& rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_power_reference(power_dbm, rx_chain.block_chan); } - double get_rx_power_reference(const size_t chan = 0) + double get_rx_power_reference(const size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_power_reference(rx_chain.block_chan); } - meta_range_t get_rx_power_range(const size_t chan) + meta_range_t get_rx_power_range(const size_t chan) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_power_range(rx_chain.block_chan); } - void set_rx_antenna(const std::string& ant, size_t chan = 0) + void set_rx_antenna(const std::string& ant, size_t chan = 0) override { MUX_RX_API_CALL(set_rx_antenna, ant); auto& rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_antenna(ant, rx_chain.block_chan); } - std::string get_rx_antenna(size_t chan = 0) + std::string get_rx_antenna(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_antenna(rx_chain.block_chan); } - std::vector<std::string> get_rx_antennas(size_t chan = 0) + std::vector<std::string> get_rx_antennas(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_antennas(rx_chain.block_chan); } - void set_rx_bandwidth(double bandwidth, size_t chan = 0) + void set_rx_bandwidth(double bandwidth, size_t chan = 0) override { MUX_RX_API_CALL(set_rx_bandwidth, bandwidth); auto& rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_bandwidth(bandwidth, rx_chain.block_chan); } - double get_rx_bandwidth(size_t chan = 0) + double get_rx_bandwidth(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_bandwidth(rx_chain.block_chan); } - meta_range_t get_rx_bandwidth_range(size_t chan = 0) + meta_range_t get_rx_bandwidth_range(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_bandwidth_range(rx_chain.block_chan); } - dboard_iface::sptr get_rx_dboard_iface(size_t chan = 0) + dboard_iface::sptr get_rx_dboard_iface(size_t chan = 0) override { auto& rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_tree()->access<dboard_iface::sptr>("iface").get(); } - sensor_value_t get_rx_sensor(const std::string& name, size_t chan = 0) + sensor_value_t get_rx_sensor(const std::string& name, size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_sensor(name, rx_chain.block_chan); } - std::vector<std::string> get_rx_sensor_names(size_t chan = 0) + std::vector<std::string> get_rx_sensor_names(size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_sensor_names(rx_chain.block_chan); } - void set_rx_dc_offset(const bool enb, size_t chan = ALL_CHANS) + void set_rx_dc_offset(const bool enb, size_t chan = ALL_CHANS) override { MUX_RX_API_CALL(set_rx_dc_offset, enb); const auto rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_dc_offset(enb, rx_chain.block_chan); } - void set_rx_dc_offset(const std::complex<double>& offset, size_t chan = ALL_CHANS) + void set_rx_dc_offset( + const std::complex<double>& offset, size_t chan = ALL_CHANS) override { MUX_RX_API_CALL(set_rx_dc_offset, offset); const auto rx_chain = _get_rx_chan(chan); rx_chain.radio->set_rx_dc_offset(offset, rx_chain.block_chan); } - meta_range_t get_rx_dc_offset_range(size_t chan = 0) + meta_range_t get_rx_dc_offset_range(size_t chan = 0) override { auto rx_chain = _get_rx_chan(chan); return rx_chain.radio->get_rx_dc_offset_range(rx_chain.block_chan); } - void set_rx_iq_balance(const bool enb, size_t chan) + void set_rx_iq_balance(const bool enb, size_t chan) override { MUX_RX_API_CALL(set_rx_iq_balance, enb); auto rx_chain = _get_rx_chan(chan); @@ -1600,7 +1613,7 @@ public: } void set_rx_iq_balance( - const std::complex<double>& correction, size_t chan = ALL_CHANS) + const std::complex<double>& correction, size_t chan = ALL_CHANS) override { MUX_RX_API_CALL(set_rx_iq_balance, correction); const auto rx_chain = _get_rx_chan(chan); @@ -1707,7 +1720,7 @@ public: } void set_tx_subdev_spec( - const uhd::usrp::subdev_spec_t& spec, size_t mboard = ALL_MBOARDS) + const uhd::usrp::subdev_spec_t& spec, size_t mboard = ALL_MBOARDS) override { /* TODO: Refactor with get_rx_subdev_spec- the algorithms are the same, just the * types are different @@ -1762,7 +1775,7 @@ public: } } - uhd::usrp::subdev_spec_t get_tx_subdev_spec(size_t mboard = 0) + uhd::usrp::subdev_spec_t get_tx_subdev_spec(size_t mboard = 0) override { uhd::usrp::subdev_spec_t result; for (size_t tx_chan = 0; tx_chan < get_tx_num_channels(); tx_chan++) { @@ -1778,18 +1791,18 @@ public: return result; } - size_t get_tx_num_channels(void) + size_t get_tx_num_channels(void) override { return _tx_chans.size(); } - std::string get_tx_subdev_name(size_t chan = 0) + std::string get_tx_subdev_name(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_fe_name(tx_chain.block_chan, uhd::TX_DIRECTION); } - void set_tx_rate(double rate, size_t chan = ALL_CHANS) + void set_tx_rate(double rate, size_t chan = ALL_CHANS) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); MUX_TX_API_CALL(set_tx_rate, rate); @@ -1810,7 +1823,7 @@ public: _tx_rates[chan] = actual_rate; } - double get_tx_rate(size_t chan = 0) + double get_tx_rate(size_t chan = 0) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); auto& tx_chain = _get_tx_chan(chan); @@ -1820,7 +1833,7 @@ public: return tx_chain.radio->get_rate(); } - meta_range_t get_tx_rates(size_t chan = 0) + meta_range_t get_tx_rates(size_t chan = 0) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); auto tx_chain = _get_tx_chan(chan); @@ -1830,7 +1843,8 @@ public: return tx_chain.radio->get_rate_range(); } - tune_result_t set_tx_freq(const tune_request_t& tune_request, size_t chan = 0) + tune_result_t set_tx_freq( + const tune_request_t& tune_request, size_t chan = 0) override { std::lock_guard<std::recursive_mutex> l(_graph_mutex); auto tx_chain = _get_tx_chan(chan); @@ -1877,7 +1891,7 @@ public: tune_request); } - double get_tx_freq(size_t chan = 0) + double get_tx_freq(size_t chan = 0) override { auto& tx_chain = _get_tx_chan(chan); // extract actual dsp and IF frequencies @@ -1889,7 +1903,7 @@ public: return actual_rf_freq - actual_dsp_freq * TX_SIGN; } - freq_range_t get_tx_freq_range(size_t chan = 0) + freq_range_t get_tx_freq_range(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return (tx_chain.duc) @@ -1899,39 +1913,39 @@ public: : get_fe_tx_freq_range(chan); } - freq_range_t get_fe_tx_freq_range(size_t chan = 0) + freq_range_t get_fe_tx_freq_range(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_frequency_range(tx_chain.block_chan); } - void set_tx_gain(double gain, const std::string& name, size_t chan = 0) + void set_tx_gain(double gain, const std::string& name, size_t chan = 0) override { MUX_TX_API_CALL(set_tx_gain, gain, name); auto tx_chain = _get_tx_chan(chan); tx_chain.radio->set_tx_gain(gain, name, tx_chain.block_chan); } - std::vector<std::string> get_tx_gain_profile_names(const size_t chan = 0) + std::vector<std::string> get_tx_gain_profile_names(const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_gain_profile_names(tx_chain.block_chan); } - void set_tx_gain_profile(const std::string& profile, const size_t chan = 0) + void set_tx_gain_profile(const std::string& profile, const size_t chan = 0) override { MUX_TX_API_CALL(set_tx_gain_profile, profile); auto tx_chain = _get_tx_chan(chan); tx_chain.radio->set_tx_gain_profile(profile, tx_chain.block_chan); } - std::string get_tx_gain_profile(const size_t chan = 0) + std::string get_tx_gain_profile(const size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_gain_profile(tx_chain.block_chan); } - void set_normalized_tx_gain(double gain, size_t chan = 0) + void set_normalized_tx_gain(double gain, size_t chan = 0) override { if (gain > 1.0 || gain < 0.0) { throw uhd::runtime_error("Normalized gain out of range, must be in [0, 1]."); @@ -1943,13 +1957,13 @@ public: set_tx_gain(abs_gain, ALL_GAINS, chan); } - double get_tx_gain(const std::string& name, size_t chan = 0) + double get_tx_gain(const std::string& name, size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_gain(name, tx_chain.block_chan); } - double get_normalized_tx_gain(size_t chan = 0) + double get_normalized_tx_gain(size_t chan = 0) override { gain_range_t gain_range = get_tx_gain_range(ALL_GAINS, chan); const double gain_range_width = gain_range.stop() - gain_range.start(); @@ -1963,114 +1977,115 @@ public: return std::max(std::min(norm_gain, 1.0), 0.0); } - gain_range_t get_tx_gain_range(const std::string& name, size_t chan = 0) + gain_range_t get_tx_gain_range(const std::string& name, size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_gain_range(name, tx_chain.block_chan); } - std::vector<std::string> get_tx_gain_names(size_t chan = 0) + std::vector<std::string> get_tx_gain_names(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_gain_names(tx_chain.block_chan); } - bool has_tx_power_reference(const size_t chan = 0) + bool has_tx_power_reference(const size_t chan = 0) override { auto& tx_chain = _get_tx_chan(chan); return tx_chain.radio->has_rx_power_reference(tx_chain.block_chan); } - void set_tx_power_reference(const double power_dbm, const size_t chan = 0) + void set_tx_power_reference(const double power_dbm, const size_t chan = 0) override { MUX_TX_API_CALL(set_tx_power_reference, power_dbm); auto& tx_chain = _get_tx_chan(chan); tx_chain.radio->set_tx_power_reference(power_dbm, tx_chain.block_chan); } - double get_tx_power_reference(const size_t chan = 0) + double get_tx_power_reference(const size_t chan = 0) override { auto& tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_power_reference(tx_chain.block_chan); } - meta_range_t get_tx_power_range(const size_t chan) + meta_range_t get_tx_power_range(const size_t chan) override { auto& tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_power_range(tx_chain.block_chan); } - void set_tx_antenna(const std::string& ant, size_t chan = 0) + void set_tx_antenna(const std::string& ant, size_t chan = 0) override { MUX_TX_API_CALL(set_tx_antenna, ant); auto tx_chain = _get_tx_chan(chan); tx_chain.radio->set_tx_antenna(ant, tx_chain.block_chan); } - std::string get_tx_antenna(size_t chan = 0) + std::string get_tx_antenna(size_t chan = 0) override { auto& tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_antenna(tx_chain.block_chan); } - std::vector<std::string> get_tx_antennas(size_t chan = 0) + std::vector<std::string> get_tx_antennas(size_t chan = 0) override { auto& tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_antennas(tx_chain.block_chan); } - void set_tx_bandwidth(double bandwidth, size_t chan = 0) + void set_tx_bandwidth(double bandwidth, size_t chan = 0) override { MUX_TX_API_CALL(set_tx_bandwidth, bandwidth); auto tx_chain = _get_tx_chan(chan); tx_chain.radio->set_tx_bandwidth(bandwidth, tx_chain.block_chan); } - double get_tx_bandwidth(size_t chan = 0) + double get_tx_bandwidth(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_bandwidth(tx_chain.block_chan); } - meta_range_t get_tx_bandwidth_range(size_t chan = 0) + meta_range_t get_tx_bandwidth_range(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_bandwidth_range(tx_chain.block_chan); } - dboard_iface::sptr get_tx_dboard_iface(size_t chan = 0) + dboard_iface::sptr get_tx_dboard_iface(size_t chan = 0) override { auto& tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tree()->access<dboard_iface::sptr>("iface").get(); } - sensor_value_t get_tx_sensor(const std::string& name, size_t chan = 0) + sensor_value_t get_tx_sensor(const std::string& name, size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_sensor(name, tx_chain.block_chan); } - std::vector<std::string> get_tx_sensor_names(size_t chan = 0) + std::vector<std::string> get_tx_sensor_names(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_sensor_names(tx_chain.block_chan); } - void set_tx_dc_offset(const std::complex<double>& offset, size_t chan = ALL_CHANS) + void set_tx_dc_offset( + const std::complex<double>& offset, size_t chan = ALL_CHANS) override { MUX_TX_API_CALL(set_tx_dc_offset, offset); const auto tx_chain = _get_tx_chan(chan); tx_chain.radio->set_tx_dc_offset(offset, tx_chain.block_chan); } - meta_range_t get_tx_dc_offset_range(size_t chan = 0) + meta_range_t get_tx_dc_offset_range(size_t chan = 0) override { auto tx_chain = _get_tx_chan(chan); return tx_chain.radio->get_tx_dc_offset_range(tx_chain.block_chan); } void set_tx_iq_balance( - const std::complex<double>& correction, size_t chan = ALL_CHANS) + const std::complex<double>& correction, size_t chan = ALL_CHANS) override { MUX_TX_API_CALL(set_tx_iq_balance, correction); const auto tx_chain = _get_tx_chan(chan); @@ -2133,7 +2148,7 @@ public: return {radio, normalized_bank}; } - std::vector<std::string> get_gpio_banks(const size_t mboard) + std::vector<std::string> get_gpio_banks(const size_t mboard) override { auto radio_blocks = _graph->find_blocks<uhd::rfnoc::radio_control>( std::to_string(mboard) + "/Radio"); @@ -2153,7 +2168,7 @@ public: const std::string& attr, const uint32_t value, const uint32_t mask = 0xffffffff, - const size_t mboard = 0) + const size_t mboard = 0) override { auto radio_bank_pair = _get_gpio_radio_bank(bank, mboard); const uint32_t current = @@ -2162,33 +2177,34 @@ public: radio_bank_pair.first->set_gpio_attr(radio_bank_pair.second, attr, new_value); } - uint32_t get_gpio_attr( - const std::string& bank, const std::string& attr, const size_t mboard = 0) + uint32_t get_gpio_attr(const std::string& bank, + const std::string& attr, + const size_t mboard = 0) override { auto radio_bank_pair = _get_gpio_radio_bank(bank, mboard); return radio_bank_pair.first->get_gpio_attr(radio_bank_pair.second, attr); } - std::vector<std::string> get_gpio_src_banks(const size_t mboard = 0) + std::vector<std::string> get_gpio_src_banks(const size_t mboard = 0) override { return _get_mbc(mboard)->get_gpio_banks(); } std::vector<std::string> get_gpio_srcs( - const std::string& bank, const size_t mboard = 0) + const std::string& bank, const size_t mboard = 0) override { return _get_mbc(mboard)->get_gpio_srcs(bank); } std::vector<std::string> get_gpio_src( - const std::string& bank, const size_t mboard = 0) + const std::string& bank, const size_t mboard = 0) override { return _get_mbc(mboard)->get_gpio_src(bank); } void set_gpio_src(const std::string& bank, const std::vector<std::string>& src, - const size_t mboard = 0) + const size_t mboard = 0) override { _get_mbc(mboard)->set_gpio_src(bank, src); } @@ -2196,7 +2212,7 @@ public: /******************************************************************* * Filter API methods ******************************************************************/ - std::vector<std::string> get_rx_filter_names(const size_t chan) + std::vector<std::string> get_rx_filter_names(const size_t chan) override { std::vector<std::string> filter_names; // Grab the Radio's filters @@ -2238,7 +2254,8 @@ public: return filter_names; } - uhd::filter_info_base::sptr get_rx_filter(const std::string& name, const size_t chan) + uhd::filter_info_base::sptr get_rx_filter( + const std::string& name, const size_t chan) override { try { // The block_id_t constructor is pretty smart; let it handle the parsing. @@ -2276,8 +2293,9 @@ public: } } - void set_rx_filter( - const std::string& name, uhd::filter_info_base::sptr filter, const size_t chan) + void set_rx_filter(const std::string& name, + uhd::filter_info_base::sptr filter, + const size_t chan) override { MUX_RX_API_CALL(set_rx_filter, name, filter); try { @@ -2317,7 +2335,7 @@ public: } } - std::vector<std::string> get_tx_filter_names(const size_t chan) + std::vector<std::string> get_tx_filter_names(const size_t chan) override { std::vector<std::string> filter_names; // Grab the Radio's filters @@ -2359,7 +2377,8 @@ public: return filter_names; } - uhd::filter_info_base::sptr get_tx_filter(const std::string& name, const size_t chan) + uhd::filter_info_base::sptr get_tx_filter( + const std::string& name, const size_t chan) override { try { // The block_id_t constructor is pretty smart; let it handle the parsing. @@ -2397,8 +2416,9 @@ public: } } - void set_tx_filter( - const std::string& name, uhd::filter_info_base::sptr filter, const size_t chan) + void set_tx_filter(const std::string& name, + uhd::filter_info_base::sptr filter, + const size_t chan) override { MUX_TX_API_CALL(set_tx_filter, name, filter); try { @@ -2438,7 +2458,7 @@ public: } } - mb_controller& get_mb_controller(const size_t mboard) + mb_controller& get_mb_controller(const size_t mboard) override { return *_get_mbc(mboard); } diff --git a/host/lib/usrp/subdev_spec.cpp b/host/lib/usrp/subdev_spec.cpp index 0d271e832..657584e92 100644 --- a/host/lib/usrp/subdev_spec.cpp +++ b/host/lib/usrp/subdev_spec.cpp @@ -63,7 +63,7 @@ subdev_spec_t::subdev_spec_t(const std::string& markup) std::string subdev_spec_t::to_pp_string(void) const { - if (this->size() == 0) + if (this->empty()) return "Empty Subdevice Specification"; std::stringstream ss; diff --git a/host/lib/usrp/usrp1/dboard_iface.cpp b/host/lib/usrp/usrp1/dboard_iface.cpp index 8ad7a5466..7d2a44f39 100644 --- a/host/lib/usrp/usrp1/dboard_iface.cpp +++ b/host/lib/usrp/usrp1/dboard_iface.cpp @@ -81,12 +81,12 @@ public: // else _codec->bypass_adc_buffers(false); //don't think this is necessary } - ~usrp1_dboard_iface() + ~usrp1_dboard_iface() override { /* NOP */ } - special_props_t get_special_props() + special_props_t get_special_props() override { special_props_t props; props.soft_clock_divider = true; @@ -94,44 +94,44 @@ public: return props; } - void write_aux_dac(unit_t, aux_dac_t, double); - double read_aux_adc(unit_t, aux_adc_t); + void write_aux_dac(unit_t, aux_dac_t, double) override; + double read_aux_adc(unit_t, aux_adc_t) override; - void set_pin_ctrl(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_pin_ctrl(unit_t unit); + void set_pin_ctrl(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_pin_ctrl(unit_t unit) override; void set_atr_reg( - unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_atr_reg(unit_t unit, atr_reg_t reg); - void set_gpio_ddr(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_gpio_ddr(unit_t unit); - void set_gpio_out(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_gpio_out(unit_t unit); - uint32_t read_gpio(unit_t unit); + unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_atr_reg(unit_t unit, atr_reg_t reg) override; + void set_gpio_ddr(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_gpio_ddr(unit_t unit) override; + void set_gpio_out(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_gpio_out(unit_t unit) override; + uint32_t read_gpio(unit_t unit) override; void _set_pin_ctrl(unit_t, uint16_t); void _set_atr_reg(unit_t, atr_reg_t, uint16_t); void _set_gpio_ddr(unit_t, uint16_t); void _set_gpio_out(unit_t, uint16_t); - void set_command_time(const uhd::time_spec_t& t); - uhd::time_spec_t get_command_time(void); + void set_command_time(const uhd::time_spec_t& t) override; + uhd::time_spec_t get_command_time(void) override; - void write_i2c(uint16_t, const byte_vector_t&); - byte_vector_t read_i2c(uint16_t, size_t); + void write_i2c(uint16_t, const byte_vector_t&) override; + byte_vector_t read_i2c(uint16_t, size_t) override; void write_spi( - unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits); + unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits) override; uint32_t read_write_spi( - unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits); + unit_t unit, const spi_config_t& config, uint32_t data, size_t num_bits) override; - void set_clock_rate(unit_t, double); - std::vector<double> get_clock_rates(unit_t); - double get_clock_rate(unit_t); - void set_clock_enabled(unit_t, bool); - double get_codec_rate(unit_t); + void set_clock_rate(unit_t, double) override; + std::vector<double> get_clock_rates(unit_t) override; + double get_clock_rate(unit_t) override; + void set_clock_enabled(unit_t, bool) override; + double get_codec_rate(unit_t) override; void set_fe_connection( - unit_t unit, const std::string&, const fe_connection_t& fe_conn); + unit_t unit, const std::string&, const fe_connection_t& fe_conn) override; private: usrp1_iface::sptr _iface; diff --git a/host/lib/usrp/usrp1/io_impl.cpp b/host/lib/usrp/usrp1/io_impl.cpp index 4788c3d9e..b93cfa094 100644 --- a/host/lib/usrp/usrp1/io_impl.cpp +++ b/host/lib/usrp/usrp1/io_impl.cpp @@ -86,7 +86,7 @@ public: /* NOP */ } - void release(void) + void release(void) override { this->_commit_cb(_curr_buff, _next_buff, size()); } @@ -337,12 +337,12 @@ public: _stc = stc; } - size_t get_num_channels(void) const + size_t get_num_channels(void) const override { return this->size(); } - size_t get_max_num_samps(void) const + size_t get_max_num_samps(void) const override { return _max_num_samps; } @@ -351,7 +351,7 @@ public: const size_t nsamps_per_buff, uhd::rx_metadata_t& metadata, const double timeout, - const bool one_packet) + const bool one_packet) override { // interleave a "soft" inline message into the receive stream: if (_stc->get_inline_queue().pop_with_haste(metadata)) @@ -363,7 +363,7 @@ public: return _stc->recv_post(metadata, num_samps_recvd); } - void issue_stream_cmd(const stream_cmd_t& stream_cmd) + void issue_stream_cmd(const stream_cmd_t& stream_cmd) override { _stc->issue_stream_cmd(stream_cmd); } @@ -389,12 +389,12 @@ public: _tx_enb_fcn = tx_enb_fcn; } - size_t get_num_channels(void) const + size_t get_num_channels(void) const override { return this->size(); } - size_t get_max_num_samps(void) const + size_t get_max_num_samps(void) const override { return _max_num_samps; } @@ -402,7 +402,7 @@ public: size_t send(const tx_streamer::buffs_type& buffs, const size_t nsamps_per_buff, const uhd::tx_metadata_t& metadata, - const double timeout_) + const double timeout_) override { double timeout = timeout_; // rw copy _stc->send_pre(metadata, timeout); @@ -426,7 +426,7 @@ public: return num_samps_sent; } - bool recv_async_msg(async_metadata_t& async_metadata, double timeout = 0.1) + bool recv_async_msg(async_metadata_t& async_metadata, double timeout = 0.1) override { return _stc->get_async_queue().pop_with_timed_wait(async_metadata, timeout); } diff --git a/host/lib/usrp/usrp1/soft_time_ctrl.cpp b/host/lib/usrp/usrp1/soft_time_ctrl.cpp index 42a1e9712..1c3015480 100644 --- a/host/lib/usrp/usrp1/soft_time_ctrl.cpp +++ b/host/lib/usrp/usrp1/soft_time_ctrl.cpp @@ -50,13 +50,13 @@ public: /******************************************************************* * Time control ******************************************************************/ - void set_time(const time_spec_t& time) + void set_time(const time_spec_t& time) override { boost::mutex::scoped_lock lock(_update_mutex); _time_offset = uhd::get_system_time() - time; } - time_spec_t get_time(void) + time_spec_t get_time(void) override { boost::mutex::scoped_lock lock(_update_mutex); return time_now(); @@ -80,7 +80,7 @@ public: /******************************************************************* * Receive control ******************************************************************/ - size_t recv_post(rx_metadata_t& md, const size_t nsamps) + size_t recv_post(rx_metadata_t& md, const size_t nsamps) override { boost::mutex::scoped_lock lock(_update_mutex); @@ -125,7 +125,7 @@ public: return nsamps; } - void issue_stream_cmd(const stream_cmd_t& cmd) + void issue_stream_cmd(const stream_cmd_t& cmd) override { _cmd_queue.push_with_wait(std::make_shared<stream_cmd_t>(cmd)); } @@ -139,7 +139,7 @@ public: /******************************************************************* * Transmit control ******************************************************************/ - void send_pre(const tx_metadata_t& md, double& timeout) + void send_pre(const tx_metadata_t& md, double& timeout) override { if (not md.has_time_spec) return; @@ -211,17 +211,17 @@ public: } } - bounded_buffer<async_metadata_t>& get_async_queue(void) + bounded_buffer<async_metadata_t>& get_async_queue(void) override { return _async_msg_queue; } - bounded_buffer<rx_metadata_t>& get_inline_queue(void) + bounded_buffer<rx_metadata_t>& get_inline_queue(void) override { return _inline_msg_queue; } - void stop(void) + void stop(void) override { _recv_cmd_task.reset(); } diff --git a/host/lib/usrp/usrp1/usrp1_iface.cpp b/host/lib/usrp/usrp1/usrp1_iface.cpp index 574dec51c..bcd416769 100644 --- a/host/lib/usrp/usrp1/usrp1_iface.cpp +++ b/host/lib/usrp/usrp1/usrp1_iface.cpp @@ -28,7 +28,7 @@ public: _ctrl_transport = ctrl_transport; } - ~usrp1_iface_impl(void) + ~usrp1_iface_impl(void) override { /* NOP */ } @@ -36,7 +36,7 @@ public: /******************************************************************* * Peek and Poke ******************************************************************/ - void poke32(const uint32_t addr, const uint32_t value) + void poke32(const uint32_t addr, const uint32_t value) override { uint32_t swapped = uhd::htonx(value); @@ -56,7 +56,7 @@ public: throw uhd::io_error("USRP1: failed control write"); } - uint32_t peek32(const uint32_t addr) + uint32_t peek32(const uint32_t addr) override { UHD_LOGGER_TRACE("USRP1") << "peek32(" << std::dec << std::setw(2) << addr << ")"; @@ -77,12 +77,12 @@ public: return uhd::ntohx(value_out); } - void poke16(const uint32_t, const uint16_t) + void poke16(const uint32_t, const uint16_t) override { throw uhd::not_implemented_error("Unhandled command poke16()"); } - uint16_t peek16(const uint32_t) + uint16_t peek16(const uint32_t) override { throw uhd::not_implemented_error("Unhandled command peek16()"); return 0; @@ -91,12 +91,12 @@ public: /******************************************************************* * I2C ******************************************************************/ - void write_i2c(uint16_t addr, const byte_vector_t& bytes) + void write_i2c(uint16_t addr, const byte_vector_t& bytes) override { return _ctrl_transport->write_i2c(addr, bytes); } - byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) + byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) override { return _ctrl_transport->read_i2c(addr, num_bytes); } @@ -116,7 +116,7 @@ public: const spi_config_t&, uint32_t bits, size_t num_bits, - bool readback) + bool readback) override { UHD_LOGGER_TRACE("USRP1") << "transact_spi: " diff --git a/host/lib/usrp/usrp1/usrp1_impl.cpp b/host/lib/usrp/usrp1/usrp1_impl.cpp index d86bf6d56..6ed1a6a69 100644 --- a/host/lib/usrp/usrp1/usrp1_impl.cpp +++ b/host/lib/usrp/usrp1/usrp1_impl.cpp @@ -439,9 +439,9 @@ usrp1_impl::usrp1_impl(const device_addr_t& device_addr) _tree->access<double>(mb_path / "rx_dsps" / name / "freq" / "value").set(0.0); } - if (_tree->list(mb_path / "rx_dsps").size() > 0) + if (!_tree->list(mb_path / "rx_dsps").empty()) _tree->access<subdev_spec_t>(mb_path / "rx_subdev_spec").set(_rx_subdev_spec); - if (_tree->list(mb_path / "tx_dsps").size() > 0) + if (!_tree->list(mb_path / "tx_dsps").empty()) _tree->access<subdev_spec_t>(mb_path / "tx_subdev_spec").set(_tx_subdev_spec); _tree->create<double>(mb_path / "link_max_rate").set(USRP1_MAX_RATE_USB2); } diff --git a/host/lib/usrp/usrp1/usrp1_impl.hpp b/host/lib/usrp/usrp1/usrp1_impl.hpp index 336b82baa..a7f205c4a 100644 --- a/host/lib/usrp/usrp1/usrp1_impl.hpp +++ b/host/lib/usrp/usrp1/usrp1_impl.hpp @@ -63,12 +63,12 @@ public: // structors usrp1_impl(const uhd::device_addr_t&); - ~usrp1_impl(void); + ~usrp1_impl(void) override; // the io interface - uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args); - uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args); - bool recv_async_msg(uhd::async_metadata_t&, double); + uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args) override; + uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args) override; + bool recv_async_msg(uhd::async_metadata_t&, double) override; static uhd::usrp::mboard_eeprom_t get_mb_eeprom(uhd::i2c_iface::sptr); diff --git a/host/lib/usrp/usrp2/n200_image_loader.cpp b/host/lib/usrp/usrp2/n200_image_loader.cpp index 55b441c8b..9080a6dee 100644 --- a/host/lib/usrp/usrp2/n200_image_loader.cpp +++ b/host/lib/usrp/usrp2/n200_image_loader.cpp @@ -154,15 +154,15 @@ static void print_usrp2_error(const image_loader::image_loader_args_t& image_loa if (image_loader_args.load_firmware) { usrp2_card_burner_gui += str(boost::format("%s--fw=\"%s\"") % nl - % ((image_loader_args.firmware_path == "") - ? find_image_path("usrp2_fw.bin") - : image_loader_args.firmware_path)); + % ((image_loader_args.firmware_path.empty()) + ? find_image_path("usrp2_fw.bin") + : image_loader_args.firmware_path)); } if (image_loader_args.load_fpga) { - usrp2_card_burner_gui += - str(boost::format("%s--fpga=\"%s\"") % nl - % ((image_loader_args.fpga_path == "") ? find_image_path("usrp2_fpga.bin") - : image_loader_args.fpga_path)); + usrp2_card_burner_gui += str( + boost::format("%s--fpga=\"%s\"") % nl + % ((image_loader_args.fpga_path.empty()) ? find_image_path("usrp2_fpga.bin") + : image_loader_args.fpga_path)); } throw uhd::runtime_error(str( @@ -204,7 +204,7 @@ static uhd::device_addr_t n200_find( uhd::device_addrs_t found = usrp2_find(image_loader_args.args); - if (found.size() > 0) { + if (!found.empty()) { uhd::device_addrs_t n200_found; udp_simple::sptr rev_xport; n200_fw_update_data_t pkt_out; @@ -355,8 +355,8 @@ static void n200_setup_session(n200_session_t& session, * EEPROM or is otherwise unable to provide its revision, this is * impossible, and the user must manually provide a firmware file. */ - if ((session.fw and image_loader_args.firmware_path == "") - or image_loader_args.fpga_path == "") { + if ((session.fw and image_loader_args.firmware_path.empty()) + or image_loader_args.fpga_path.empty()) { if (session.dev_addr["hw_rev"] == "n2xx") { throw uhd::runtime_error("This device's revision cannot be determined. " "You must manually specify a filepath."); diff --git a/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp b/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp index ca3a79ca5..116051216 100644 --- a/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp +++ b/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp @@ -45,7 +45,7 @@ public: this->init_spi(); } - ~usrp2_fifo_ctrl_impl(void) + ~usrp2_fifo_ctrl_impl(void) override { _timeout = ACK_TIMEOUT; // reset timeout to something small UHD_SAFE_CALL( @@ -56,7 +56,7 @@ public: /******************************************************************* * Peek and poke 32 bit implementation ******************************************************************/ - void poke32(const wb_addr_type addr, const uint32_t data) + void poke32(const wb_addr_type addr, const uint32_t data) override { boost::mutex::scoped_lock lock(_mutex); @@ -65,7 +65,7 @@ public: this->wait_for_ack(_seq_out - MAX_SEQS_OUT); } - uint32_t peek32(const wb_addr_type addr) + uint32_t peek32(const wb_addr_type addr) override { boost::mutex::scoped_lock lock(_mutex); @@ -77,12 +77,12 @@ public: /******************************************************************* * Peek and poke 16 bit not implemented ******************************************************************/ - void poke16(const wb_addr_type, const uint16_t) + void poke16(const wb_addr_type, const uint16_t) override { throw uhd::not_implemented_error("poke16 not implemented in fifo ctrl module"); } - uint16_t peek16(const wb_addr_type) + uint16_t peek16(const wb_addr_type) override { throw uhd::not_implemented_error("peek16 not implemented in fifo ctrl module"); } @@ -104,7 +104,7 @@ public: const spi_config_t& config, uint32_t data, size_t num_bits, - bool readback) + bool readback) override { boost::mutex::scoped_lock lock(_mutex); @@ -143,7 +143,7 @@ public: /******************************************************************* * Update methods for time ******************************************************************/ - void set_time(const uhd::time_spec_t& time) + void set_time(const uhd::time_spec_t& time) override { boost::mutex::scoped_lock lock(_mutex); _time = time; @@ -152,13 +152,13 @@ public: _timeout = MASSIVE_TIMEOUT; // permanently sets larger timeout } - uhd::time_spec_t get_time() + uhd::time_spec_t get_time() override { boost::mutex::scoped_lock lock(_mutex); return _time; } - void set_tick_rate(const double rate) + void set_tick_rate(const double rate) override { boost::mutex::scoped_lock lock(_mutex); _tick_rate = rate; diff --git a/host/lib/usrp/usrp2/usrp2_iface.cpp b/host/lib/usrp/usrp2/usrp2_iface.cpp index 029d2b30a..23104d18f 100644 --- a/host/lib/usrp/usrp2/usrp2_iface.cpp +++ b/host/lib/usrp/usrp2/usrp2_iface.cpp @@ -76,7 +76,7 @@ public: mb_eeprom = usrp2_impl::get_mb_eeprom(*this); } - ~usrp2_iface_impl(void) + ~usrp2_iface_impl(void) override { UHD_SAFE_CALL(this->lock_device(false);) } @@ -85,7 +85,7 @@ public: * Device locking **********************************************************************/ - void lock_device(bool lock) + void lock_device(bool lock) override { if (lock) { this->pokefw(U2_FW_REG_LOCK_GPID, get_process_hash()); @@ -96,7 +96,7 @@ public: } } - bool is_device_locked(void) + bool is_device_locked(void) override { // never assume lock with fpga image mismatch if ((this->peek32(U2_REG_COMPAT_NUM_RB) >> 16) != USRP2_FPGA_COMPAT_NUM) @@ -135,32 +135,32 @@ public: /*********************************************************************** * Peek and Poke **********************************************************************/ - void poke32(const wb_addr_type addr, const uint32_t data) + void poke32(const wb_addr_type addr, const uint32_t data) override { this->get_reg<uint32_t, USRP2_REG_ACTION_FPGA_POKE32>(addr, data); } - uint32_t peek32(const wb_addr_type addr) + uint32_t peek32(const wb_addr_type addr) override { return this->get_reg<uint32_t, USRP2_REG_ACTION_FPGA_PEEK32>(addr); } - void poke16(const wb_addr_type addr, const uint16_t data) + void poke16(const wb_addr_type addr, const uint16_t data) override { this->get_reg<uint16_t, USRP2_REG_ACTION_FPGA_POKE16>(addr, data); } - uint16_t peek16(const wb_addr_type addr) + uint16_t peek16(const wb_addr_type addr) override { return this->get_reg<uint16_t, USRP2_REG_ACTION_FPGA_PEEK16>(addr); } - void pokefw(wb_addr_type addr, uint32_t data) + void pokefw(wb_addr_type addr, uint32_t data) override { this->get_reg<uint32_t, USRP2_REG_ACTION_FW_POKE32>(addr, data); } - uint32_t peekfw(wb_addr_type addr) + uint32_t peekfw(wb_addr_type addr) override { return this->get_reg<uint32_t, USRP2_REG_ACTION_FW_PEEK32>(addr); } @@ -189,7 +189,7 @@ public: const spi_config_t& config, uint32_t data, size_t num_bits, - bool readback) + bool readback) override { static const uhd::dict<spi_config_t::edge_t, int> spi_edge_to_otw = boost::assign::map_list_of(spi_config_t::EDGE_RISE, USRP2_CLK_EDGE_RISE)( @@ -216,7 +216,7 @@ public: /*********************************************************************** * I2C **********************************************************************/ - void write_i2c(uint16_t addr, const byte_vector_t& buf) + void write_i2c(uint16_t addr, const byte_vector_t& buf) override { // setup the out data usrp2_ctrl_data_t out_data = usrp2_ctrl_data_t(); @@ -236,7 +236,7 @@ public: UHD_ASSERT_THROW(ntohl(in_data.id) == USRP2_CTRL_ID_COOL_IM_DONE_I2C_WRITE_DUDE); } - byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) + byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) override { // setup the out data usrp2_ctrl_data_t out_data = usrp2_ctrl_data_t(); @@ -324,7 +324,7 @@ public: throw timeout_error("no control response, possible packet loss"); } - rev_type get_rev(void) + rev_type get_rev(void) override { std::string hw = mb_eeprom["hardware"]; if (hw.empty()) @@ -347,7 +347,7 @@ public: return USRP_NXXX; // unknown type } - const std::string get_cname(void) + const std::string get_cname(void) override { switch (this->get_rev()) { case USRP2_REV3: @@ -368,14 +368,14 @@ public: UHD_THROW_INVALID_CODE_PATH(); } - const std::string get_fw_version_string(void) + const std::string get_fw_version_string(void) override { uint32_t minor = this->get_reg<uint32_t, USRP2_REG_ACTION_FW_PEEK32>(U2_FW_REG_VER_MINOR); return str(boost::format("%u.%u") % _protocol_compat % minor); } - std::string images_warn_help_message(void) + std::string images_warn_help_message(void) override { // determine the images names std::string fw_image, fpga_image; @@ -457,12 +457,12 @@ public: } } - void set_time(const time_spec_t&) + void set_time(const time_spec_t&) override { throw uhd::not_implemented_error("Timed commands not supported"); } - time_spec_t get_time(void) + time_spec_t get_time(void) override { return (0.0); } diff --git a/host/lib/usrp/usrp2/usrp2_impl.hpp b/host/lib/usrp/usrp2/usrp2_impl.hpp index 792c38a11..14e6ed993 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.hpp +++ b/host/lib/usrp/usrp2/usrp2_impl.hpp @@ -61,12 +61,12 @@ class usrp2_impl : public uhd::device { public: usrp2_impl(const uhd::device_addr_t&); - ~usrp2_impl(void); + ~usrp2_impl(void) override; // the io interface - uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args); - uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args); - bool recv_async_msg(uhd::async_metadata_t&, double); + uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t& args) override; + uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t& args) override; + bool recv_async_msg(uhd::async_metadata_t&, double) override; static uhd::usrp::mboard_eeprom_t get_mb_eeprom(usrp2_iface&); diff --git a/host/lib/usrp/x300/x300_dac_ctrl.cpp b/host/lib/usrp/x300/x300_dac_ctrl.cpp index 3a3dc7389..1254e035e 100644 --- a/host/lib/usrp/x300/x300_dac_ctrl.cpp +++ b/host/lib/usrp/x300/x300_dac_ctrl.cpp @@ -48,7 +48,7 @@ public: reset(); } - ~x300_dac_ctrl_impl(void) + ~x300_dac_ctrl_impl(void) override { UHD_SAFE_CALL( // Power down all DAC subsystems @@ -59,7 +59,7 @@ public: ) } - void reset() + void reset() override { // ADI recommendations: //- soft reset the chip before configuration @@ -75,7 +75,7 @@ public: _sleep_mode(false); } - void sync() + void sync() override { try { // Just return if PLL is locked and backend is synchronized @@ -102,7 +102,7 @@ public: throw uhd::runtime_error(err_str); } - void verify_sync() + void verify_sync() override { _check_pll(); _check_dac_sync(); diff --git a/host/lib/usrp/x300/x300_dboard_iface.hpp b/host/lib/usrp/x300/x300_dboard_iface.hpp index 713c90748..607fe10dc 100644 --- a/host/lib/usrp/x300/x300_dboard_iface.hpp +++ b/host/lib/usrp/x300/x300_dboard_iface.hpp @@ -36,9 +36,9 @@ class x300_dboard_iface : public uhd::usrp::dboard_iface { public: x300_dboard_iface(const x300_dboard_iface_config_t& config); - ~x300_dboard_iface(void); + ~x300_dboard_iface(void) override; - inline special_props_t get_special_props(void) + inline special_props_t get_special_props(void) override { special_props_t props; props.soft_clock_divider = false; @@ -46,39 +46,44 @@ public: return props; } - void write_aux_dac(unit_t, aux_dac_t, double); - double read_aux_adc(unit_t, aux_adc_t); + void write_aux_dac(unit_t, aux_dac_t, double) override; + double read_aux_adc(unit_t, aux_adc_t) override; - void set_pin_ctrl(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_pin_ctrl(unit_t unit); + void set_pin_ctrl(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_pin_ctrl(unit_t unit) override; void set_atr_reg( - unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_atr_reg(unit_t unit, atr_reg_t reg); - void set_gpio_ddr(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_gpio_ddr(unit_t unit); - void set_gpio_out(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff); - uint32_t get_gpio_out(unit_t unit); - uint32_t read_gpio(unit_t unit); - - void set_command_time(const uhd::time_spec_t& t); - uhd::time_spec_t get_command_time(void); - - void write_i2c(uint16_t, const uhd::byte_vector_t&); - uhd::byte_vector_t read_i2c(uint16_t, size_t); - - void set_clock_rate(unit_t, double); - double get_clock_rate(unit_t); - std::vector<double> get_clock_rates(unit_t); - void set_clock_enabled(unit_t, bool); - double get_codec_rate(unit_t); - - void write_spi( - unit_t unit, const uhd::spi_config_t& config, uint32_t data, size_t num_bits); - - uint32_t read_write_spi( - unit_t unit, const uhd::spi_config_t& config, uint32_t data, size_t num_bits); - void set_fe_connection( - unit_t unit, const std::string& name, const uhd::usrp::fe_connection_t& fe_conn); + unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_atr_reg(unit_t unit, atr_reg_t reg) override; + void set_gpio_ddr(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_gpio_ddr(unit_t unit) override; + void set_gpio_out(unit_t unit, uint32_t value, uint32_t mask = 0xffffffff) override; + uint32_t get_gpio_out(unit_t unit) override; + uint32_t read_gpio(unit_t unit) override; + + void set_command_time(const uhd::time_spec_t& t) override; + uhd::time_spec_t get_command_time(void) override; + + void write_i2c(uint16_t, const uhd::byte_vector_t&) override; + uhd::byte_vector_t read_i2c(uint16_t, size_t) override; + + void set_clock_rate(unit_t, double) override; + double get_clock_rate(unit_t) override; + std::vector<double> get_clock_rates(unit_t) override; + void set_clock_enabled(unit_t, bool) override; + double get_codec_rate(unit_t) override; + + void write_spi(unit_t unit, + const uhd::spi_config_t& config, + uint32_t data, + size_t num_bits) override; + + uint32_t read_write_spi(unit_t unit, + const uhd::spi_config_t& config, + uint32_t data, + size_t num_bits) override; + void set_fe_connection(unit_t unit, + const std::string& name, + const uhd::usrp::fe_connection_t& fe_conn) override; // X300 can set the FE connection on the RX side bool has_set_fe_connection(const unit_t unit) override diff --git a/host/lib/usrp/x300/x300_device_args.hpp b/host/lib/usrp/x300/x300_device_args.hpp index 7e17c36ce..3a620f7de 100644 --- a/host/lib/usrp/x300/x300_device_args.hpp +++ b/host/lib/usrp/x300/x300_device_args.hpp @@ -146,7 +146,7 @@ public: return _orig_args; } - inline virtual std::string to_string() const + inline std::string to_string() const override { // We leave out blank_eeprom for safety reasons return (!_first_addr.get().empty() ? (_first_addr.to_string() + ", ") : "") @@ -185,7 +185,7 @@ public: } private: - virtual void _parse(const device_addr_t& dev_args) + void _parse(const device_addr_t& dev_args) override { _orig_args = dev_args; // Extract parameters from dev_args diff --git a/host/lib/usrp/x300/x300_eth_mgr.cpp b/host/lib/usrp/x300/x300_eth_mgr.cpp index 8cdba38cc..d7b8b15c4 100644 --- a/host/lib/usrp/x300/x300_eth_mgr.cpp +++ b/host/lib/usrp/x300/x300_eth_mgr.cpp @@ -555,7 +555,7 @@ void eth_manager::discover_eth( } } - if (eth_conns.size() == 0) { + if (eth_conns.empty()) { throw uhd::assertion_error( "X300 Initialization Error: No valid Ethernet interfaces specified."); } diff --git a/host/lib/usrp/x300/x300_eth_mgr.hpp b/host/lib/usrp/x300/x300_eth_mgr.hpp index 19b6064dd..ee1d1d726 100644 --- a/host/lib/usrp/x300/x300_eth_mgr.hpp +++ b/host/lib/usrp/x300/x300_eth_mgr.hpp @@ -39,12 +39,12 @@ public: /*! Return a reference to a ZPU ctrl interface object */ - uhd::wb_iface::sptr get_ctrl_iface(); + uhd::wb_iface::sptr get_ctrl_iface() override; void init_link( const mboard_eeprom_t& mb_eeprom, const std::string& loaded_fpga_image); - size_t get_mtu(uhd::direction_t dir); + size_t get_mtu(uhd::direction_t dir) override; /*! Safely release a ZPU control object * @@ -57,7 +57,7 @@ public: * * Note: this will only be valid after init_link() is called. */ - std::vector<uhd::rfnoc::device_id_t> get_local_device_ids() + std::vector<uhd::rfnoc::device_id_t> get_local_device_ids() override { return _local_device_ids; } @@ -66,7 +66,7 @@ public: const uhd::rfnoc::device_id_t local_device_id, const uhd::rfnoc::sep_id_t& local_epid, const uhd::rfnoc::sep_id_t& remote_epid, - const uhd::device_addr_t& link_args); + const uhd::device_addr_t& link_args) override; private: //! Function to create a udp_simple::sptr (kernel-based or DPDK-based) diff --git a/host/lib/usrp/x300/x300_fw_ctrl.cpp b/host/lib/usrp/x300/x300_fw_ctrl.cpp index cbe48bfe8..9cbad7576 100644 --- a/host/lib/usrp/x300/x300_fw_ctrl.cpp +++ b/host/lib/usrp/x300/x300_fw_ctrl.cpp @@ -39,7 +39,7 @@ public: __flush(); } - void poke32(const wb_addr_type addr, const uint32_t data) + void poke32(const wb_addr_type addr, const uint32_t data) override { for (size_t i = 1; i <= num_retries; i++) { boost::mutex::scoped_lock lock(reg_access); @@ -57,7 +57,7 @@ public: } } - uint32_t peek32(const wb_addr_type addr) + uint32_t peek32(const wb_addr_type addr) override { for (size_t i = 1; i <= num_retries; i++) { boost::mutex::scoped_lock lock(reg_access); @@ -105,7 +105,7 @@ public: } protected: - virtual void __poke32(const wb_addr_type addr, const uint32_t data) + void __poke32(const wb_addr_type addr, const uint32_t data) override { // load request struct x300_fw_comms_t request = x300_fw_comms_t(); @@ -136,7 +136,7 @@ protected: UHD_ASSERT_THROW(reply.data == request.data); } - virtual uint32_t __peek32(const wb_addr_type addr) + uint32_t __peek32(const wb_addr_type addr) override { // load request struct x300_fw_comms_t request = x300_fw_comms_t(); @@ -169,14 +169,14 @@ protected: return uhd::ntohx<uint32_t>(reply.data); } - virtual void __flush(void) + void __flush(void) override { char buff[X300_FW_COMMS_MTU] = {}; while (udp->recv(boost::asio::buffer(buff), 0.0)) { } // flush } - virtual std::string __loc_info(void) + std::string __loc_info(void) override { return udp->get_send_addr(); } @@ -233,7 +233,7 @@ public: } protected: - virtual void __poke32(const wb_addr_type addr, const uint32_t data) + void __poke32(const wb_addr_type addr, const uint32_t data) override { nirio_status status = 0; uint32_t reg_data = 0xffffffff; @@ -261,7 +261,7 @@ protected: throw uhd::io_error("x300 fw poke32 - operation timed out"); } - virtual uint32_t __peek32(const wb_addr_type addr) + uint32_t __peek32(const wb_addr_type addr) override { nirio_status status = 0; uint32_t reg_data = 0xffffffff; @@ -293,12 +293,12 @@ protected: return reg_data; } - virtual void __flush(void) + void __flush(void) override { __peek32(0); } - virtual std::string __loc_info(void) + std::string __loc_info(void) override { return std::to_string(_drv_proxy->get_interface_num()); } diff --git a/host/lib/usrp/x300/x300_fw_uart.cpp b/host/lib/usrp/x300/x300_fw_uart.cpp index 0dde87da5..1bfc2a2e4 100644 --- a/host/lib/usrp/x300/x300_fw_uart.cpp +++ b/host/lib/usrp/x300/x300_fw_uart.cpp @@ -50,7 +50,7 @@ struct x300_uart_iface : uart_iface } } - void write_uart(const std::string& buff) + void write_uart(const std::string& buff) override { boost::mutex::scoped_lock lock(_write_mutex); for (const char ch : buff) { @@ -118,7 +118,7 @@ struct x300_uart_iface : uart_iface } } - std::string read_uart(double timeout) + std::string read_uart(double timeout) override { boost::mutex::scoped_lock lock(_read_mutex); const auto exit_time = std::chrono::steady_clock::now() diff --git a/host/lib/usrp/x300/x300_image_loader.cpp b/host/lib/usrp/x300/x300_image_loader.cpp index 474aed4cb..f18af02b7 100644 --- a/host/lib/usrp/x300/x300_image_loader.cpp +++ b/host/lib/usrp/x300/x300_image_loader.cpp @@ -180,7 +180,7 @@ static void x300_setup_session(x300_session_t& session, const std::string& outpath) { device_addrs_t devs = x300_find(args); - if (devs.size() == 0) { + if (devs.empty()) { session.found = false; return; } else if (devs.size() > 1) { @@ -224,8 +224,8 @@ static void x300_setup_session(x300_session_t& session, * If this cannot be determined, then the user is forced to specify a filename. */ session.fpga_type = args.get("fpga", session.dev_addr.get("fpga", "")); - if (filepath == "") { - if (!session.dev_addr.has_key("product") or session.fpga_type == "") { + if (filepath.empty()) { + if (!session.dev_addr.has_key("product") or session.fpga_type.empty()) { throw uhd::runtime_error( "Found a device but could not auto-generate an image filename."); } else { @@ -243,8 +243,8 @@ static void x300_setup_session(x300_session_t& session, * The user can specify an output image path, or UHD will use the * system temporary path by default */ - if (outpath == "") { - if (!session.dev_addr.has_key("product") or session.fpga_type == "") { + if (outpath.empty()) { + if (!session.dev_addr.has_key("product") or session.fpga_type.empty()) { throw uhd::runtime_error( "Found a device but could not auto-generate an image filename."); } @@ -598,7 +598,7 @@ static bool x300_image_loader(const image_loader::image_loader_args_t& image_loa // See if any X3x0 with the given args is found device_addrs_t devs = x300_find(image_loader_args.args); - if (devs.size() == 0) + if (devs.empty()) return false; x300_session_t session; diff --git a/host/lib/usrp/x300/x300_impl.hpp b/host/lib/usrp/x300/x300_impl.hpp index c506fcf28..218582653 100644 --- a/host/lib/usrp/x300/x300_impl.hpp +++ b/host/lib/usrp/x300/x300_impl.hpp @@ -45,12 +45,12 @@ class x300_impl : public uhd::rfnoc::detail::rfnoc_device public: x300_impl(const uhd::device_addr_t&); void setup_mb(const size_t which, const uhd::device_addr_t&); - ~x300_impl(void); + ~x300_impl(void) override; /************************************************************************** * rfnoc_device API *************************************************************************/ - virtual uhd::rfnoc::mb_iface& get_mb_iface(const size_t mb_idx) + uhd::rfnoc::mb_iface& get_mb_iface(const size_t mb_idx) override { if (mb_idx >= _mb_ifaces.size()) { throw uhd::index_error( @@ -101,19 +101,21 @@ private: x300_mb_iface(uhd::usrp::x300::conn_manager::sptr conn_mgr, const double radio_clk_freq, const uhd::rfnoc::device_id_t remote_dev_id); - ~x300_mb_iface(); - uint16_t get_proto_ver(); - uhd::rfnoc::chdr_w_t get_chdr_w(); - uhd::endianness_t get_endianness(const uhd::rfnoc::device_id_t local_device_id); - uhd::rfnoc::device_id_t get_remote_device_id(); - std::vector<uhd::rfnoc::device_id_t> get_local_device_ids(); + ~x300_mb_iface() override; + uint16_t get_proto_ver() override; + uhd::rfnoc::chdr_w_t get_chdr_w() override; + uhd::endianness_t get_endianness( + const uhd::rfnoc::device_id_t local_device_id) override; + uhd::rfnoc::device_id_t get_remote_device_id() override; + std::vector<uhd::rfnoc::device_id_t> get_local_device_ids() override; uhd::transport::adapter_id_t get_adapter_id( - const uhd::rfnoc::device_id_t local_device_id); - void reset_network(); - uhd::rfnoc::clock_iface::sptr get_clock_iface(const std::string& clock_name); + const uhd::rfnoc::device_id_t local_device_id) override; + void reset_network() override; + uhd::rfnoc::clock_iface::sptr get_clock_iface( + const std::string& clock_name) override; uhd::rfnoc::chdr_ctrl_xport::sptr make_ctrl_transport( uhd::rfnoc::device_id_t local_device_id, - const uhd::rfnoc::sep_id_t& local_epid); + const uhd::rfnoc::sep_id_t& local_epid) override; uhd::rfnoc::chdr_rx_data_xport::uptr make_rx_data_transport( uhd::rfnoc::mgmt::mgmt_portal& mgmt_portal, const uhd::rfnoc::sep_addr_pair_t& addrs, @@ -121,7 +123,7 @@ private: const uhd::rfnoc::sw_buff_t pyld_buff_fmt, const uhd::rfnoc::sw_buff_t mdata_buff_fmt, const uhd::device_addr_t& xport_args, - const std::string& streamer_id); + const std::string& streamer_id) override; uhd::rfnoc::chdr_tx_data_xport::uptr make_tx_data_transport( uhd::rfnoc::mgmt::mgmt_portal& mgmt_portal, const uhd::rfnoc::sep_addr_pair_t& addrs, @@ -129,7 +131,7 @@ private: const uhd::rfnoc::sw_buff_t pyld_buff_fmt, const uhd::rfnoc::sw_buff_t mdata_buff_fmt, const uhd::device_addr_t& xport_args, - const std::string& streamer_id); + const std::string& streamer_id) override; private: const uhd::rfnoc::device_id_t _remote_dev_id; diff --git a/host/lib/usrp/x300/x300_mb_controller.hpp b/host/lib/usrp/x300/x300_mb_controller.hpp index f33d629c7..6cfa3f525 100644 --- a/host/lib/usrp/x300/x300_mb_controller.hpp +++ b/host/lib/usrp/x300/x300_mb_controller.hpp @@ -42,7 +42,7 @@ public: uhd::usrp::mboard_eeprom_t mb_eeprom, uhd::usrp::x300::x300_device_args_t args); - ~x300_mb_controller(); + ~x300_mb_controller() override; /************************************************************************** * X300-Specific APIs @@ -95,11 +95,11 @@ public: { set_tick_rate(tick_rate); } - uint64_t get_ticks_now(); - uint64_t get_ticks_last_pps(); - void set_ticks_now(const uint64_t ticks); - void set_ticks_next_pps(const uint64_t ticks); - void set_period(const uint64_t period_ns); + uint64_t get_ticks_now() override; + uint64_t get_ticks_last_pps() override; + void set_ticks_now(const uint64_t ticks) override; + void set_ticks_next_pps(const uint64_t ticks) override; + void set_period(const uint64_t period_ns) override; private: uint32_t get_tk_addr(const uint32_t tk_addr); @@ -110,30 +110,31 @@ public: /************************************************************************** * Motherboard Control API (see mb_controller.hpp) *************************************************************************/ - void init(); - std::string get_mboard_name() const; - void set_time_source(const std::string& source); - std::string get_time_source() const; - std::vector<std::string> get_time_sources() const; - void set_clock_source(const std::string& source); - std::string get_clock_source() const; - std::vector<std::string> get_clock_sources() const; - void set_sync_source(const std::string& clock_source, const std::string& time_source); - void set_sync_source(const device_addr_t& sync_source); - device_addr_t get_sync_source() const; - std::vector<device_addr_t> get_sync_sources(); - void set_clock_source_out(const bool enb); - void set_time_source_out(const bool enb); - sensor_value_t get_sensor(const std::string& name); - std::vector<std::string> get_sensor_names(); - uhd::usrp::mboard_eeprom_t get_eeprom(); + void init() override; + std::string get_mboard_name() const override; + void set_time_source(const std::string& source) override; + std::string get_time_source() const override; + std::vector<std::string> get_time_sources() const override; + void set_clock_source(const std::string& source) override; + std::string get_clock_source() const override; + std::vector<std::string> get_clock_sources() const override; + void set_sync_source( + const std::string& clock_source, const std::string& time_source) override; + void set_sync_source(const device_addr_t& sync_source) override; + device_addr_t get_sync_source() const override; + std::vector<device_addr_t> get_sync_sources() override; + void set_clock_source_out(const bool enb) override; + void set_time_source_out(const bool enb) override; + sensor_value_t get_sensor(const std::string& name) override; + std::vector<std::string> get_sensor_names() override; + uhd::usrp::mboard_eeprom_t get_eeprom() override; bool synchronize(std::vector<mb_controller::sptr>& mb_controllers, const uhd::time_spec_t& time_spec = uhd::time_spec_t(0.0), - const bool quiet = false); - std::vector<std::string> get_gpio_banks() const; - std::vector<std::string> get_gpio_srcs(const std::string&) const; - std::vector<std::string> get_gpio_src(const std::string&); - void set_gpio_src(const std::string&, const std::vector<std::string>&); + const bool quiet = false) override; + std::vector<std::string> get_gpio_banks() const override; + std::vector<std::string> get_gpio_srcs(const std::string&) const override; + std::vector<std::string> get_gpio_src(const std::string&) override; + void set_gpio_src(const std::string&, const std::vector<std::string>&) override; private: //! Return a string X300::MB_CTRL#N diff --git a/host/lib/usrp/x300/x300_mb_eeprom_iface.cpp b/host/lib/usrp/x300/x300_mb_eeprom_iface.cpp index 42d0b32ca..4eaccccc4 100644 --- a/host/lib/usrp/x300/x300_mb_eeprom_iface.cpp +++ b/host/lib/usrp/x300/x300_mb_eeprom_iface.cpp @@ -41,7 +41,7 @@ public: _compat_num = _wb->peek32(X300_FW_SHMEM_ADDR(X300_FW_SHMEM_COMPAT_NUM)); } - ~x300_mb_eeprom_iface_impl() + ~x300_mb_eeprom_iface_impl() override { /* NOP */ } @@ -51,7 +51,7 @@ public: * \param addr the address * \param buf the vector of bytes */ - void write_i2c(uint16_t addr, const byte_vector_t& buf) + void write_i2c(uint16_t addr, const byte_vector_t& buf) override { UHD_ASSERT_THROW(addr == MBOARD_EEPROM_ADDR); if (uhd::usrp::x300::claim_status(_wb) != uhd::usrp::x300::CLAIMED_BY_US) { @@ -66,7 +66,7 @@ public: * \param num_bytes number of bytes to read * \return a vector of bytes */ - byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) + byte_vector_t read_i2c(uint16_t addr, size_t num_bytes) override { UHD_ASSERT_THROW(addr == MBOARD_EEPROM_ADDR); byte_vector_t bytes; @@ -93,7 +93,7 @@ public: * \param offset byte offset * \param buf the vector of bytes */ - void write_eeprom(uint16_t addr, uint16_t offset, const byte_vector_t& buf) + void write_eeprom(uint16_t addr, uint16_t offset, const byte_vector_t& buf) override { UHD_ASSERT_THROW(addr == MBOARD_EEPROM_ADDR); if (uhd::usrp::x300::claim_status(_wb) != uhd::usrp::x300::CLAIMED_BY_US) { @@ -109,7 +109,7 @@ public: * \param num_bytes number of bytes to read * \return a vector of bytes */ - byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) + byte_vector_t read_eeprom(uint16_t addr, uint16_t offset, size_t num_bytes) override { UHD_ASSERT_THROW(addr == MBOARD_EEPROM_ADDR); byte_vector_t bytes; diff --git a/host/lib/usrp/x300/x300_mb_eeprom_iface.hpp b/host/lib/usrp/x300/x300_mb_eeprom_iface.hpp index 935f6302d..964a98b84 100644 --- a/host/lib/usrp/x300/x300_mb_eeprom_iface.hpp +++ b/host/lib/usrp/x300/x300_mb_eeprom_iface.hpp @@ -19,7 +19,7 @@ class x300_mb_eeprom_iface : public uhd::i2c_iface public: typedef std::shared_ptr<x300_mb_eeprom_iface> sptr; - virtual ~x300_mb_eeprom_iface(void) = 0; + ~x300_mb_eeprom_iface(void) override = 0; static sptr make(uhd::wb_iface::sptr wb, uhd::i2c_iface::sptr i2c); }; diff --git a/host/lib/usrp/x300/x300_pcie_mgr.hpp b/host/lib/usrp/x300/x300_pcie_mgr.hpp index f0a5ed911..d6cb03071 100644 --- a/host/lib/usrp/x300/x300_pcie_mgr.hpp +++ b/host/lib/usrp/x300/x300_pcie_mgr.hpp @@ -37,11 +37,11 @@ public: /*! Return a reference to a ZPU ctrl interface object */ - uhd::wb_iface::sptr get_ctrl_iface(); + uhd::wb_iface::sptr get_ctrl_iface() override; void init_link(); - size_t get_mtu(uhd::direction_t dir); + size_t get_mtu(uhd::direction_t dir) override; /*! Safely release a ZPU control object * @@ -52,7 +52,7 @@ public: /*! Return list of local device IDs associated with this link */ - std::vector<uhd::rfnoc::device_id_t> get_local_device_ids() + std::vector<uhd::rfnoc::device_id_t> get_local_device_ids() override { return {_local_device_id}; } @@ -61,7 +61,7 @@ public: const uhd::rfnoc::device_id_t local_device_id, const uhd::rfnoc::sep_id_t& local_epid, const uhd::rfnoc::sep_id_t& remote_epid, - const uhd::device_addr_t& link_args); + const uhd::device_addr_t& link_args) override; private: /*! Allocate or return a previously allocated PCIe channel pair |