Skip to content

2. SDK安装和配置方法

2.1 系统要求

  • C++ 编译器: GCC 7+ / Clang 5+ / MSVC 2017+
  • CMake 版本: 3.10 或更高版本
  • C++ 标准: C++17
  • 操作系统: Linux / Windows / macOS
  • 依赖: 无外部依赖(仅 C++ 标准库)

2.2 编译和安装 SDK

2.2.1 标准安装方法

bash
# 进入 C++ SDK 目录
cd psi-glove-SDK/cpp_sdk

# 创建构建目录
mkdir build && cd build

# 配置 CMake(默认配置)
cmake ..

# 编译(使用所有 CPU 核心)
make -j$(nproc)

# 安装到系统目录(需要 root 权限)
sudo make install

# 更新动态链接库缓存(Linux)
sudo ldconfig

默认安装路径:

组件安装路径
头文件/usr/local/include/psi_glove_sdk/
库文件/usr/local/lib/libpsi_glove_sdk.so (Linux)
/usr/local/lib/libpsi_glove_sdk.dylib (macOS)
C:\Program Files\psi_glove_sdk\lib\psi_glove_sdk.dll (Windows)
CMake 配置/usr/local/lib/cmake/psi_glove_sdk/

2.2.2 自定义安装路径

bash
# 安装到自定义目录(不需要 root 权限)
cd cpp_sdk
mkdir build && cd build

# 指定安装前缀
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local ..

# 编译和安装
make -j$(nproc)
make install

# 配置环境变量
export LD_LIBRARY_PATH=$HOME/.local/lib:$LD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=$HOME/.local:$CMAKE_PREFIX_PATH

2.2.3 Windows 平台编译

powershell
# 使用 Visual Studio 2017 或更高版本
cd psi-glove-SDK\cpp_sdk
mkdir build
cd build

# 配置(生成 Visual Studio 解决方案)
cmake -G "Visual Studio 15 2017 Win64" ..

# 编译(或在 Visual Studio 中打开 .sln 文件)
cmake --build . --config Release

# 安装
cmake --install . --config Release

2.3 SDK 可配置参数说明

SDK 提供多个可配置参数以适应不同应用场景:

2.3.1 CMake 构建选项

bash
cmake [选项] ..
选项类型默认值说明
BUILD_EXAMPLESBOOLOFF是否编译示例程序
BUILD_SHARED_LIBSBOOLON编译动态库(OFF 为静态库)
CMAKE_BUILD_TYPESTRINGRelease构建类型:Debug/Release/RelWithDebInfo
CMAKE_INSTALL_PREFIXPATH/usr/local安装路径前缀
CMAKE_CXX_STANDARDSTRING17C++ 标准版本

使用示例:

bash
# 编译示例程序 + 调试模式
cmake -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Debug ..

# 静态库 + 自定义安装路径
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/opt/psi_glove ..

# 完整配置
cmake \
  -DBUILD_EXAMPLES=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=$HOME/.local \
  -DCMAKE_CXX_COMPILER=g++-9 \
  ..

2.3.2 SDK 运行时参数

SerialInterface 构造函数参数

cpp
SerialInterface(
    const std::string& port,           // 串口路径
    int baudrate = 115200,             // 波特率
    std::chrono::milliseconds timeout = std::chrono::milliseconds(6),  // 超时
    bool auto_connect = false,         // 是否自动连接
    bool mock = false                  // 模拟模式(用于测试)
);
参数类型默认值说明
portstd::string必填串口设备路径(如 /dev/ttyACM0, COM31
baudrateint115200通信波特率,支持 115200、500000 等
timeoutstd::chrono::milliseconds6ms读写超时时间
auto_connectboolfalse是否在创建时自动连接设备
mockboolfalse模拟模式,用于测试(无需实际硬件)
PSIGloveController 构造函数参数
cpp
PSIGloveController(
    std::unique_ptr<CommunicationInterface> interface,  // 通信接口
    size_t smoothing_window_size = 10                   // 平滑窗口大小
);
参数类型默认值说明
interfacestd::unique_ptr<CommunicationInterface>必填通信接口实例(如 SerialInterface
smoothing_window_sizesize_t10移动平均滤波窗口大小(样本数)

参数选择建议:

  • 高频采集(低延迟): baudrate=500000, timeout=3ms, smoothing_window_size=5
  • 稳定数据: baudrate=115200, timeout=6ms, smoothing_window_size=10
  • 嵌入式系统: 静态库 + 最小平滑窗口(smoothing_window_size=3

2.4 典型配置示例

配置 1: 标准配置(推荐)

cpp
#include <psi_glove_sdk/psi_glove.hpp>

// 创建串口接口
auto serial = std::make_unique<psi_glove::SerialInterface>(
    "/dev/ttyACM0",                     // 串口路径
    115200,                              // 波特率
    std::chrono::milliseconds(6),        // 超时
    false,                               // 不自动连接
    false                                // 不使用模拟数据
);

// 创建控制器
psi_glove::PSIGloveController controller(
    std::move(serial),
    10  // 平滑窗口大小
);

配置 2: 高速配置(低延迟)

cpp
// 高速串口 + 小平滑窗口
auto serial = std::make_unique<psi_glove::SerialInterface>(
    "/dev/ttyACM0",
    500000,                              // 高波特率
    std::chrono::milliseconds(3),        // 短超时
    true,                                // 自动连接
    false
);

psi_glove::PSIGloveController controller(std::move(serial), 5);  // 小窗口

配置 3: 模拟模式(用于测试)

cpp
// 无需实际硬件
auto serial = std::make_unique<psi_glove::SerialInterface>(
    "/dev/ttyUSB0",
    115200,
    std::chrono::milliseconds(6),
    false,
    true  // 启用模拟数据
);

psi_glove::PSIGloveController controller(std::move(serial), 10);