From a8bf7e5d5f109842398c0e19c17ddd6e157bab1e Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sat, 4 Jun 2016 15:17:13 -0400 Subject: [PATCH] Fixed Qt5 plugins release. Zed driver: sdded 2 seconds delay before sending grab error. --- app/src/CMakeLists.txt | 16 ++++++++++++++-- corelib/src/CameraStereo.cpp | 9 ++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/src/CMakeLists.txt b/app/src/CMakeLists.txt index 9b2822fc..219a3ab5 100644 --- a/app/src/CMakeLists.txt +++ b/app/src/CMakeLists.txt @@ -138,12 +138,24 @@ IF((APPLE AND BUILD_AS_BUNDLE) OR WIN32) # One can cull what gets copied by using 'REGEX "..." EXCLUDE' # Exclude debug libraries IF(QT_PLUGINS_DIR) - INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" + INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" DESTINATION ${plugin_dest_dir}/plugins COMPONENT runtime REGEX ".*d4.dll" EXCLUDE REGEX ".*d4.a" EXCLUDE) - ENDIF(QT_PLUGINS_DIR) + ELSE() + #Qt5 + foreach(plugin ${Qt5Gui_PLUGINS}) + get_target_property(plugin_loc ${plugin} LOCATION) + get_filename_component(plugin_dir ${plugin_loc} DIRECTORY) + string(REPLACE "plugins" ";" loc_list ${plugin_dir}) + list(GET loc_list 1 plugin_type) + #MESSAGE(STATUS "Qt5 plugin "${plugin_loc}" installed in "${plugin_dest_dir}/plugins${plugin_type}"") + INSTALL(FILES ${plugin_loc} + DESTINATION ${plugin_dest_dir}/plugins${plugin_type} + COMPONENT runtime) + endforeach() + ENDIF() # install a qt.conf file # this inserts some cmake code into the install script to write the file diff --git a/corelib/src/CameraStereo.cpp b/corelib/src/CameraStereo.cpp index a52baea0..8389079c 100644 --- a/corelib/src/CameraStereo.cpp +++ b/corelib/src/CameraStereo.cpp @@ -893,7 +893,14 @@ SensorData CameraStereoZed::captureImage() #ifdef RTABMAP_ZED if(zed_) { + UTimer timer; bool res = zed_->grab((sl::zed::SENSING_MODE)sensingMode_, quality_ > 0, quality_ > 0, false); + while (src_ == CameraVideo::kUsbDevice && res && timer.elapsed() < 2.0) + { + // maybe there is a latency with the USB, try again in 10 ms (for the next 2 seconds) + uSleep(10); + res = zed_->grab((sl::zed::SENSING_MODE)sensingMode_, quality_ > 0, quality_ > 0, false); + } if(!res) { // get left image @@ -922,7 +929,7 @@ SensorData CameraStereoZed::captureImage() } else if(src_ == CameraVideo::kUsbDevice) { - UERROR("CameraStereoZed: Failed to grab images!"); + UERROR("CameraStereoZed: Failed to grab images after 2 seconds!"); } else {