Просмотр исходного кода

docs: 更新AGENTS.md文档,补充改动提醒并优化格式

1. 新增每次改动需更新文档的提醒
2. 优化表格排版和内容格式,统一代码块前后的空行
3. 补全了环境变量表格和排障速查表格的对齐格式
wenhongquan 2 дней назад
Родитель
Сommit
33f52794c9
2 измененных файлов с 29 добавлено и 15 удалено
  1. 5 0
      .trae/rules/git-commit-message.md
  2. 24 15
      AGENTS.md

+ 5 - 0
.trae/rules/git-commit-message.md

@@ -0,0 +1,5 @@
+---
+alwaysApply: true
+scene: git_message
+---
+中文!!!

+ 24 - 15
AGENTS.md

@@ -2,6 +2,9 @@
 
 本文件记录本项目开发/维护时需要注意的关键信息,方便下次快速上手。
 
+
+注意每次改动需要更新本文件,这非常重要!!!!!!!!
+
 ## 项目概览
 
 - **设备**:Rockchip RK3588 嵌入式开发板(`hostname=ido`,aarch64),作为 DTU(数据传输单元)运行。
@@ -26,6 +29,7 @@
 - 服务:`systemctl status frpc` / `systemctl restart frpc`
 
 frpc 配置摘要:
+
 ```toml
 serverAddr = "device.wenhq.top"
 serverPort = 8580
@@ -41,6 +45,7 @@ secretKey = "149-ssh-sk"
 ```
 
 **访问端(你的电脑)需要配置 visitor** 才能连:
+
 ```toml
 serverAddr = "device.wenhq.top"
 serverPort = 8580
@@ -54,11 +59,13 @@ serverName = "149-ssh"
 sk = "149-ssh-sk"
 bindPort = 6000
 ```
+
 然后 `ssh root@127.0.0.1 -p 6000`(密码 `123456`)即可连到 149 的 22 端口。
 
 ### 方式 2:FRP http 域名映射 80 端口
 
 frpc 里已有 http 代理,把本地 80 端口映射成 `pxj` 子域名:
+
 ```toml
 [[proxies]]
 name = "149-http"
@@ -67,6 +74,7 @@ localIP = "127.0.0.1"
 localPort = 80
 subDomain = "pxj"
 ```
+
 通过 `http://pxj.<frps主域名>` 访问(具体子域解析规则由 frps 端配置决定)。
 
 ### 方式 3:EasyTier VPN 组网
@@ -85,13 +93,14 @@ subDomain = "pxj"
 读取优先走 **C 语言读取器**,Python gpiod 只作回退。
 
 1. **C 二进制读取器**:`/root/dzxj_dtu/backend/scripts/dht11_reader`
+
    - 源码:`backend/scripts/dht11_reader.c`(用 libgpiod C API,open-drain + 高速采样)
    - 编译命令:`gcc -O2 -o dht11_reader dht11_reader.c -lgpiod`(设备已装 `libgpiod-dev`)
    - 用法:`dht11_reader [chip] [line]`,默认 `gpiochip0 19`
    - 输出 JSON:`{"valid":true,"humidity":43,"temperature":31,"raw":[...],"checksum":76}`(温湿度为整数,无小数)
    - **二进制必须存在**,否则回退到 Python gpiod,而 venv 里的 gpiod API 不兼容,会读取失败(症状:日志报 `module 'gpiod' has no attribute 'Chip'` 或读到 0.0)
-
 2. **Python gpiod 回退**:`backend/modules/dht11_sensor.py`
+
    - 设备 venv 装的是 pip `gpiod 1.5.4`,**API 与系统 apt 的 python3-libgpiod 1.4.x 完全不同**:
      - `gpiod.Chip(...)`(1.4.x) vs `gpiod.chip(...)`(1.5.x)
      - `gpiod.LINE_REQ_DIR_OUT` vs `gpiod.line_request.DIRECTION_OUTPUT`
@@ -101,13 +110,13 @@ subDomain = "pxj"
 
 ### 配置(环境变量,无默认值则使用 config.py 默认)
 
-| 变量 | 默认 | 说明 |
-|---|---|---|
-| `DHT11_ENABLED` | `true` | 是否启用 |
-| `DHT11_GPIO_PIN` | 无 | GPIO line 号(设备上为 `19`)|
-| `DHT11_GPIO_CHIP` | `gpiochip0` | GPIO chip |
-| `DHT11_POLL_INTERVAL` | `5` | 读取间隔秒 |
-| `DHT11_SIMULATE` | `false` | 是否模拟数据 |
+| 变量                    | 默认          | 说明                           |
+| ----------------------- | ------------- | ------------------------------ |
+| `DHT11_ENABLED`       | `true`      | 是否启用                       |
+| `DHT11_GPIO_PIN`      | 无            | GPIO line 号(设备上为`19`) |
+| `DHT11_GPIO_CHIP`     | `gpiochip0` | GPIO chip                      |
+| `DHT11_POLL_INTERVAL` | `5`         | 读取间隔秒                     |
+| `DHT11_SIMULATE`      | `false`     | 是否模拟数据                   |
 
 - GPIO 19(RK 平台 GPIO0_C3 系)接 DHT11 data 脚,DHT11 需上拉电阻(模块自带)。
 - 若 `DHT11_ENABLED=true` 但未配 GPIO_PIN 且非模拟,会跳过传感器启动并打 warning。
@@ -156,13 +165,13 @@ journalctl -u dzxj_dtu | grep -E 'DHT11|环境传感器'
 
 ## 排障速查
 
-| 症状 | 排查 |
-|---|---|
-| SSH 连不上 149 | 先 `ping 192.168.199.149`;再试 `ssh -p 6000 root@127.0.0.1`(frp stcp);若直接 IP 通但 6000 不通,查 `systemctl status frpc` |
-| frpc 起不来 | `journalctl -u frpc`;注意 stcp 配置字段是 `secretKey`(不是 `sk`),老版本报 `unknown field "sk"` |
-| 温湿度读到 0.0 或报 gpiod 错 | 确认 `dht11_reader` 二进制存在且可执行;`dht11_reader gpiochip0 19` 手测 |
-| easytier 组网后虚拟 IP 不通 | `--no-tun` 模式限制,虚拟 IP 不进路由表,只能走 port-forward |
-| MQTT 重启后没自动连 | 确认 `/root/dzxj_dtu/backend/mqtt_config.json` 存在;存在则看 `auto_connect_mqtt` 日志 |
+| 症状                         | 排查                                                                                                                                |
+| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| SSH 连不上 149               | 先`ping 192.168.199.149`;再试 `ssh -p 6000 root@127.0.0.1`(frp stcp);若直接 IP 通但 6000 不通,查 `systemctl status frpc` |
+| frpc 起不来                  | `journalctl -u frpc`;注意 stcp 配置字段是 `secretKey`(不是 `sk`),老版本报 `unknown field "sk"`                          |
+| 温湿度读到 0.0 或报 gpiod 错 | 确认`dht11_reader` 二进制存在且可执行;`dht11_reader gpiochip0 19` 手测                                                         |
+| easytier 组网后虚拟 IP 不通  | `--no-tun` 模式限制,虚拟 IP 不进路由表,只能走 port-forward                                                                      |
+| MQTT 重启后没自动连          | 确认`/root/dzxj_dtu/backend/mqtt_config.json` 存在;存在则看 `auto_connect_mqtt` 日志                                           |
 
 ## 注意事项(重要)