feat: 添加局域网设备发现功能和链路胶囊优化

- 实现局域网设备发现面板,支持探测ESP32中继板并自动切换端点
- 添加POST /api/lan/probe接口用于设备探测,返回三态判决结果
- 实现快扫和全段扫描两种模式,支持种子地址优先探测
- 添加端点唯一写手机制,防止多处同时修改设备IP
- 优化链路胶囊UI显示WiFi/EtherCAT/BLE连接状态和设备名称
- 修复EtherCAT链路OTA刷写期间PDO循环暂停和AL状态处理问题
- 调整PDO周期设置范围为0.125-4ms,支持亚毫秒显示为微秒
- 添加ESP32 WiFi使能开关控件样式和数据来源角标显示
This commit is contained in:
cbb
2026-10-13 00:48:34 +08:00
parent 514070b36d
commit eac3717f9a
41 changed files with 4229 additions and 934 deletions
+3 -3
View File
@@ -286,8 +286,8 @@
<button id="otaLogClearBtn" title="清空日志">清空</button>
</div>
<div class="ota-log" id="otaLog" aria-live="polite">
<div class="log-info">[就绪] 电机 Bootloader OTA · 先上传固件到 ESP32 → 发 0x000N0000 进 BOOT → 触发转发 → GD32 本地 relay(AES-128 + CAN stop-and-wait)</div>
<div>[信息] 选固件 → 上传并比对 flash SHA-256(失败重传≤2次)→ 发进BOOT命令 → 触发 /motor/ota/relay → GD32 完成握手/加密/传输 · 每包 48 B · 48 KB 上限</div>
<div class="log-info">[就绪] 电机 Bootloader OTA · 固件先灌进 GD32 → 发 0x000N0000 进 BOOT → GD32 本地 relay(AES-128 + CAN stop-and-wait)· 每包 48 B · 48 KB 上限</div>
<div>[信息] 进料与完整性核对按链路不同:<b>WiFi</b> = 上传到 ESP32,设备从 flash 读回算 SHA-256 与本地比对,再经 SPI 喂给 GD32;进 BOOT 帧由本页发。<b>EtherCAT</b> = 经 CoE 邮箱 0x2511 灌进 GD32 的 48KB 暂存区,分块 CRC32 + 整镜像 CRC32 由<b>从站在电机进 BOOT 之前</b>核对;进 BOOT 帧由 GD32 在已独占的通道上自己发(运动帧被通道锁挡住)。只插网线也能刷。两条链路共用同一个 GD32 引擎;刷写期间本链路的过程数据与轮询会暂停,其他电机也收不到运动指令。</div>
</div>
</div>
<!-- 命令序列 TAB -->
@@ -430,7 +430,7 @@
</div>
</div>
<script type="module" src="../js/motor/main.js?v=20260924g"></script>
<script type="module" src="../js/motor/main.js?v=20261011b"></script>
<!-- 单独打开本页(不在标签外壳里)时, 由本页自己持有 app 租约 -->
<script src="../js/common/app-lease.js"></script>