diff options
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/usrp/common/lmk04828.cpp | 9 | ||||
-rw-r--r-- | host/lib/usrp/common/lmk04828.hpp | 9 |
2 files changed, 14 insertions, 4 deletions
diff --git a/host/lib/usrp/common/lmk04828.cpp b/host/lib/usrp/common/lmk04828.cpp index 9a9657ac8..edc65d280 100644 --- a/host/lib/usrp/common/lmk04828.cpp +++ b/host/lib/usrp/common/lmk04828.cpp @@ -28,7 +28,7 @@ lmk04828_iface::lmk04828_iface(write_fn_t write_fn, read_fn_t read_fn) : _write_ } -void lmk04828_iface::verify_chip_id() +bool lmk04828_iface::verify_chip_id() { // Check ID Device Type, ID Prod, and ID Maskrev registers uint8_t id_device_type = get_chip_id(); @@ -38,7 +38,10 @@ void lmk04828_iface::verify_chip_id() // assert(id_device_type == 6); if (id_device_type != 6){ std::cout << "id_device_type is not 6!" << std::endl; + return false; } + + return true; } uint8_t lmk04828_iface::get_chip_id(){ @@ -69,7 +72,9 @@ void lmk04828_iface::init() _write_fn(writes); - verify_chip_id(); + if (!verify_chip_id()) { + throw uhd::runtime_error("LMK ID not correct!"); + } } void lmk04828_iface::enable_sysref_pulse() diff --git a/host/lib/usrp/common/lmk04828.hpp b/host/lib/usrp/common/lmk04828.hpp index 36266bbfe..f44786dad 100644 --- a/host/lib/usrp/common/lmk04828.hpp +++ b/host/lib/usrp/common/lmk04828.hpp @@ -32,7 +32,7 @@ class lmk04828_iface { public: typedef boost::shared_ptr<lmk04828_iface> sptr; - typedef boost::function<void(std::vector<uint32_t>)> write_fn_t; + typedef boost::function<void(std::vector<uint32_t>)> write_fn_t; typedef boost::function<uint8_t(uint32_t)> read_fn_t; //static sptr (write_fn_t write_fn, read_fn_t read_fn); @@ -40,7 +40,12 @@ public: ~lmk04828_iface() {} - void verify_chip_id(); + //! Checks if the chip ID is what we expect + // + // Does not throw + // + // \returns false if chip ID is incorrect + bool verify_chip_id(); uint8_t get_chip_id(); |