diff --git a/AGENTS.md b/AGENTS.md index e16a7f6..6ac4dc6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,8 +30,9 @@ D:\charging-cabinet\ ├── tasks/ # 任务文件(opencode执行) ├── docs/ # 📖 **文档地图见 docs/README.md**(按用途分类,勿再平铺) │ ├── README.md # 文档索引:分类、权威性、旧名→现名映射、维护约定 -│ ├── protocol/ # 设备协议(冻结,对硬件交付)→ 柜控板固件对接文档.md ⭐唯一权威 +│ ├── protocol/ # 平台设备协议 → **只有 1 份**:柜控板固件对接文档.md ⭐唯一权威 TCP 协议 │ ├── tech/ # 平台技术文档 → API.md / 数据模型.md / 部署手册.md / 小程序用户端.md +│ ├── hardware/ # 硬件侧总线协议(RS485,**不是**平台 TCP 协议)→ 1TN协议标准_* │ ├── contract/ # 合同·规格·验收标准(商务依据,不描述实现) │ ├── compound-notes/ # 单点经验笔记(参考性) │ └── archive/ # ⛔ 历史留痕(只读,不代表现状,不可作依据) diff --git a/docs/README.md b/docs/README.md index 038a01d..93f9bc0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,14 +7,29 @@ | 目录 | 定位 | 权威性 | 谁该读 | |------|------|--------|--------| -| [`protocol/`](#protocol设备协议) | **设备协议**(冻结,对硬件工程师交付) | ⭐ **唯一权威** | 硬件工程师、固件、平台 TCP 相关开发 | +| [`protocol/`](#protocol设备协议) | **平台设备协议**(TCP,冻结,对硬件工程师交付) | ⭐ **唯一权威** | 硬件工程师、固件、平台 TCP 相关开发 | | [`tech/`](#tech平台技术文档) | **平台技术文档**(开发/运维必读) | ⭐ 权威(各自领域内) | 后端/前端/运维 | +| [`hardware/`](#hardware硬件侧总线协议) | **硬件侧总线协议**(RS485,**不是**平台 TCP 协议) | 硬件事实依据 | 硬件工程师、对接电源/BMS 的人 | | [`contract/`](#contract合同与规格) | **合同、规格、验收标准**(商务依据) | 事实依据,但不描述实现 | PM、验收方、新人了解范围 | | [`compound-notes/`](#compound-notes经验沉淀) | **单点经验笔记**(踩坑/技法) | 参考,非权威 | 遇到同类问题的人 | | [`archive/`](#archive历史归档) | **历史留痕**(只读,**不代表现状**) | ⛔ **不可作为依据** | 追溯历史决策时 | ## 二、谁是权威(口径优先级,避免"两份文档谁对"的扯皮) +> ### ⚠️ 关于"到底有几份 TCP 协议文档" +> +> **全仓只有一份**:`docs/protocol/柜控板固件对接文档.md`。 +> `docs/protocol/` 目录下**有且仅有这一个文件** —— 这是刻意的,便于一眼确认。 +> +> 历史上曾有三份内部件,已在协议 v1.1 前后删除(用户指示:只保留一份权威): +> `docs/tcp-protocol.md`、`docs/TCP报文交互示例.md`、`docs/柜控板-平台TCP接口文档.md`。 +> +> 若你看到的"另一份 TCP 协议"是下面这些,它们**都不是平台 TCP 协议**: +> - `docs/hardware/1TN协议标准_*` —— **RS485 总线协议**(仓控板 ↔ 翌工电源),另一条物理链路; +> - `docs/tech/API.md` 的「TCP 设备通讯协议」章节 —— 只有一句**指回权威文档的链接**,不重复内容; +> - `tasks/*.md` —— 任务草稿(**`tasks/` 已 gitignore,不入库**),文件名可能含"TCP协议" +> 但那是任务记录,不是规格。 + 1. **`protocol/柜控板固件对接文档.md`** —— 设备协议(帧格式 / `act` / 字段名 / 签名 / `id` 规则) 的**唯一权威**。协议**冻结**,设备端固件不可改。 2. **根目录 `AGENTS.md`** —— **平台侧实现口径**的权威:Redis 键与字段、接口行为、库结构、 @@ -25,14 +40,25 @@ ## 三、逐目录说明 -### protocol/ —— 设备协议 +### protocol/ —— 平台设备协议(**只有一份**) | 文件 | 说明 | |------|------| | `柜控板固件对接文档.md` | **唯一权威 TCP 文档**(v1.1.1)。帧格式、通用规则(`act`/`suc`/`msg_id`/60 秒超时/登录门控)、指令清单、签名算法与自测向量、安全码自愈、带注释报文示例(附 A)、变更记录(附 B)。**既是内部文档也可直接对外交付。** | -| `1TN协议标准_YG20240118-1_V1.0.md` | 仓控板 ↔ 电源(苏州翌工)1TN RS485 协议文本版 | + +⛔ **不要在这里放第二份协议文档**(哪怕是"内部稿""示例集""补充说明")—— +历史上正是这样分叉出三份,最后对不上。要补充内容就**改这一份并升版本号**(记入它的「附 B」)。 + +### hardware/ —— 硬件侧总线协议 + +| 文件 | 说明 | +|------|------| +| `1TN协议标准_YG20240118-1_V1.0.md` | 仓控板 ↔ 电源(苏州翌工)1TN RS485 协议,文本版 | | `1TN协议标准_苏州翌工电源_V1.0.pdf` | 同上,厂家原始 PDF | +> ⚠️ 这是**另一条物理链路**(柜内 485 总线),**与平台 TCP 协议无关** —— +> 别把它当成"第二份 TCP 协议"。硬件侧的其它总线协议(BMS:星恒 Modbus / 天能 485)如需入库,也放这里。 + ### tech/ —— 平台技术文档 | 文件 | 说明 | 入口 | diff --git a/docs/archive/审查报告-数据单位一致性-2026-07-06.md b/docs/archive/审查报告-数据单位一致性-2026-07-06.md index 10b0807..a550675 100644 --- a/docs/archive/审查报告-数据单位一致性-2026-07-06.md +++ b/docs/archive/审查报告-数据单位一致性-2026-07-06.md @@ -1,3 +1,16 @@ +> ## ⛔ 本文是**历史归档**(2026-07-06),**不代表现状,不可作为依据** +> +> 结论、路径、字段名都是**当时**的。文中引用的旧文档名与现名对应关系: +> +> | 文中旧名 | 现位置 | +> |---|---| +> | `docs/tcp-protocol.md` | `docs/protocol/柜控板固件对接文档.md`(**唯一权威**,已升到 v1.1.1) | +> | `docs/API.md` | `docs/tech/API.md` | +> | `docs/开发文档.md` | `docs/archive/开发文档.md` | +> +> 当前口径一律以 **`AGENTS.md`**(平台侧实现)+ **`docs/protocol/柜控板固件对接文档.md`**(设备协议)为准。 +> 文档分类总览见 `docs/README.md`。 + # 数据单位审查报告 — 充电柜项目 **日期:** 2026-07-06 diff --git a/docs/protocol/1TN协议标准_YG20240118-1_V1.0.md b/docs/hardware/1TN协议标准_YG20240118-1_V1.0.md similarity index 100% rename from docs/protocol/1TN协议标准_YG20240118-1_V1.0.md rename to docs/hardware/1TN协议标准_YG20240118-1_V1.0.md diff --git a/docs/protocol/1TN协议标准_苏州翌工电源_V1.0.pdf b/docs/hardware/1TN协议标准_苏州翌工电源_V1.0.pdf similarity index 100% rename from docs/protocol/1TN协议标准_苏州翌工电源_V1.0.pdf rename to docs/hardware/1TN协议标准_苏州翌工电源_V1.0.pdf diff --git a/docs/tech/API.md b/docs/tech/API.md index 81241c8..fe5cc85 100644 --- a/docs/tech/API.md +++ b/docs/tech/API.md @@ -1108,7 +1108,8 @@ Nginx 有独立的 `/api/wechat/` location 直连 API 服务,不经 `/api/pms/ ## TCP 设备通讯协议 -> TCP 设备通讯协议见 **[柜控板固件对接文档.md](柜控板固件对接文档.md)**(唯一权威,v1.1)。本文不再重复。 +> TCP 设备通讯协议见 **[docs/protocol/柜控板固件对接文档.md](../protocol/柜控板固件对接文档.md)** +> (**唯一权威**,v1.1.1)。**本文不再重复协议内容** —— 全仓只有这一份 TCP 协议规格文档。 --- diff --git a/docs/tech/数据模型.md b/docs/tech/数据模型.md index 28468ba..86c7d73 100644 --- a/docs/tech/数据模型.md +++ b/docs/tech/数据模型.md @@ -159,7 +159,7 @@ bit6 热失控|**bit7 有电池**(决定"空仓/在位")。 > 旧文档那张"空闲/插入/充电中/充满/故障"五态表**已废弃**:它既不是协议口径, > 也无法表达"电池在位但未充电"(`batt_status` bit7=1、bit0/bit1=0)这类真实状态。 -**API 接口(接口总表以 [docs/tech/API.md](docs/tech/API.md) 为准,这里只列与 Redis 存储强相关的两个):** +**API 接口(接口总表以 [docs/tech/API.md](API.md) 为准,这里只列与 Redis 存储强相关的两个):** | 接口 | 说明 | Redis 查询方式 | |------|------|----------------|