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
+5
View File
@@ -36,6 +36,7 @@
* 请求统一走 ConnectionHub(device-link.ecatPost),与 Owner 健康轮询同源。
*/
import { deviceLink } from '../common/device-link.js';
import { setCellSource } from '../common/utils.js';
import {
proveEcatLoop, ensureEcatLoopRepair, noteEcatLoopUp,
} from '../common/ecat-bus.js';
@@ -79,6 +80,7 @@ function render(d) {
setText(node, '--');
setCls(node, 'v');
setTitle(node, TIP_OFF);
setCellSource('mGd32Load', 'off');
return false;
}
var perm = Number(d.load_perm);
@@ -86,6 +88,7 @@ function render(d) {
setText(node, '--');
setCls(node, 'v');
setTitle(node, TIP_OFF);
setCellSource('mGd32Load', 'off');
return false;
}
var pct = perm / 10;
@@ -93,6 +96,8 @@ function render(d) {
/* ≥85% 变琥珀提示余量吃紧;其余用正常强调色 */
setCls(node, pct >= 85 ? 'v warn' : 'v ok');
setTitle(node, TIP_BASE + ';窗口序号 ' + d.seq + ',' + d.age_ms + 'ms 前更新');
/* /api/app/load 走 EtherCAT → 标 ECAT 来源 */
setCellSource('mGd32Load', 'ecat');
return true;
}