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:
+1
-11
@@ -7,9 +7,8 @@
|
||||
* 供 messages/signals/send 共享(ES Module 的 live binding 保证引用一致)。
|
||||
*/
|
||||
import {
|
||||
DEFAULT_ESP_IP, getSavedDeviceIp, saveDeviceIp
|
||||
DEFAULT_ESP_IP, getSavedDeviceIp
|
||||
} from '../common/base-url.js';
|
||||
import { deviceLink } from '../common/device-link.js';
|
||||
|
||||
// ==================== 共享状态 ====================
|
||||
export var state = {
|
||||
@@ -47,15 +46,6 @@ export function getDeviceIp() {
|
||||
return DEFAULT_ESP_IP;
|
||||
}
|
||||
|
||||
/** @description 记住设备 IP(status 回报或其它页写入),并广播给 ConnectionHub。 */
|
||||
export function setDeviceIp(ip) {
|
||||
if (!ip || !String(ip).trim()) return;
|
||||
var v = String(ip).trim();
|
||||
saveDeviceIp(v);
|
||||
try { deviceLink.setIp(v); } catch (_) {}
|
||||
if (el.toolIp) el.toolIp.value = v;
|
||||
}
|
||||
|
||||
/** @description 拼接设备基础 URL(http://<ip>)。 */
|
||||
export function getBaseUrl() {
|
||||
return 'http://' + getDeviceIp();
|
||||
|
||||
@@ -82,6 +82,8 @@ var GD32_ERR_DESC = {
|
||||
0xE3: 'TEC 过高(错误计数 >96,对端 ACK 失败率高)',
|
||||
0xE4: '邮箱满(3 个硬件邮箱全 PENDING,对端不 ACK)',
|
||||
0xE5: '参数无效(通道未启用/DLC 越界)',
|
||||
0xE6: '只听不发(该通道收发器已 Silent,S 脚置高;接收正常,可在 CAN 监控页切回发送)',
|
||||
0xE7: '该通道正被电机 OTA 独占(刷写结束自动恢复;重试无用,不是总线故障)',
|
||||
0xEE: 'SPI 帧解析失败(GD32 收到的帧 CRC/SOF 校验失败,通常是 SPI 字节丢失或 CS 时序冲突)'
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user