diff options
author | Heikki Hannikainen <hessu@hes.iki.fi> | 2015-02-24 12:31:46 +0200 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2015-06-01 22:01:01 +0200 |
commit | 592a814bdb023cf471e4ff9ead13c8e11712360e (patch) | |
tree | 232639e2e19d498f5f5a87500701220f0447bdfa /lib | |
parent | 8e6ecd0644519c96d8d9c1a606cf4b8c39bcf2a6 (diff) |
hackrf_source: Truncate serial numbers to 16 chars when enumerating, parse USB board IDs correctly
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/hackrf/hackrf_source_c.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/hackrf/hackrf_source_c.cc b/lib/hackrf/hackrf_source_c.cc index 9a7aa72..f064c8b 100644 --- a/lib/hackrf/hackrf_source_c.cc +++ b/lib/hackrf/hackrf_source_c.cc @@ -383,13 +383,16 @@ std::vector<std::string> hackrf_source_c::get_devices() for (unsigned int i = 0; i < list->devicecount; i++) { std::string args; - if (list->serial_numbers[i]) - args = "hackrf=" + boost::lexical_cast< std::string >( list->serial_numbers[i] ); - else - args = "hackrf=" + boost::lexical_cast< std::string >( i ); + if (list->serial_numbers[i]) { + std::string serial = boost::lexical_cast< std::string >( list->serial_numbers[i] ); + if (serial.length() > 16) + serial = serial.substr(serial.length() - 16, 16); + args = "hackrf=" + serial; + } else + args = "hackrf"; /* will pick the first one, serial number is required for choosing a specific one */ label = "HackRF "; - label += hackrf_board_id_name(hackrf_board_id( list->product_ids[i] )); + label += hackrf_usb_board_id_name( list->usb_board_ids[i] ); boost::algorithm::trim(label); |