diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 512b55ccc..e93a5309e 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -78,6 +78,9 @@ All notable changes to GNSS-SDR will be documented in this file. `Osmosdr_Signal_Source` implementation of a `SignalSource`. - The `Osmosdr_Signal_Source` implementation learned a new parameter `if_bw` to manually set the bandwidth of the bandpass filter on the radio frontend. +- The `UHD_Signal_Source` learned two new optional parameters + `device_recv_frame_size` and `device_num_recv_frames` for overriding + [transport layer defaults](https://files.ettus.com/manual/page_transport.html). - The new configuration parameter `Channels_XX.RF_channel_ID` allows to specify the signal source per channel group. - Allowed the CMake project to be a sub-project. diff --git a/src/algorithms/signal_source/adapters/uhd_signal_source.cc b/src/algorithms/signal_source/adapters/uhd_signal_source.cc index 9b222bdb5..efaae370b 100644 --- a/src/algorithms/signal_source/adapters/uhd_signal_source.cc +++ b/src/algorithms/signal_source/adapters/uhd_signal_source.cc @@ -65,6 +65,20 @@ UhdSignalSource::UhdSignalSource(const ConfigurationInterface* configuration, sample_rate_ = configuration->property(role + ".sampling_frequency", 4.0e6); item_type_ = configuration->property(role + ".item_type", default_item_type); + // UHD TRANSPORT PARAMETERS + // option to manually set device "num_recv_frames" + std::string device_num_recv_frames = configuration->property(role + ".device_num_recv_frames", empty); + if (empty != device_num_recv_frames) // if not empty + { + dev_addr["num_recv_frames"] = device_num_recv_frames; + } + // option to manually set device "recv_frame_size" + std::string device_recv_frame_size = configuration->property(role + ".device_recv_frame_size", empty); + if (empty != device_recv_frame_size) // if not empty + { + dev_addr["recv_frame_size"] = device_recv_frame_size; + } + if (RF_channels_ == 1) { // Single RF channel UHD operation (backward compatible config file format)