diff --git a/cuhd/lib/CMakeLists.txt b/cuhd/lib/CMakeLists.txt index 82ad6382c..fb74eae89 100644 --- a/cuhd/lib/CMakeLists.txt +++ b/cuhd/lib/CMakeLists.txt @@ -25,19 +25,17 @@ IF(UHD_FOUND) ADD_LIBRARY(cuhd cuhd_imp.cpp cuhd_utils.c) INCLUDE_DIRECTORIES(${UHD_INCLUDE_DIRS}) + LINK_DIRECTORIES(${UHD_LIBRARY_DIRS}) TARGET_LINK_LIBRARIES(cuhd ${UHD_LIBRARIES}) - + LIBLTE_SET_PIC(cuhd) APPEND_INTERNAL_LIST(OPTIONAL_LIBS cuhd) INSTALL(TARGETS cuhd DESTINATION ${LIBRARY_DIR}) - + MESSAGE(STATUS " cuhd UHD C wrapper will be installed.") - + ELSE(UHD_FOUND) - MESSAGE(STATUS " UHD driver not found. CUHD library is not generated") + MESSAGE(STATUS " UHD driver not found. CUHD library is not generated") ENDIF(UHD_FOUND) - - - \ No newline at end of file diff --git a/cuhd/lib/cuhd_imp.cpp b/cuhd/lib/cuhd_imp.cpp index 88e1ce27f..2f63ddbcc 100644 --- a/cuhd/lib/cuhd_imp.cpp +++ b/cuhd/lib/cuhd_imp.cpp @@ -46,7 +46,18 @@ typedef _Complex float complex_t; bool isLocked(void *h) { cuhd_handler* handler = static_cast(h); - return handler->usrp->get_rx_sensor("lo_locked", 0).to_bool(); + std::vector mb_sensors = handler->usrp->get_mboard_sensor_names(); + std::vector rx_sensors = handler->usrp->get_rx_sensor_names(0); + if(std::find(rx_sensors.begin(), rx_sensors.end(), "lo_locked") != rx_sensors.end()) { + return handler->usrp->get_rx_sensor("lo_locked", 0).to_bool(); + } + else if(std::find(mb_sensors.begin(), mb_sensors.end(), "ref_locked") != mb_sensors.end()) { + return handler->usrp->get_mboard_sensor("ref_locked", 0).to_bool(); + } + else { + usleep(500); + return true; + } } bool cuhd_rx_wait_lo_locked(void *h) @@ -190,4 +201,3 @@ int cuhd_send(void *h, void *data, int nsamples, int blocking) { return handler->tx_stream->send(data, nsamples, md, 0.0); } } - diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 21d3cdba8..117c6d47c 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -38,6 +38,7 @@ target_link_libraries(ll_example lte) add_executable(synch_file synch_file.c) target_link_libraries(synch_file lte) +LINK_DIRECTORIES(${UHD_LIBRARY_DIRS}) ################################################################# # Check if UHD C-API and Graphics library are available @@ -59,8 +60,8 @@ target_link_libraries(pbch_enodeb lte) IF(${CUHD_FIND} EQUAL -1) SET_TARGET_PROPERTIES(pbch_ue PROPERTIES COMPILE_DEFINITIONS "DISABLE_UHD") SET_TARGET_PROPERTIES(pbch_enodeb PROPERTIES COMPILE_DEFINITIONS "DISABLE_UHD") -ELSE(${CUHD_FIND} EQUAL -1) - target_link_libraries(pbch_ue cuhd) +ELSE(${CUHD_FIND} EQUAL -1) + target_link_libraries(pbch_ue cuhd) target_link_libraries(pbch_enodeb cuhd) ENDIF(${CUHD_FIND} EQUAL -1) @@ -79,13 +80,13 @@ ENDIF(${GRAPHICS_FIND} EQUAL -1) ################################################################# IF(${CUHD_FIND} GREATER -1) - + add_executable(scan_rssi scan_rssi.c) target_link_libraries(scan_rssi lte cuhd ) - + add_executable(scan_pss scan_pss.c) target_link_libraries(scan_pss lte cuhd ) - + add_executable(scan_mib scan_mib.c) target_link_libraries(scan_mib lte cuhd ) @@ -93,5 +94,4 @@ IF(${CUHD_FIND} GREATER -1) ELSE(${CUHD_FIND} GREATER -1) MESSAGE(STATUS " UHD examples NOT INSTALLED: CUHD library not compiled.") -ENDIF(${CUHD_FIND} GREATER -1) - +ENDIF(${CUHD_FIND} GREATER -1)