diff --git a/CMakeLists.txt b/CMakeLists.txt index c7488c44..f3ea439d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.5) set(CMAKE_CXX_STANDARD 14) project(walking-teleoperation - VERSION 1.3.5) + VERSION 1.3.6) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) include(WalkingTeleoperationFindDependencies) diff --git a/modules/Oculus_module/src/OculusModule.cpp b/modules/Oculus_module/src/OculusModule.cpp index c6664862..245a613f 100644 --- a/modules/Oculus_module/src/OculusModule.cpp +++ b/modules/Oculus_module/src/OculusModule.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -17,6 +18,21 @@ #include +inline bool OculusModuleFrameExists(yarp::dev::IFrameTransform* frameTransformInterface, + const std::string& frameID) +{ + bool frameExists = false; +#if YARP_VERSION_MAJOR == 3 && YARP_VERSION_MINOR < 11 + frameExists = frameTransformInterface->frameExists(frameID); +#else + bool frameExistsOk = false; + bool frameExistsReturnValue = false; + frameExistsReturnValue = frameTransformInterface->frameExists(frameID, frameExistsOk); + frameExists = frameExistsOk && frameExistsReturnValue; +#endif + return frameExists; +} + Eigen::Ref> getRotation(yarp::sig::Matrix& m) { @@ -778,7 +794,7 @@ bool OculusModule::runningModule() if (m_useOpenXr) { - if (!m_frameTransformInterface->frameExists(m_headFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface,m_headFrameName)) { yError() << "[OculusModule::runningModule] The frame named " << m_headFrameName << " does not exist."; @@ -900,13 +916,13 @@ bool OculusModule::getTransforms() if (!m_useXsens) { // check if everything is ok - if (!m_frameTransformInterface->frameExists(m_rootFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface, m_rootFrameName)) { yError() << "[OculusModule::getTransforms] No " << m_rootFrameName << " frame."; return false; } - if (!m_frameTransformInterface->frameExists(m_headFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface, m_headFrameName)) { if (m_useOpenXr) @@ -993,14 +1009,14 @@ bool OculusModule::getTransforms() if (!m_useXsens && !m_useIFeel) { - if (!m_frameTransformInterface->frameExists(m_leftHandFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface, m_leftHandFrameName)) { yError() << "[OculusModule::getTransforms] No " << m_leftHandFrameName << " frame."; return false; } - if (!m_frameTransformInterface->frameExists(m_rightHandFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface,m_rightHandFrameName)) { yError() << "[OculusModule::getTransforms] No " << m_rightHandFrameName << " frame."; return false; diff --git a/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp b/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp index d42d3b28..51b82bb0 100644 --- a/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp +++ b/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp @@ -36,6 +36,22 @@ #include #include +inline bool OpenXRJoypadModuleFrameExists(yarp::dev::IFrameTransform* frameTransformInterface, + const std::string& frameID) +{ + bool frameExists = false; +#if YARP_VERSION_MAJOR == 3 && YARP_VERSION_MINOR < 11 + frameExists = frameTransformInterface->frameExists(frameID); +#else + bool frameExistsOk = false; + bool frameExistsReturnValue = false; + frameExistsReturnValue = frameTransformInterface->frameExists(frameID, frameExistsOk); + frameExists = frameExistsOk && frameExistsReturnValue; +#endif + return frameExists; +} + + class RobotControlHelper { yarp::dev::PolyDriver m_robotDevice; /**< Main robot device. */ @@ -989,9 +1005,9 @@ struct OpenXRJoypadModule::Impl yarp::sig::Matrix& headOpenXR_T_rightHandOpenXR) { bool ok = true; - ok = ok && this->frameTransformInterface->frameExists(this->headFrameName); - ok = ok && this->frameTransformInterface->frameExists(this->leftHandFrameName); - ok = ok && this->frameTransformInterface->frameExists(this->rightHandFrameName); + ok = ok && OpenXRJoypadModuleFrameExists(this->frameTransformInterface, this->headFrameName); + ok = ok && OpenXRJoypadModuleFrameExists(this->frameTransformInterface, this->leftHandFrameName); + ok = ok && OpenXRJoypadModuleFrameExists(this->frameTransformInterface, this->rightHandFrameName); ok = ok && this->frameTransformInterface->getTransform(this->rightHandFrameName, //