diff --git a/.workbuddy/memory/2026-07-02.md b/.workbuddy/memory/2026-07-02.md new file mode 100644 index 0000000..601a670 --- /dev/null +++ b/.workbuddy/memory/2026-07-02.md @@ -0,0 +1,6 @@ +# 2026-07-02 工作日志 + +- **产品介绍页重做**:将 `deploy/landing/index.html` 从暗色科技风改为明亮风格单屏页面(左右分栏→全屏背景图融合) +- **生图技能创建**:创建了 `agnes-image` 用户级技能,使用 Agnes Image 2.1 Flash 模型(apihub.agnes-ai.com),无水印,支持文生图/图生图 +- **API Key 已内置在技能脚本中**:`sk-ib7i...M2z` +- **测试通过**:生成充电柜产品图成功,25秒出图 diff --git a/.workbuddy/memory/MEMORY.md b/.workbuddy/memory/MEMORY.md new file mode 100644 index 0000000..770b791 --- /dev/null +++ b/.workbuddy/memory/MEMORY.md @@ -0,0 +1,6 @@ +# 项目长期记忆 + +## 用户偏好 +- **产品介绍页风格**:偏好明亮/浅色风格,不要暗色科技风;单屏不滚动布局 +- **生图能力**:项目有 ImageGen 文生图工具可用,可用于生成产品渲染图等 +- **操作规则**:开发/修改程序前必须确认需求,不可自说自话操作;生产环境服务器文件和数据必须用户授权后才可动 diff --git a/AGENTS.md b/AGENTS.md index c3f6722..2dd0037 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -410,6 +410,49 @@ operation_log(操作日志) | energy_stats | 能耗统计表 | | operation_logs | 操作日志表 | +### Redis 实时状态存储 + +设备实时状态通过 Redis Hash 层级存储,按 `status_post` 上报内容解析写入。 + +**层级结构:** + +``` +device:{imei} # 设备级 Hash +├─ online = "1" # 在线标记(TTL 300秒) +├─ rssi = "85" # 信号强度 +├─ pow_fail_dc = "0/1" # 直流停电(12V掉电) +├─ pow_fail_ac = "0/1" # 交流停电(380V掉电) +└─ device:{imei}:board:{board_idx} # 板级 Hash(仓控板1~N) + ├─ status_hex = "000100020003000400050006" # 原始hex状态 + └─ device:{imei}:board:{board_idx}:ch:{0-5} # 通道级 Hash(6仓) + ├─ on = "0/1" # 充电中 + ├─ full = "0/1" # 充满 + ├─ fault = "0/1" # 故障 + └─ hex = "00010002" # 原始hex +``` + +**写入时机:** +| 事件 | 写入位置 | 说明 | +|------|----------|------| +| `login` | `device:{imei}.online` | 标记在线,设置TTL 300秒 | +| `status_post` | `device:{imei}` + board + ch | 解析status字典,按层级写入 | +| `pow_fail` | `device:{imei}.pow_fail_dc/ac` | 更新停电状态 | + +**通道状态映射(hex → 语义):** +- 空闲(idle) +- 插入(inserted) +- 充电中(charging) +- 充满(full) +- 故障(fault) + +> ⚠️ hex编码格式待硬件团队最终确认,当前实现预留状态字段,按 bit 位解析。 + +**API 接口:** +| 接口 | 说明 | 查询方式 | +|------|------|----------| +| `GET /api/cabinets/filter` | 设备列表(设备级状态) | Pipeline 批量 HGET,1次往返 | +| `GET /api/cabinets/realtime-status?imei=xxx` | 单设备详情(板级+通道级) | KEYS 扫描 + HMGET | + ## TCP通讯协议 - 长连接,无需PING包 diff --git a/README.md b/README.md index 49e4b29..0c7c12c 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,8 @@ ## 技术栈 - **后端**:Rust + Axum -- **前端**:React + Arco Design Pro +- **前端**:React + Arco Design Pro(管理端) +- **H5用户端**:Taro + React(跨平台,支持 H5 / 微信小程序) - **数据库**:MySQL(阿里云RDS) - **缓存**:Redis(阿里云Redis) - **设备通讯**:TCP长连接(柜控板4G模块,Air780E Cat.1) @@ -21,9 +22,12 @@ charging-cabinet/ ├── tasks/ # 任务文件(opencode执行) ├── docs/ # 开发文档、协议文档 ├── software/ -│ ├── server/ # Rust后端 -│ └── web/ # React前端 +│ ├── api-server/ # Rust API服务 +│ ├── device-server/ # Rust TCP设备服务 +│ ├── web/ # React管理端前端 +│ └── h5-taro/ # H5用户端(Taro + React) ├── hardware/ # 硬件资料(原理图/PCB等) +├── deploy/ # 部署配置 └── test/ # 测试用例/报告 ``` diff --git a/deploy/landing/cabinet.png b/deploy/landing/cabinet.png deleted file mode 100644 index 875a45f..0000000 Binary files a/deploy/landing/cabinet.png and /dev/null differ diff --git a/deploy/landing/hero-bg.png b/deploy/landing/hero-bg.png new file mode 100644 index 0000000..2daa256 Binary files /dev/null and b/deploy/landing/hero-bg.png differ diff --git a/deploy/landing/index.html b/deploy/landing/index.html index f2808cd..5142e92 100644 --- a/deploy/landing/index.html +++ b/deploy/landing/index.html @@ -1,466 +1,204 @@
- - -36仓独立充电,4G远程管理,多重安全防护。为电动车换电场景打造的下一代智能充电解决方案。
-
- 为换电场景设计的全栈解决方案
-每个仓体独立控制,支持48V/60V/72V直流适配,电流5A-20A可调。直流快充1-2小时充满,高效运营。
-支持星恒Modbus、天能485等多种BMS协议,平台远程配置,自动识别电池参数,安全充电。
-过充/过温/过流/短路保护,烟感+喷淋联动,浸水保护,6路温控实时监测,确保充电安全。
-4G TCP长连接,实时状态监控,远程开门/禁用/OTA升级,完整后台管理系统,高效运维。
-36仓独立直流快充,4G远程实时管控,多重安全防护体系。从硬件到云端,全栈自研的智能充电解决方案。
+ +