summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/DabMod.cpp1
-rw-r--r--src/OutputUHD.cpp5
-rw-r--r--src/OutputUHD.h4
3 files changed, 10 insertions, 0 deletions
diff --git a/src/DabMod.cpp b/src/DabMod.cpp
index 20c5ab6..d8614a7 100644
--- a/src/DabMod.cpp
+++ b/src/DabMod.cpp
@@ -441,6 +441,7 @@ int main(int argc, char* argv[])
else if (output_selected == "uhd") {
outputuhd_conf.device = pt.get("uhdoutput.device", "");
outputuhd_conf.usrpType = pt.get("uhdoutput.type", "");
+ outputuhd_conf.subDevice = pt.get("uhdoutput.subdevice", "");
outputuhd_conf.masterClockRate = pt.get<long>("uhdoutput.master_clock_rate", 0);
if (outputuhd_conf.device.find("master_clock_rate") != std::string::npos) {
diff --git a/src/OutputUHD.cpp b/src/OutputUHD.cpp
index b0600cd..b44cd3f 100644
--- a/src/OutputUHD.cpp
+++ b/src/OutputUHD.cpp
@@ -108,6 +108,11 @@ OutputUHD::OutputUHD(
myUsrp->set_clock_source(myConf.refclk_src);
myUsrp->set_time_source(myConf.pps_src);
+ if (myConf.subDevice != "") {
+ myUsrp->set_tx_subdev_spec(uhd::usrp::subdev_spec_t(myConf.subDevice),
+ uhd::usrp::multi_usrp::ALL_MBOARDS);
+ }
+
std::cerr << "UHD clock source is " <<
myUsrp->get_clock_source(0) << std::endl;
diff --git a/src/OutputUHD.h b/src/OutputUHD.h
index 990822e..69e5b20 100644
--- a/src/OutputUHD.h
+++ b/src/OutputUHD.h
@@ -153,6 +153,10 @@ class UHDWorker {
struct OutputUHDConfig {
std::string device;
std::string usrpType; // e.g. b100, b200, usrp2
+
+ // The USRP1 can accept two daughterboards
+ std::string subDevice; // e.g. A:0
+
long masterClockRate;
unsigned sampleRate;
double frequency;