Files
DTU-RemtoeLCD/README.md

139 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DTU-RemoteLCD - 远程显示通信工具
**RemoDispBus** 协议兼容的远程 LCD 显示与按键模拟工具。通过网络连接 DTU 装置,在 Web 浏览器中实时查看 LCD 画面并模拟按键操作,适用于调试、监控等场景。
## 功能特性
- **实时屏幕显示**:将装置 LCD 显存以 1bpp 位图形式拉取并渲染为 PNG
- **按键模拟**:支持方向键、确认、返回、复归等按键
- **WebSocket 传输**:采用 Socket.IO服务端主动推送约 100ms 刷新
- **跨平台**:浏览器访问,无需安装客户端
## 环境要求
- Python 3.7+
- 与 DTU 装置网络互通(默认端口 7003
## 快速开始
### 1. 安装依赖
```bash
pip install -r requirements.txt
```
### 2. 启动服务
```bash
python remo_disp_server.py [装置IP]
```
启动后访问 **http://localhost:8181**
### 3. 使用说明
- 点击「连接」→ 输入装置 IP 和端口(默认 7003→ 连接
- 左侧显示装置 LCD 画面(约 100ms 刷新)
- 右侧使用方向键、确认、复归、返回进行按键操作
- 点击「断开」断开与装置的连接
**可选预连接**:启动时传入 IP 可预连接装置,例如:
```bash
python remo_disp_server.py 192.168.253.3
```
## 打包为 exeWindows
在项目目录下执行:
```bash
# 安装 PyInstaller 后打包
pip install pyinstaller
python -m PyInstaller remo_disp_server.spec --noconfirm
```
或直接双击运行 `build_exe.bat`
打包完成后可执行文件为 **dist\\remo_disp_server.exe**。双击运行,或在命令行:
```bash
dist\remo_disp_server.exe
dist\remo_disp_server.exe 192.168.253.3
```
运行后浏览器访问 http://localhost:8181。日志会输出到控制台同目录下会生成 `remo_disp.log`
## 项目结构
```
DTU-RemoteLCD/
├── remo_disp_server.py # Web 服务Flask + Socket.IO
├── remo_disp_server.spec # PyInstaller 打包配置
├── build_exe.bat # 一键打包脚本Windows
├── remo_disp_ui.html # Web 前端页面
├── requirements.txt # Python 依赖
├── static/ # 静态资源(可选)
│ └── favicon.ico # 网站图标
└── README.md
```
## 协议说明
| 项目 | 说明 |
|------|------|
| **端口** | 7003 |
| **工具 → 装置** | `[0xAA][功能码][长度高][长度低][数据...][CRC]` |
| **装置 → 工具** | `[0xBB][功能码][长度高][长度低][数据...][CRC]` |
| **CRC** | 数据区逐字节异或,取低 8 位 |
**功能码**
| 码 | 名称 | 说明 |
|----|------|------|
| 0 | KEEPLIVE | 保活 |
| 1 | INIT | 初始化,获取屏幕宽高、显存大小 |
| 2 | KEY | 按键 |
| 3 | LCDMEM | 读取显存(屏幕画面) |
## 按键映射
| 键名 | 协议码 | 说明 |
|------|--------|------|
| U | 0x02 | 上 |
| D | 0x40 | 下 |
| L | 0x10 | 左 |
| R | 0x08 | 右 |
| ENT | 0x20 | 确认 |
| ESC | 0x01 | 返回/取消 |
| RESET | 0x04 | 复归 |
| F2 | 0x80 | F2 |
## 依赖说明
| 依赖 | 用途 |
|------|------|
| Flask | Web 框架 |
| flask-socketio | WebSocket 支持 |
| python-socketio | Socket.IO 服务端 |
| Pillow | 1bpp 位图转 PNG |
| loguru | 结构化日志、错误追踪 |
## 日志与调试
- 后端使用 `loguru` 输出日志,默认会打印到控制台,并写入当前目录下的 `remo_disp.log`
-`remo_disp_server.py` 顶部有 `LOG_LEVEL` 常量:
- `LOG_LEVEL = "INFO"`:只输出 INFO/WARNING/ERROR 级别日志(默认)。
- `LOG_LEVEL = "DEBUG"`:输出包括 DEBUG 在内的详细调试信息。
- exe 版本(`remo_disp_server.exe`)同样会在运行目录生成 `remo_disp.log`,方便线下排查问题。
## 配置说明
- **Web 服务端口**:默认 8181`remo_disp_server.py``main()` 中修改
- **装置端口**:默认 7003连接时可输入自定义端口
- **Favicon**:将 `favicon.ico` 放入 `static/` 目录即可显示网站图标
## 许可证
本项目仅供内部调试使用。