- 新增 Flutter 跨平台客户端项目 (clients/flutter/)
- 29 个 Dart 文件: 服务层/状态管理/5个页面/BLE配网
- BLE 蓝牙配网: 扫描设备、写入WiFi凭据、配网状态监听
- HTTP API 客户端: 覆盖全部端点 (播放/场景/WiFi/视频/配置/文件/插件)
- WebSocket 实时通信: 事件流 + 自动重连
- 暗色主题 Material 3 UI, 中文界面
- Android 配置: minSdkVersion 21, BLE/网络权限
- PRD 产品需求文档 + 开发任务看板
- Web UI 添加 APK 下载入口 (routes.rs)
- 下载弹窗 + 二维码 + /download/{filename} 静态文件路由
- BLE 插件增加自动重连循环 (ble/mod.rs)
- BLE 默认设备名修正为 'Showen' (config.rs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
HttpPlugin — Web UI + REST API
基于 warp 的 HTTP 服务插件,提供完整的控制 API 和实时 WebSocket 事件。
模块
| 文件 | 说明 |
|---|---|
mod.rs |
HttpPlugin 实现、HttpState 共享状态、WebSocket 事件编码 |
routes.rs |
全部 HTTP 路由定义、请求处理、内嵌 Web UI HTML |
API 端点
播放控制
GET /api/status— 播放状态POST /api/play/pause/next/previousPOST /api/goto— 跳转到指定索引GET /api/playlist— 播放列表POST /api/scene— 切换场景POST /api/trigger— 发送触发器
配置管理
GET /api/config— 完整配置GET /api/config/display— 显示配置POST /api/config— 更新配置(热重载)
媒体管理
GET /api/videos— 视频文件列表POST /api/videos/upload— 上传视频DELETE /api/videos/:name— 删除视频
WiFi / BLE
GET /api/wifi/status/scan/connect/ap/start/ap/stopPOST /api/ble/start/stop/GET /api/ble/status
插件管理 (动态插件)
GET /api/plugins— 列出所有插件状态GET /api/plugins/:id— 插件详情POST /api/plugins/:id/enable/disable/rollback/switchPOST /api/plugins/install— 远程安装POST /api/plugins/check-updates— 检查更新
WebSocket
ws://host:port/ws— 实时事件推送
依赖
- 依赖 VideoPlugin(启动顺序)