diff options
author | Josh Blum <josh@joshknows.com> | 2011-10-24 14:34:51 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-10-24 14:34:51 -0700 |
commit | 7d0fe9fd86c1726e89c7513fb8bbd8502a4d4554 (patch) | |
tree | 94d2685e523fdecad21a58c5b629534e30cafeb8 | |
parent | 13899cd8de84119e7cd5e054c4847b7b19dbe3d2 (diff) | |
download | uhd-7d0fe9fd86c1726e89c7513fb8bbd8502a4d4554.tar.gz uhd-7d0fe9fd86c1726e89c7513fb8bbd8502a4d4554.tar.bz2 uhd-7d0fe9fd86c1726e89c7513fb8bbd8502a4d4554.zip |
b100: perform test claim on usb before continuing
-rw-r--r-- | host/lib/usrp/b100/b100_impl.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/host/lib/usrp/b100/b100_impl.cpp b/host/lib/usrp/b100/b100_impl.cpp index 7d5876449..98c5cab8c 100644 --- a/host/lib/usrp/b100/b100_impl.cpp +++ b/host/lib/usrp/b100/b100_impl.cpp @@ -102,23 +102,16 @@ static device_addrs_t b100_find(const device_addr_t &hint) pid = B100_PRODUCT_ID; BOOST_FOREACH(usb_device_handle::sptr handle, usb_device_handle::get_device_list(vid, pid)) { + usb_control::sptr control; + try{control = usb_control::make(handle, 0);} + catch(const uhd::exception &){continue;} //ignore claimed + + fx2_ctrl::sptr fx2_ctrl = fx2_ctrl::make(control); + const mboard_eeprom_t mb_eeprom = mboard_eeprom_t(*fx2_ctrl, mboard_eeprom_t::MAP_B100); device_addr_t new_addr; new_addr["type"] = "b100"; + new_addr["name"] = mb_eeprom["name"]; new_addr["serial"] = handle->get_serial(); - - //Attempt to read the name from the EEPROM and perform filtering. - try{ - usb_control::sptr control = usb_control::make(handle, 0); - fx2_ctrl::sptr fx2_ctrl = fx2_ctrl::make(control); - const mboard_eeprom_t mb_eeprom = mboard_eeprom_t(*fx2_ctrl, mboard_eeprom_t::MAP_B100); - new_addr["name"] = mb_eeprom["name"]; - } - catch(const uhd::exception &){ - //set these values as empty string so the device may still be found - //and the filter's below can still operate on the discovered device - new_addr["name"] = ""; - } - //this is a found b100 when the hint serial and name match or blank if ( (not hint.has_key("name") or hint["name"] == new_addr["name"]) and |