5 Commits
Author SHA1 Message Date
kushidouandClaude Fable 5 e6fbe550bb 重构屏幕控制引擎 + 新增 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>
2026-07-20 00:15:07 +08:00
kushidouandClaude Fable 5 9940db451f feat: 添加 GPIO 电平检测触发亮屏/息屏
新增 GPIOEventDetector 后台线程,以 50ms 间隔轮询 GPIO 引脚。
检测到电平变化时唤醒屏幕并启动 60 秒倒计时,到期无新变化则息屏。

- 添加 GPIOEventDetector 类,支持 RPi.GPIO 硬读取和 Mock 回退
- 集成到 PadSleepApp 主循环,GPIO 触发优先级高于定时亮屏时段
- TUI 状态面板新增 GPIO 行,显示引脚号和倒计时
- 支持通过配置文件调整引脚号(gpio_pin)和倒计时长度
- install.sh 修复:补装 rpi-lgpio 依赖

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:10:42 +08:00
kushidou e17d03cea9 集成 venv 方案: 安装脚本 + 服务文件适配虚拟环境
- install.sh: 创建 .venv、安装 adbutils、生成包装脚本使用 venv python
- padsleep.service: ExecStart 指向 .venv/bin/python3
- requirements.txt: 添加 venv 安装说明
- 解决 PEP 668 (externally-managed-environment) 问题
2026-07-10 19:45:50 +08:00
kushidou 203d5d15ef 将 ADB 调用从 subprocess 改造为 adbutils 库
- 移除 subprocess.run 调用,改用 adbutils 实现持久连接
- 添加 adbutils>=2.12.0 到 requirements.txt
- 更新 .gitignore 添加 Python 包相关条目
- 保持原有公共接口不变,确保兼容性
2026-07-10 09:11:43 +08:00
kushidou 4d0db4c390 基本功能实现和验证 2026-07-09 23:13:48 +08:00