3. 例程编译和调用方法
3.1 例程列表
SDK 提供三个示例程序,位于 examples/ 目录:
| 例程名称 | 文件 | 功能说明 |
|---|---|---|
| 基础用法 | basic_usage.cpp | 演示连接、读取数据、断开连接 |
| 高级用法 | advanced_usage.cpp | 错误处理、统计信息、性能测试 |
| 实时可视化 | psi_glove_cpp_visualizer/ | OpenCV 实时柱状图显示 |
3.2 编译例程
方法 1: 使用 CMake 批量编译(推荐)
bash
cd psi-glove-SDK/cpp_sdk
mkdir build && cd build
# 配置并启用示例
cmake -DBUILD_EXAMPLES=ON ..
# 编译所有示例
make -j$(nproc)
# 示例可执行文件位于 build/examples/ 目录
ls -lh examples/
# 输出:
# basic_usage
# advanced_usage
# psi_glove_cpp_visualizer/psi_glove_cpp_visualizer方法 2: 手动编译单个示例
bash
# 先安装 SDK(如果尚未安装)
cd psi-glove-SDK/cpp_sdk
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig
# 编译 basic_usage
cd ../examples
g++ -std=c++17 basic_usage.cpp -lpsi_glove_sdk -o basic_usage
# 编译 advanced_usage
g++ -std=c++17 advanced_usage.cpp -lpsi_glove_sdk -o advanced_usage
# 编译可视化器(需要 OpenCV)
cd psi_glove_cpp_visualizer
mkdir build && cd build
cmake ..
make方法 3: 使用 pkg-config(如果支持)
bash
# 编译示例
g++ -std=c++17 basic_usage.cpp \
$(pkg-config --cflags --libs psi_glove_sdk) \
-o basic_usage3.3 运行例程
3.3.1 基础用法示例
bash
cd psi-glove-SDK/cpp_sdk/build/examples
# 使用默认波特率(115200)
./basic_usage /dev/ttyACM0
# 自定义波特率
./basic_usage /dev/ttyACM0 500000
# Windows 系统
basic_usage.exe COM31输出示例:
===========================================
PSI Glove SDK - 基础使用示例
===========================================
串口: /dev/ttyACM0
波特率: 115200
===========================================
正在连接到设备...
连接成功!
开始读取数据 (按Ctrl+C退出)...
--- 帧 #0 ---
拇指: 2048, 1856, 2304, 1792, 2176
食指: 1920, 2240, 1664, 2112
中指: 2304, 1856, 2048, 1792
无名指: 1920, 2176, 1664, 2048
小指: 2240, 1856, 2304, 1920
--- 帧 #10 ---
拇指: 2052, 1860, 2308, 1796, 2180
...
^C
正在退出...
===========================================
统计信息:
总帧数: 1523
运行时间: 15 秒
平均帧率: 101.53 Hz
===========================================
已断开连接。3.3.2 高级用法示例
bash
# 运行高级示例(包含性能统计)
./advanced_usage /dev/ttyACM0
# 自定义波特率
./advanced_usage /dev/ttyACM0 500000额外功能:
- 实时帧率计算
- 丢包率统计
- 延迟测量
- 错误计数
- 数据完整性检查
3.3.3 实时可视化示例
bash
# 先安装 OpenCV(如果尚未安装)
# Ubuntu/Debian
sudo apt-get install libopencv-dev
# 编译可视化器
cd psi-glove-SDK/cpp_sdk/examples/psi_glove_cpp_visualizer
mkdir build && cd build
cmake ..
make
# 运行可视化器 - 左手
./psi_glove_cpp_visualizer --left /dev/ttyACM0
# 运行可视化器 - 双手
./psi_glove_cpp_visualizer \
--left /dev/ttyACM0 \
--right /dev/ttyACM1
# 自定义参数
./psi_glove_cpp_visualizer \
--left /dev/ttyACM0 \
--baudrate 500000 \
--rate 100可视化窗口:
┌──────────────────────────────────────────────────┐
│ PSI 手套数据可视化(OpenCV) │
├──────────────────────────────────────────────────┤
│ 左手关节位置 │
│ ┌────────────────────────────────────────┐ │
│ │ 拇指_0 ████████████████████ 2048 │ │
│ │ 拇指_1 ██████████████ 1856 │ │
│ │ 拇指_2 ████████████████████████ 2304 │ │
│ │ ... │ │
│ └────────────────────────────────────────┘ │
│ │
│ [Q]退出 [S]截图 [R]重置 │
│ FPS: 101.5 Hz | 延迟: 9.8 ms │
└──────────────────────────────────────────────────┘3.4 例程可配置参数
basic_usage 参数
bash
./basic_usage <串口路径> [波特率]
# 示例
./basic_usage /dev/ttyACM0 # 默认波特率 115200
./basic_usage /dev/ttyACM0 500000 # 波特率 500000advanced_usage 参数
bash
./advanced_usage <串口路径> [波特率]
# 示例
./advanced_usage /dev/ttyACM0 115200psi_glove_cpp_visualizer 参数
bash
./psi_glove_cpp_visualizer [选项]
选项:
--left <串口> 左手串口路径(例: /dev/ttyACM0)
--right <串口> 右手串口路径(例: /dev/ttyACM1)
--baudrate <波特率> 通信波特率(默认: 115200)
--rate <频率> 数据采集频率(默认: 100 Hz)
--timeout <毫秒> 超时时间(默认: 6 ms)
--window-size <大小> 平滑窗口大小(默认: 10)
# 示例
./psi_glove_cpp_visualizer \
--left /dev/ttyACM0 \
--baudrate 500000 \
--rate 150 \
--window-size 5