From 9522c159dcca6acbb22c2f8ff04d76f4c6104c34 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Tue, 20 May 2014 20:58:54 +0200 Subject: Add subdevice to UHD configuration --- src/DabMod.cpp | 1 + src/OutputUHD.cpp | 5 +++++ src/OutputUHD.h | 4 ++++ 3 files changed, 10 insertions(+) (limited to 'src') 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("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; -- cgit v1.2.3