2025-11-05 09:12:24 +08:00
2025-10-29 14:09:28 +08:00
2025-10-31 10:03:43 +08:00
2025-10-29 14:09:28 +08:00
2025-10-31 10:03:43 +08:00
2025-10-20 00:32:01 +08:00
2025-10-20 00:32:01 +08:00
2025-10-31 10:03:43 +08:00
2025-10-29 14:09:28 +08:00
2025-11-05 09:12:24 +08:00

TouchSensor 2.0

基于 Qt 6 与自研 Modern Qt 组件库打造的实时触觉传感器探索界面。

状态 Qt 版本 C++ 标准 CMake 版本 UI 工具集

TouchSensor Logo

项目亮点

  • 基于仓库内置的 modern-qt 库构建现代化、贴近 Material 风格的桌面壳层。
  • 左侧导航栏搭配卡片式主界面,集中承载串口控制面板与双热力图视图。
  • 实时触觉数据流水线:ffmsep::CPStreamCore 负责串口 I/O、编解码调度与帧缓存。
  • 内置触觉编解码模块(ffmsep::tactile)自动解析载荷、推断矩阵尺寸并输出压力量表。
  • 两套 HeatMapPlot 组件通过响应式数据源实时刷新,并与主题色梯度联动。

当前进展

  • UI 内可完成串口的搜索、连接与断开,同时支持周期性从站轮询指令。
  • 编解码注册流程已接入触觉解码器,控制台输出原始帧内容与矩阵提示,便于调试。
  • 双热力图面板会根据解码结果动态调整矩阵尺寸,停止串流时自动回落至默认状态。
  • 同时提供 cpstream_demo CLI用于在无界面环境校验串流核心逻辑。

架构速览

  • 入口main.cc 负责加载主题、导航栏、遮罩动画以及传感器面板。
  • 组件层components/ 收纳导航/视图界面、图表组件以及触觉串流管线。
  • Modern Qt 工具集modern-qt/ 提供声明式封装、主题系统与 Material 图标工具。
  • 串流与编解码components/ffmsep 打包编解码注册、CPStreamCore 与触觉帧解析工具。
  • 可视化components/charts/heatmap.* 提供可主题化的热力图控件,支持梯度和矩阵重设。
  • 示例examples/ 下的 cpstream_demo.cc 可单独运行验证串流核心。

快速开始

环境要求

  • CMake 3.20+
  • 支持 C++23 的编译器MSVC 19.3x、Clang 16+ 或 GCC 13+
  • Qt 6至少包含 Widgets、Network、PrintSupport 模块)
  • Eigen3
  • spdlog(可通过包管理器安装或手动提供给 CMake
  • serial(跨平台串口库,可包管理器安装或自行构建)

确保 Qt6_DIRCMAKE_PREFIX_PATH 指向 Qt 安装路径,以便 CMake 正确找到依赖模块。

配置与构建

pacman -Sy
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw64/mingw-w64-x86_64-qt6-base
pacman -S mingw-w64-x86_64-eigen3 mingw-w64-x86_64-yaml-cpp

mkdir build
cmake -G "MinGW Makefiles" -B build -DCMAKE_INSTALL_PREFIX="YOUR INSTALL PATH"

cd build && mingw32-make install

cat install_manifest.txt

从构建目录直接运行:

.\touchsensor.exe

在 Linux/macOS 上使用对应的 Qt 安装路径与可执行文件名。

运行传感器界面

  • 通过 USB 接入触觉设备,确认系统识别到的串口号。
  • 启动 touchsensor.exe(或平台对应的可执行文件)。
  • 在串口下拉列表中选择端口,可按需刷新;若需更换波特率请同步调整。
  • 点击链接图标开始串流,双热力图将实时更新,控制台亦会打印原始载荷。
  • 再次点击链接图标即可断开连接,界面会回落到默认示例数据。

BUILD_EXAMPLE 选项开启时会同步构建 cpstream_demo,可在终端中运行验证串流与编解码流程。

项目结构

.
|-- components/
|   |-- charts/           # 基于 QCustomPlot 的热力图等可视化组件
|   |-- ffmsep/           # 触觉串流核心与编解码实现
|   |-- nav.cc            # 导航栏与主题切换逻辑
|   |-- view.cc           # 传感器控制面板与双热力图
|   `-- ...               # 其他 UI 组件
|-- examples/             # cpstream_demo 命令行示例
|-- modern-qt/            # 自研 Qt 声明式 UI 框架
|-- serial/               # 串口通信辅助库
|-- images/logo.png       # 项目标识
|-- main.cc               # 程序入口
`-- CMakeLists.txt        # 构建脚本,聚合 Qt、Eigen、Modern Qt、Serial、SPDLOG

路线图(进行中)

  • 已完成 串口串流管线(轮询、编解码回调、热力图数据绑定)已连通。
  • 已完成 HeatMapPlot 支持矩阵提示与梯度调节,能随解码结果刷新。
  • 规划中 引入内置诊断/历史面板,替换当前的标准输出日志。
  • 规划中 保存串口偏好、提供手动矩阵覆写,并补充文档素材。
  • 规划中 扩展导航目标,完善非传感器场景。

致谢

  • Qt 提供核心 UI 框架。
  • QCustomPlot 支撑热力图组件。
  • spdlog 用于日志记录(已在 CMake 中接入)。
  • serial 提供跨平台串口能力。
  • 内部 Modern Qt 工具集基于 creeper-qt 生态构建。
Description
No description provided
Readme 4.1 MiB
Languages
C++ 99.7%
CMake 0.3%