- BLE: 修复 BlueZ LocalName 与 Includes 冲突,串行注册与退避 - HTTP: 语音对话补 Live2D talking 标志与 session;Web 补 X-Session-Id - Flutter: 角色/对话/模型页 + API,Gradle/依赖升级,麦克风权限 - 文档: 新增 docs/STATUS.md,校准 CLAUDE/PROGRESS/README - 清理: 移除根目录截图与临时模型,运维脚本迁入 scripts/device
66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
# ShowenV2 — 数字生命窗口平台
|
||
|
||
基于 Rust 的跨平台插件微内核架构,支持全息/VR/AR/屏幕显示,承载虚拟宠物、数字人、AI 歌姬、3D 模型等数字生命内容。
|
||
|
||
## 架构概览
|
||
|
||
```
|
||
ShowenV2/
|
||
├── CLAUDE.md / docs/STATUS.md # 管理手册 · 功能成熟度板
|
||
├── src/
|
||
│ ├── core/ # 插件微内核(消息/配置/动态插件/版本)
|
||
│ └── plugins/ # video · http · ble · wifi · device · screen · live2d · ai
|
||
├── configs/ # 角色内容包 JSON
|
||
├── clients/flutter/ # 安卓控制 App(M1 遥控 + M2.1 对话骨架)
|
||
├── scripts/device/ # 设备运维脚本
|
||
├── plugin-sdk/ · plugins/ # 动态插件 SDK 与示例
|
||
├── tests/ # M1.2 集成测试
|
||
└── docs/ # PRD / 测试计划 / STATUS
|
||
```
|
||
|
||
**功能做到哪了**:请先读 [`docs/STATUS.md`](docs/STATUS.md),勿仅看提交日期。
|
||
|
||
## 技术栈
|
||
|
||
- **语言**: Rust (edition 2021)
|
||
- **视频**: OpenCV 0.66
|
||
- **HTTP**: warp + tokio
|
||
- **BLE**: D-Bus + BlueZ (GATT)
|
||
- **WiFi**: nmcli
|
||
- **插件加载**: libloading
|
||
- **远程仓库**: ureq + flate2 + tar
|
||
|
||
## 动态插件系统
|
||
|
||
ShowenV2 支持两种插件模式:
|
||
|
||
1. **静态插件** — 编译时链接(video, http, ble, wifi, device, screen, live2d, ai 等)
|
||
2. **动态插件** — 运行时加载 `.so` 文件,通过 `extern "C"` FFI + JSON 序列化通信
|
||
|
||
动态插件特性:
|
||
- 多版本管理 (`plugin_store/` 目录结构)
|
||
- 远程仓库下载安装 (HTTP + tar.gz)
|
||
- 错误自动回退 (AutoRollback / DisableAndLog)
|
||
- REST API 管理 (`/api/plugins/*`)
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 验证配置
|
||
cargo run -- --validate --config configs/dog_state_machine.json
|
||
|
||
# 运行
|
||
cargo run -- --config configs/dog_state_machine.json
|
||
|
||
# 测试
|
||
cargo test --workspace
|
||
```
|
||
|
||
## 硬件与平台定位
|
||
|
||
- **平台定位**: ShowenV2 是通用数字生命窗口平台,不局限于“全息宠物播放器”
|
||
- **分辨率支持**: 支持 8K 以内所有分辨率显示
|
||
- **显示类型**: 支持 AR、VR、XR、普通屏幕、全息显示、投影、LED 矩阵,以及任何可运行的显示设备
|
||
- **当前调试环境**: Debian 11 KDE 桌面 (`ARM64` / `aarch64`)
|
||
- **跨平台策略**: 当前以 Linux/ARM64 为主,架构已为扩展到其他平台预留空间
|