extension: Fix set_*x_antenna() and update C++

This fixes the segfault when calling into set_*x_antenna() within the
example extension and updates the C++ version to UHD default (20 at the
moment) to be able to build again.
The segfault was caused by the extension example never initializing the
pointers to _*x_antenna. It still doesn't do that but refers to the
radio's setter and getter methods now.
This commit is contained in:
Martin Anderseck 2026-07-29 12:39:37 +02:00 committed by mkoop-ni
parent 2951e32013
commit c1b344b732
2 changed files with 32 additions and 1 deletions

View File

@ -9,7 +9,7 @@ cmake_minimum_required(VERSION 3.12)
project(EXTENSION_EXAMPLE CXX)
### Configure Compiler ########################################################
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 20)
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
set(CMAKE_EXE_LINKER_FLAGS "-lthr ${CMAKE_EXE_LINKER_FLAGS}")

View File

@ -333,6 +333,37 @@ public:
return "Example_Extension";
}
void set_rx_antenna(const std::string& ant, const size_t chan) override
{
_radio->set_rx_antenna(ant, chan);
}
void set_tx_antenna(const std::string& ant, const size_t chan) override
{
_radio->set_tx_antenna(ant, chan);
}
std::string get_rx_antenna(const size_t chan) const override
{
return _radio->get_rx_antenna(chan);
}
std::string get_tx_antenna(const size_t chan) const override
{
return _radio->get_tx_antenna(chan);
}
std::vector<std::string> get_rx_antennas(const size_t chan) const override
{
return _radio->get_rx_antennas(chan);
}
std::vector<std::string> get_tx_antennas(const size_t chan) const override
{
return _radio->get_tx_antennas(chan);
}
private:
uhd::rfnoc::radio_control::sptr _radio;