up,需要画新PCB

This commit is contained in:
2026-03-30 20:01:45 +08:00
parent 4c81d35964
commit 4fad0c7d6e
7 changed files with 82 additions and 3 deletions
+42
View File
@@ -0,0 +1,42 @@
# 2026-03-30 日志
## 编译环境搭建(esp32c3_moonshine_travelers
- Python 3.14.0 已预装(C:\Python314
- 安装 PlatformIO 6.1.19`pip install platformio`
- PlatformIO Scripts 路径:`C:\Users\wuwen\AppData\Roaming\Python\Python314\Scripts`
- 已写入用户 PATH 永久生效(无需每次手动加)
- 平台工具链 `espressif32@6.11.0``framework-arduinoespressif32``toolchain-riscv32-esp` 已存在(之前工程留下)
- 固件目录:`code/firmware-2.7.15.567b8ea`,编译命令:`pio run -e esp32c3_moonshine_travelers`
## 遇到问题:Windows MAX_PATH 限制
- SparkFun ICM-20948 库解压时路径超过 260 字符 → `PackageException`
- 根因:`examples/Arduino/Example10_DMP_FastMultipleSensors/` 路径过长
- 修复方案:需要管理员权限执行以下命令启用 Windows 长路径支持:
```powershell
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
```
- 后续:用户反映编译成功(Windows 长路径问题已自行解决)
## 调试:节点不发公钥/节点名字对端看不到
- **根本原因**:设备 Flash 中残留 `owner.is_licensed = true`HamConfig 曾通过 App 下发并持久化)
- **公钥不发**`NodeInfoModule::allocReply()` 中 `is_licensed==true` 时主动清零公钥字段(Ham 法规要求)
- **名字对端不可见**`handleReceivedProtobuf()` 检查 `p.is_licensed != owner.is_licensed` 时直接丢包
- **解决**:擦除 Flash NVS 分区(`pio run -t erase`)后重烧,或通过 App 关闭 Licensed 开关
## 修复:切换 role 后 NodeInfo/公钥仍不广播(CLIENT_HIDDEN 遗留问题)
### Bug 1owner.role 不随 config.device.role 同步
- **位置**`AdminModule.cpp` `handleSetConfig()` device_tag 分支
- **原因**:改 role 时只更新 `config.device.role``owner.role`(广播字段)从不更新
- **修复**:在 `installRoleDefaults()` 调用后加 `owner.role = config.device.role;`
### Bug 2:从 CLIENT_HIDDEN 切回 CLIENT 后广播间隔不恢复
- **位置**`NodeDB.cpp` `installRoleDefaults()`
- **原因**CLIENT_HIDDEN 把 `node_info_broadcast_secs` 设为 `INT32_MAX`,切回 CLIENT 时没有对应的重置分支
- **修复**:新增 `CLIENT` / `CLIENT_MUTE` 分支,恢复 `default_node_info_broadcast_secs` 等默认值
### 额外确认
- **公钥不生成的前置条件**`config.lora.region == UNSET` 时 NodeDB::init() 跳过 PKI keygen;需先通过 App 设置 region 才会生成密钥对