100 lines
3.4 KiB
Markdown
100 lines
3.4 KiB
Markdown
# WDRemoteReceiverTest 界面改造说明
|
||
|
||
## 修改日期
|
||
2025-01-XX
|
||
|
||
## 修改内容
|
||
|
||
### 1. 界面布局重构
|
||
- **原布局**:左侧控制面板 + 右侧单个图像显示区域
|
||
- **新布局**:
|
||
- 上部:左右双图像显示区域(并排)
|
||
- 下部:紧凑的控制按钮区域(最大高度 200px)
|
||
|
||
### 2. 双目图像支持
|
||
- 添加 `labelLeftImage` 和 `labelRightImage` 两个 QLabel 用于显示左右目图像
|
||
- 新增信号:
|
||
- `uiShowLeftImage(const QImage&)`
|
||
- `uiShowRightImage(const QImage&)`
|
||
- 新增槽函数:
|
||
- `onShowLeftImage(const QImage&)`
|
||
- `onShowRightImage(const QImage&)`
|
||
- 在 `setupReceiver()` 中注册双目图像回调 `SetBinocularRawImageCallback`
|
||
- 单目图像回调 `SetRawImageCallback` 仍然保留,显示在左图像区域
|
||
|
||
### 3. 搜索设备和工作模式
|
||
- 启动后通过 UDP 搜索设备,并通过机器码 `Open`
|
||
- `StartWork(WDRemoteWorkMode::Detection)` 启动检测并订阅检测结果/raw 图像
|
||
- 实时 RTSP 传图使用 `WDRemoteWorkMode::LiveStream`,与检测模式互斥
|
||
|
||
### 4. 日志窗口独立
|
||
- 移除主界面的 `textLog` 控件
|
||
- 创建独立的日志对话框 `m_pLogDialog`
|
||
- 添加"显示日志"按钮 `btnShowLog`,点击后弹出日志窗口
|
||
- 所有日志信息写入独立窗口的 `m_pLogText`
|
||
|
||
### 5. 控制面板优化
|
||
- 连接配置改为单行横向布局
|
||
- 所有控制按钮排列在一行,使用竖线分隔符分组:
|
||
- 工作控制:开始、停止、单次
|
||
- 参数设置:曝光、增益、算法参数
|
||
- 订阅控制:订阅原始图像、订阅检测结果
|
||
- 其他:获取信息、自定义命令、显示日志
|
||
|
||
## 文件修改清单
|
||
|
||
### mainwindow.ui
|
||
- 完全重构布局为 VBoxLayout
|
||
- 上部:HBoxLayout 包含两个 QGroupBox(左图像、右图像)
|
||
- 下部:QGroupBox 控制面板,包含两行按钮
|
||
- 移除 textLog 控件
|
||
|
||
### mainwindow.h
|
||
- 添加 `#include <QDialog>` 和 `#include <QTextEdit>`
|
||
- 修改信号:`uiShowRawImage` → `uiShowLeftImage` + `uiShowRightImage`
|
||
- 修改槽函数:`onShowRawImage` → `onShowLeftImage` + `onShowRightImage`
|
||
- 添加槽函数:`onShowLogClicked()`
|
||
- 添加成员变量:
|
||
- `QDialog* m_pLogDialog`
|
||
- `QTextEdit* m_pLogText`
|
||
- 更新注释说明为"双目版本"
|
||
|
||
### mainwindow.cpp
|
||
- 构造函数:
|
||
- 连接 `btnShowLog` 信号
|
||
- 创建日志对话框
|
||
- 更新窗口标题为"WDRemoteReceiver 测试(双目)"
|
||
- `setupReceiver()`:
|
||
- 添加 `SetBinocularRawImageCallback` 回调注册
|
||
- 双目回调中分别处理左右目图像
|
||
- `onConnectClicked()`:
|
||
- 使用搜索列表中的机器码打开设备
|
||
- StartWork 时按模式启动订阅或实时传图
|
||
- `onAppendLog()`:写入 `m_pLogText` 而非 `ui->textLog`
|
||
- `onShowLeftImage()` / `onShowRightImage()`:分别更新左右图像 QLabel
|
||
- 新增 `onShowLogClicked()`:显示日志对话框
|
||
|
||
## 使用说明
|
||
|
||
### 编译
|
||
使用 Qt Creator 打开 `WDRemoteReceiverTest.pro` 编译,或使用命令行:
|
||
```bash
|
||
qmake
|
||
make
|
||
```
|
||
|
||
### 运行
|
||
1. 启动后自动搜索设备
|
||
2. 从设备列表选择设备并点击"连接"
|
||
3. 点击"开始"启动检测模式
|
||
4. 左右图像区域实时显示双目图像(如果服务端发送双目数据)
|
||
5. 点击"显示日志"查看详细日志信息
|
||
|
||
## 依赖接口
|
||
- `IWDRemoteReceiver::SearchDevices()`
|
||
- `IWDRemoteReceiver::Open()`
|
||
- `IWDRemoteReceiver::StartWork(WDRemoteWorkMode::Detection)`
|
||
- `WDRemoteBinocularRawImage` 数据结构
|
||
|
||
这些接口已在 `Module/WDRemoteReceiver` 中实现。
|