DTU-RemoteLCD - 远程显示通信工具

RemoDispBus 协议兼容的远程 LCD 显示与按键模拟工具。通过网络连接 DTU 装置,在 Web 浏览器中实时查看 LCD 画面并模拟按键操作,适用于调试、监控等场景。

功能特性

  • 实时屏幕显示:将装置 LCD 显存以 1bpp 位图形式拉取并渲染为 PNG
  • 按键模拟:支持方向键、确认、返回、复归等按键
  • WebSocket 传输:采用 Socket.IO服务端主动推送约 100ms 刷新
  • 跨平台:浏览器访问,无需安装客户端

环境要求

  • Python 3.7+
  • 与 DTU 装置网络互通(默认端口 7003

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 启动服务

python remo_disp_server.py [装置IP]

启动后访问 http://localhost:8181

3. 使用说明

  • 点击「连接」→ 输入装置 IP 和端口(默认 7003→ 连接
  • 左侧显示装置 LCD 画面(约 100ms 刷新)
  • 右侧使用方向键、确认、复归、返回进行按键操作
  • 点击「断开」断开与装置的连接

可选预连接:启动时传入 IP 可预连接装置,例如:

python remo_disp_server.py 192.168.253.3

项目结构

DTU-RemoteLCD/
├── remo_disp_server.py    # Web 服务Flask + Socket.IO
├── remo_disp_ui.html      # Web 前端页面
├── requirements.txt      # Python 依赖
├── static/                # 静态资源(可选)
│   └── favicon.ico       # 网站图标
└── README.md

协议说明RemoDispBus

HMI/RemoeDisp/RemoDispBus.c 兼容:

项目 说明
端口 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

配置说明

  • Web 服务端口:默认 8181remo_disp_server.pymain() 中修改
  • 装置端口:默认 7003连接时可输入自定义端口
  • Favicon:将 favicon.ico 放入 static/ 目录即可显示网站图标

许可证

本项目仅供内部调试使用。

Description
网络调试的远程显示LCD模拟软件
Readme 648 MiB
Languages
Python 59.1%
HTML 39.6%
Batchfile 1.3%