diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index c3ddd66..947df2e 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -9,9 +9,20 @@ set(INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/../include/cpp) if(UNIX) - set(DEP_LIB_DIR ${PROJECT_SOURCE_DIR}/../libs/linux) + string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" DEXCAP_ARCH) + if(DEXCAP_ARCH MATCHES "^(x86_64|amd64)$") + set(DEP_LIB_DIR "${PROJECT_SOURCE_DIR}/../libs/linux/x86_64") + elseif(DEXCAP_ARCH MATCHES "^(aarch64|arm64)$") + set(DEP_LIB_DIR "${PROJECT_SOURCE_DIR}/../libs/linux/aarch64") + else() + message(FATAL_ERROR + "Unsupported Linux architecture: ${CMAKE_SYSTEM_PROCESSOR}. " + "Supported: x86_64, aarch64.") + endif() +elseif(WIN32) + set(DEP_LIB_DIR "${PROJECT_SOURCE_DIR}/../libs/windows") else() - set(DEP_LIB_DIR ${PROJECT_SOURCE_DIR}/../libs/windows) + message(FATAL_ERROR "Unsupported platform.") endif() if(UNIX) diff --git a/include/configuration.h b/include/configuration.h index 25f6044..b0f2a74 100644 --- a/include/configuration.h +++ b/include/configuration.h @@ -11,6 +11,7 @@ #include #endif +#include #include "cpp/TypeDef.hpp" #ifdef __cplusplus @@ -113,6 +114,7 @@ class DexCapConfig final private: + YAML::Node configuration; }; diff --git a/include/cpp/DexCap.hpp b/include/cpp/DexCap.hpp index 7deb848..861a421 100644 --- a/include/cpp/DexCap.hpp +++ b/include/cpp/DexCap.hpp @@ -102,7 +102,7 @@ class DexCapSuit [[nodiscard]] const DexCapEndPoses & GetEndPose() const; - [[nodiscard]] uint16_t GetBatteryLevel(ExoApparatus device) const; + [[nodiscard]] uint16_t GetBatteryLevel(ExoApparatus device); [[nodiscard]] const MainBatteryState *GetMainBatteryState() const; void VibeMotors(ExoApparatus hand, const std::vector &) const; diff --git a/include/typedef.h b/include/typedef.h index 853c6ab..58b1dcd 100644 --- a/include/typedef.h +++ b/include/typedef.h @@ -18,7 +18,7 @@ extern "C" #ifndef _WIN32 #ifndef BOOL -#define BOOL int +#define BOOL unsigned char #else #undef BOOL #define BOOL int diff --git a/libs/linux/x86_64/libDexCap.so b/libs/linux/x86_64/libDexCap.so index bc3fd0b..3ef8d7e 100755 Binary files a/libs/linux/x86_64/libDexCap.so and b/libs/linux/x86_64/libDexCap.so differ