feat(link): ConnectionHub 统一 WiFi/ECAT/BLE 端点与健康态
各页不再各自读写 dcu_esp_ip / dcu_ecat_adapter:deviceLink 提供 wifiBaseUrl/ecatPost/adapter API,OTA/CAN/motor/ecat_load/lab 走同一入口。 连接灯只覆盖在线布尔,保留调用方语义文案。
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
/* 判活阈值纯逻辑(随实测 seq 间隔自适应)住在 refresh-rate.js 的
|
||||
* 「ECAT 槽判活阈值」一节,纯函数以便脱离 DOM 自测。 */
|
||||
import { staleLimitMs } from "./refresh-rate.js";
|
||||
import { deviceLink } from "../common/device-link.js";
|
||||
|
||||
/** 单个 PDO 周期回传的状态槽数。
|
||||
* 固件 1.6.21 起段 2 密排整轮:一拍带齐总线电机(最多 9),空槽不占位。
|
||||
@@ -94,14 +95,8 @@ function fmtPeriod(ms) {
|
||||
export function createEcatTransport(ctx) {
|
||||
const { recordSlow, isTransient } = ctx;
|
||||
|
||||
/* 网卡匹配子串。与 ecat.html 的输入框默认值一致(I210,2026-09 网卡 I226→I210);
|
||||
* 存 localStorage 以便换网卡后不用每次重设。 */
|
||||
const LS_ADAPTER = "dcu_ecat_adapter";
|
||||
let adapterSubstr = "I210";
|
||||
try {
|
||||
const saved = localStorage.getItem(LS_ADAPTER);
|
||||
if (saved && saved.trim()) adapterSubstr = saved.trim();
|
||||
} catch (_) {}
|
||||
/* 网卡匹配子串:统一从 ConnectionHub 读写(dcu_ecat_adapter),与 OTA/lab 页共用。 */
|
||||
let adapterSubstr = deviceLink.getEcatAdapter();
|
||||
|
||||
/* ── 传输内部累积状态 ──
|
||||
* 这些都是"WiFi 侧由固件/GD32 代为缓存、EtherCAT 侧必须前端自己攒"的东西。 */
|
||||
@@ -530,7 +525,7 @@ export function createEcatTransport(ctx) {
|
||||
const v = String(substr || "").trim();
|
||||
if (!v || v === adapterSubstr) return false;
|
||||
adapterSubstr = v;
|
||||
try { localStorage.setItem(LS_ADAPTER, v); } catch (_) {}
|
||||
try { deviceLink.setEcatAdapter(v); } catch (_) {}
|
||||
started = false;
|
||||
lastSnapshot = null;
|
||||
try { await api("close", {}, 8000); } catch (_) { /* 没连接时无所谓 */ }
|
||||
|
||||
Reference in New Issue
Block a user