feat(motor): 支持 WiFi 与 EtherCAT 双链路传输
- 抽象电机传输层,WiFi 与 EtherCAT 实现分离,解码、状态面板、波形和命令序列共用 - 新增 EtherCAT 后端反向代理与自动拉起,解决跨端口 CORS 与预检失败问题 - 刷新速度按链路独立存储,支持 EtherCAT 低延迟读取与 WiFi 稳定轮询 - 更新电机页链路选择、不支持页签置灰样式、README 说明及相关测试脚本
This commit is contained in:
+15
-4
@@ -6,7 +6,7 @@
|
||||
<title>电机控制台 — Motor CAN FD Console</title>
|
||||
<!-- 空 favicon:阻止浏览器自动请求 /favicon.ico(本地静态服务无此文件会 404) -->
|
||||
<link rel="icon" href="data:,">
|
||||
<link rel="stylesheet" href="../css/motor.css?v=20260816a">
|
||||
<link rel="stylesheet" href="../css/motor.css?v=20260904i">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -29,6 +29,17 @@
|
||||
<span style="font-size:.72rem;color:var(--fg-dim);font-family:var(--font-mono)" id="devStatus">探测中…</span>
|
||||
</div>
|
||||
<div class="toolbar-sep"></div>
|
||||
<div class="conn-group" title="控制链路:WiFi 走 ESP32 固件 HTTP API;EtherCAT 走过程数据(自动拉起本地服务、打开网卡并进 OP,无需手工准备)。两种链路的界面与解码完全相同,仅数据通路不同">
|
||||
<label for="transportSelect" style="font-size:.72rem;color:var(--fg-muted);font-family:var(--font-mono);letter-spacing:.06em">链路</label>
|
||||
<select class="ch-select" id="transportSelect">
|
||||
<option value="wifi">WiFi</option>
|
||||
<option value="ecat">EtherCAT</option>
|
||||
</select>
|
||||
<input type="text" id="ecatAdapter" class="refresh-input" style="width:74px;display:none"
|
||||
value="I226" aria-label="EtherCAT 网卡匹配子串"
|
||||
title="EtherCAT 网卡描述匹配子串(默认 I226)。改这里会立即重连该网口,设置存本地。" />
|
||||
</div>
|
||||
<div class="toolbar-sep"></div>
|
||||
<div class="conn-group">
|
||||
<label for="chSelect" style="font-size:.72rem;color:var(--fg-muted);font-family:var(--font-mono);letter-spacing:.06em">通道</label>
|
||||
<select class="ch-select" id="chSelect">
|
||||
@@ -38,9 +49,9 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="toolbar-sep"></div>
|
||||
<div class="conn-group" title="电机状态刷新间隔(ms,50~5000)。同时驱动前端 HTTP 轮询与 GD32 0xC5 SPI 主动推送周期,端到端节拍一致">
|
||||
<div class="conn-group" title="电机状态刷新间隔(ms)。WiFi 与 EtherCAT 各记一份,切链路自动换(默认 WiFi 250ms / EtherCAT 50ms)。下限也按链路:WiFi 50ms,EtherCAT 可到 1ms(不限速,实际频率见 STATUS 面板)">
|
||||
<label for="refreshRate" class="refresh-hint">刷新速度</label>
|
||||
<input type="number" id="refreshRate" class="refresh-input" value="250" min="50" max="5000" step="50" aria-label="电机状态刷新间隔(毫秒)" />
|
||||
<input type="number" id="refreshRate" class="refresh-input" value="250" min="50" max="5000" step="50" aria-label="电机状态刷新间隔(毫秒,按链路分别记忆)" />
|
||||
<span class="refresh-hint">ms</span>
|
||||
</div>
|
||||
<div class="toolbar-right">
|
||||
@@ -388,6 +399,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module" src="../js/motor/main.js?v=20260816c"></script>
|
||||
<script type="module" src="../js/motor/main.js?v=20260904i"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user