调试初版

This commit is contained in:
xu
2026-10-14 18:22:41 +08:00
parent d3a355bd3f
commit e5efdea06e
26 changed files with 289 additions and 140 deletions
+24 -18
View File
@@ -1,34 +1,29 @@
# 图数一体机遥控端 QT 界面(wuhan)
依据《QT界面详细设计说明书.md》实现的“玉兔工业无线遥控器(YTZT6K8EART2-aL25)”遥控端界面,
覆盖 ③开机密码(含密码警告/密码管理登录/密码管理/密码重置)④自检 ⑤系统首页面 ⑥作业选择 ⑦机器人底盘
⑧机械臂 ⑨气体检测仪 ⑩消除作业 ⑪消毒作业 ⑫调试维护 ⑬故障查询 共 11 个界面,
并配套 **CAN 报文收发**的通信层(19 条报文经 UDP 收发,遥控器另占串口 `/dev/ttyS7`)。
## 环境与构建
- Qt 5.15.2 MinGW 32-bit(`F:\QT\5.15.2\mingw81_32`),编译套件 `Desktop Qt 5.15.2 MinGW 32-bit`。
- 用 Qt Creator 打开 `wuhan.pro` 直接构建运行即可(qmake 工程,`QT += serialport`)。
- 目标运行环境:主板(Linux / aarch64),Qt 5.15.2。
- qmake 工程 `wuhan.pro`,依赖 Qt 模块 `core gui widgets network serialport`。
命令行构建示例:
在主板本机构建:
```bash
export PATH="/f/QT/Tools/mingw810_32/bin:/f/QT/5.15.2/mingw81_32/bin:$PATH"
mkdir -p build && cd build
qmake ../wuhan.pro -spec win32-g++ "CONFIG+=debug"
mingw32-make -j4
```
运行:`debug/wuhan.exe`(1920×1080 全屏无边框)。
qmake wuhan.pro
make -j4
```
## 运行说明
- 开机密码默认 **6789**(可在“忘记密码/修改密码 → 密码管理登录(管理员密码 **9527**)→ 密码管理 → 重置密码”中修改);管理员密码为固定值 **9527**,不可修改。
- 密码正确后进入自检,自检完成 2 秒自动进入“作业选择”;自检异常时可“忽略故障”继续。
- 底部状态条的模式徽标只作**显示**(不响应点击);行车模式操作底盘,机械臂模式操作机械臂。
演示用快捷键 **M** 可切换模式,但**遥控器在线时模式由遥控器报文决定,M 被忽略**。
模式由**遥控器报文**决定。
- 软急停由**遥控器 bit4** 下发:上升沿触发急停、下降沿复位,面板不提供急停/复位控件
(顶条原有的“急停”按钮已移除)。触发后页面之上出现全屏红条“急停已触发,请用遥控器复位!”。
触发后页面之上出现全屏红条“急停已触发,请用遥控器复位!”。
- ⑨⑩ 运行中“返回”无效(需先停止);调试维护页常显红色警告。
## 通信(19 条 CAN 报文,经 /dev/ttyS7 串口收发)
@@ -96,9 +91,9 @@ mingw32-make -j4
### 已知缺口
- **自检 10 项无对应 CAN 报文**,`sendSelfCheckStart()` 暂由本端跑完序列(见 `onSelfCheckTick`
的 TODO),仅为维持 ④自检 → ⑤作业选择 流程不中断;拿到真实报文后替换该本地驱动。
的 TODO),仅为维持 ④自检 → ⑤系统首页面 流程不中断;拿到真实报文后替换该本地驱动。
- **行车/机械臂模式**没有对应的下行信号:协议 12 条反馈里没有该字段,`telemetry.driveMode`
无处可填,故模式只由遥控器报文决定(遥控器离线时保持上次值,可用演示快捷键 **M** 切换)。
无处可填,故模式只由遥控器报文决定(遥控器离线时保持上次值)。
- **`Vehi_spd` 按协议取 8 位**(bit24、精度 0.01 → 0~2.55 km/h)。协议表里该信号与其后的
`Vehi_RdyStatus`(32)/`Reserve`(34)/`All_Comm_FaultCode`(40) 起始位自洽,按 8 位读才对齐;
若实测车速需要 0~5 km/h,说明该字段实为 16 位、其后信号整体后移 8 位,需同步调整。
@@ -157,10 +152,21 @@ mingw32-make -j4
- `app/` 全局常量、配色、应用上下文(AppContext)、QSS 样式、闪烁工具
- `comm/` 车端 CAN 通信层(`car`,19 条报文经 UDP 收 9000 / 发 9001)+ 遥控器串口通道(`uart`,`/dev/ttyS7`)
- `widgets/` 公共组件:TitleBar / StatusStrip / LedIndicator / NumPadDialog /
ConfirmDialog / AlarmBanner / ParamControl / DataCard / FaultTable
- `pages/` 各界面(继承 BasePage),对应关系如下:
`widgets/` 公共组件,对应关系如下:
| 组件 | 文件(.h / .cpp) | 类名 |
|---|---|---|
| 顶条(高 98px) | titlebar | TitleBar |
| 底部状态条 | statusstrip | StatusStrip |
| 指示灯(自绘圆形渐变 + 外发光) | ledindicator | LedIndicator |
| 数字键盘弹窗(模态) | numpaddialog | NumPadDialog |
| 确认弹窗 | confirmdialog | ConfirmDialog |
| 告警横幅 | alarmbanner | AlarmBanner |
| 参数调节控件 | paramcontrol | ParamControl |
| 数据卡片 | datacard | DataCard |
| 故障分页表格 | faulttable | FaultTable |
- `pages/` 各界面(继承 BasePage),对应关系如下:
| 界面 | 文件(.h / .cpp) | 类名 |
|---|---|---|
| 页面基类 | base | BasePage |