diff --git a/lib/hackrf/hackrf_source_c.cc b/lib/hackrf/hackrf_source_c.cc index c845840..f9ed206 100644 --- a/lib/hackrf/hackrf_source_c.cc +++ b/lib/hackrf/hackrf_source_c.cc @@ -102,9 +102,13 @@ hackrf_source_c::hackrf_source_c (const std::string &args) _bandwidth(0) { int ret; + std::string *hackrf_serial = NULL; dict_t dict = params_to_dict(args); + if (dict.count("hackrf")) + hackrf_serial = &dict["hackrf"]; + _buf_num = _buf_len = _buf_head = _buf_used = _buf_offset = 0; if (dict.count("buffers")) @@ -142,7 +146,10 @@ hackrf_source_c::hackrf_source_c (const std::string &args) } _dev = NULL; - ret = hackrf_open( &_dev ); + if (hackrf_serial) + ret = hackrf_open_by_serial(hackrf_serial->c_str(), &_dev); + else + ret = hackrf_open( &_dev ); HACKRF_THROW_ON_ERROR(ret, "Failed to open HackRF device") uint8_t board_id;