aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-10-24 14:34:51 -0700
committerJosh Blum <josh@joshknows.com>2011-10-24 14:34:51 -0700
commit7d0fe9fd86c1726e89c7513fb8bbd8502a4d4554 (patch)
tree94d2685e523fdecad21a58c5b629534e30cafeb8
parent13899cd8de84119e7cd5e054c4847b7b19dbe3d2 (diff)
downloaduhd-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.cpp21
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