summaryrefslogtreecommitdiff
path: root/gr-uhd
diff options
context:
space:
mode:
authorJohnathan Corgan2012-03-16 14:33:30 -0700
committerJohnathan Corgan2012-03-16 14:33:30 -0700
commit7e2d501a7b8cee26412605bc37cb3cc6f771bbc7 (patch)
treee2854f95ce0b496b8cefbbd9fe68602e4d935a66 /gr-uhd
parent74f7c070339a3bb4ba2b6f2e17c66583ba4c0104 (diff)
parent30adb8816974f1e4580ea5bb1ee27a9a12dbb78e (diff)
downloadgnuradio-7e2d501a7b8cee26412605bc37cb3cc6f771bbc7.tar.gz
gnuradio-7e2d501a7b8cee26412605bc37cb3cc6f771bbc7.tar.bz2
gnuradio-7e2d501a7b8cee26412605bc37cb3cc6f771bbc7.zip
Merge branch 'gr-uhd-set-user-register'
Diffstat (limited to 'gr-uhd')
-rw-r--r--gr-uhd/include/gr_uhd_usrp_sink.h9
-rw-r--r--gr-uhd/include/gr_uhd_usrp_source.h9
-rw-r--r--gr-uhd/lib/gr_uhd_usrp_sink.cc9
-rw-r--r--gr-uhd/lib/gr_uhd_usrp_source.cc8
4 files changed, 35 insertions, 0 deletions
diff --git a/gr-uhd/include/gr_uhd_usrp_sink.h b/gr-uhd/include/gr_uhd_usrp_sink.h
index ce76ec03b..d6cbe2fdc 100644
--- a/gr-uhd/include/gr_uhd_usrp_sink.h
+++ b/gr-uhd/include/gr_uhd_usrp_sink.h
@@ -448,6 +448,15 @@ public:
* \return the multi usrp device object
*/
virtual uhd::usrp::multi_usrp::sptr get_device(void) = 0;
+
+ /*!
+ * Perform write on the user configuration register bus. These only exist if
+ * the user has implemented custom setting registers in the device FPGA.
+ * \param addr 8-bit register address
+ * \param data 32-bit register value
+ * \param mboard which motherboard to set the user register
+ */
+ virtual void set_user_register(const uint8_t addr, const uint32_t data, size_t mboard = 0) = 0;
};
#endif /* INCLUDED_GR_UHD_USRP_SINK_H */
diff --git a/gr-uhd/include/gr_uhd_usrp_source.h b/gr-uhd/include/gr_uhd_usrp_source.h
index 8a799b397..cf2186bc0 100644
--- a/gr-uhd/include/gr_uhd_usrp_source.h
+++ b/gr-uhd/include/gr_uhd_usrp_source.h
@@ -457,6 +457,15 @@ public:
virtual uhd::usrp::multi_usrp::sptr get_device(void) = 0;
/*!
+ * Perform write on the user configuration register bus. These only exist if
+ * the user has implemented custom setting registers in the device FPGA.
+ * \param addr 8-bit register address
+ * \param data 32-bit register value
+ * \param mboard which motherboard to set the user register
+ */
+ virtual void set_user_register(const uint8_t addr, const uint32_t data, size_t mboard = 0) = 0;
+
+ /*!
* Convenience function for finite data acquisition.
* This is not to be used with the scheduler; rather,
* one can request samples from the USRP in python.
diff --git a/gr-uhd/lib/gr_uhd_usrp_sink.cc b/gr-uhd/lib/gr_uhd_usrp_sink.cc
index 05237100c..7d173d972 100644
--- a/gr-uhd/lib/gr_uhd_usrp_sink.cc
+++ b/gr-uhd/lib/gr_uhd_usrp_sink.cc
@@ -278,6 +278,15 @@ public:
return _dev;
}
+ void set_user_register(const uint8_t addr, const uint32_t data, size_t mboard){
+ #ifdef UHD_USRP_MULTI_USRP_USER_REGS_API
+ _dev->set_user_register(addr, data, mboard);
+ #else
+ throw std::runtime_error("not implemented in this version");
+ #endif
+ }
+
+
/***********************************************************************
* Work
**********************************************************************/
diff --git a/gr-uhd/lib/gr_uhd_usrp_source.cc b/gr-uhd/lib/gr_uhd_usrp_source.cc
index 2244238bd..5d3a3321e 100644
--- a/gr-uhd/lib/gr_uhd_usrp_source.cc
+++ b/gr-uhd/lib/gr_uhd_usrp_source.cc
@@ -290,6 +290,14 @@ public:
return _dev;
}
+ void set_user_register(const uint8_t addr, const uint32_t data, size_t mboard){
+ #ifdef UHD_USRP_MULTI_USRP_USER_REGS_API
+ _dev->set_user_register(addr, data, mboard);
+ #else
+ throw std::runtime_error("not implemented in this version");
+ #endif
+ }
+
/***********************************************************************
* Work
**********************************************************************/