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_PATH2.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 Release2.3 SDK 可配置参数说明
SDK 提供多个可配置参数以适应不同应用场景:
2.3.1 CMake 构建选项
bash
cmake [选项] ..| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
BUILD_EXAMPLES | BOOL | OFF | 是否编译示例程序 |
BUILD_SHARED_LIBS | BOOL | ON | 编译动态库(OFF 为静态库) |
CMAKE_BUILD_TYPE | STRING | Release | 构建类型:Debug/Release/RelWithDebInfo |
CMAKE_INSTALL_PREFIX | PATH | /usr/local | 安装路径前缀 |
CMAKE_CXX_STANDARD | STRING | 17 | C++ 标准版本 |
使用示例:
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 // 模拟模式(用于测试)
);| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
port | std::string | 必填 | 串口设备路径(如 /dev/ttyACM0, COM31) |
baudrate | int | 115200 | 通信波特率,支持 115200、500000 等 |
timeout | std::chrono::milliseconds | 6ms | 读写超时时间 |
auto_connect | bool | false | 是否在创建时自动连接设备 |
mock | bool | false | 模拟模式,用于测试(无需实际硬件) |
PSIGloveController 构造函数参数
cpp
PSIGloveController(
std::unique_ptr<CommunicationInterface> interface, // 通信接口
size_t smoothing_window_size = 10 // 平滑窗口大小
);| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
interface | std::unique_ptr<CommunicationInterface> | 必填 | 通信接口实例(如 SerialInterface) |
smoothing_window_size | size_t | 10 | 移动平均滤波窗口大小(样本数) |
参数选择建议:
- 高频采集(低延迟):
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);