重构屏幕控制引擎 + 新增 Web 监控面板

- ScreenManager: 基于优先级(9/5/0)的统一屏幕控制引擎,替代 _tick 中的
  散乱 if-else 逻辑
- 四个亮屏事件: scheduled(p9), sensor(p9), manual(p5), external(p0)
- GPIO 回调: 电平变化立即触发亮屏(异步线程,不阻塞轮询)
- _fast_check: 每秒轻量评估,提高息屏超时精度(±1s 替代 ±30s)
- padsleep_web: 通过 IPC 读取守护进程状态的实时 Web 面板
  (GPIO 电平/屏幕状态/ADB 连接,端口 31400)
- padsleep-web.service: 关联 padsleep.service 的自启动服务
- install.sh: 修复 venv 初始化目录上下文,使用 requirements.txt
- IpcClient: 修复 socket 复用导致交替失败的问题
- padsleep_tui: 适配 ScreenManager 状态显示

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kushidou
2026-07-20 00:15:07 +08:00
co-authored by Claude Fable 5
parent 9940db451f
commit e6fbe550bb
8 changed files with 1134 additions and 103 deletions
+21
View File
@@ -80,6 +80,24 @@ python padsleep_tui.py
padsleep-config
```
### 启动 Web 监控面板
```bash
# 新终端窗口(需先启动守护进程)
python padsleep_web.py
# 或使用安装后的命令行入口
padsleep-web
```
然后在浏览器打开 `http://树莓派IP:5000` 查看仪表盘。
Web 面板功能:
- **GPIO 电平实时监控**:独立线程 50ms 轮询 GPIO 引脚,毫秒级变化展示
- **守护进程状态**:屏幕状态、亮屏事件、ADB 连接、传感器触发等
- **电平事件日志**:实时记录所有 GPIO 电平变化
- **历史波形**:最近 40 次电平变化可视化
TUI 快捷键:
| 按键 | 功能 |
@@ -212,6 +230,9 @@ GPIO 引脚号(BCM 编号)对照:
padsleep_adb/
├── padsleep.py # 守护程序主程序(含 GPIO 检测)
├── padsleep_tui.py # TUI 管理工具
├── padsleep_web.py # Web 监控面板(Flask + SocketIO
├── templates/
│ └── index.html # Web 面板前端
├── config.json # 配置文件
├── requirements.txt # Python 依赖
├── install.sh # 安装脚本