feat(ecat): 启动后把 ecat_native 提到 RealTime;跳拍优化实验脚本与报告

- esp32_server: Popen 后外部 SetPriorityClass(RT/High),native 自设会被钳成 High
- 入库 skip_* 标定/实验脚本与 REPORT_ecat_skip_opt_20260917
- 前端 WIP:layout/app/polling/boot_ecat/index
- 不含 lab/skip_meter 原始采样与 preview 截图
This commit is contained in:
cbb
2026-09-17 02:32:20 +08:00
parent b3a3a365bb
commit e91d53e0fc
22 changed files with 1956 additions and 61 deletions
+21 -28
View File
@@ -13,7 +13,7 @@
<!-- 空 favicon:阻止浏览器自动请求 /favicon.ico(本地静态服务无此文件会 404) -->
<link rel="icon" href="data:,">
<link rel="stylesheet" href="../css/base.css?v=857f83a5">
<link rel="stylesheet" href="../css/layout.css?v=targettabs20260914g">
<link rel="stylesheet" href="../css/layout.css?v=jumpconsole20260916b">
<link rel="stylesheet" href="../css/components.css?v=a2c3d4e5">
<link rel="stylesheet" href="../css/can.css?v=c06f5688">
<link rel="stylesheet" href="../css/responsive.css?v=46449483">
@@ -145,34 +145,27 @@
<div class="ble-launch-hint">点击按钮连接 / 断开蓝牙设备</div>
</div>
</div>
<!-- EtherCAT 模式:这条链路没有 IP / 配对概念,"连接对象"就是本机 EtherCAT 主站。
总线的打开/关闭由主站侧(ecat_native)负责,本页只在下面几个读数里反映现状。 -->
<!-- EtherCAT 模式:APP ↔ BOOT 角色徽章 + 一键切换 -->
<div id="ecatModeCards" style="display:none;">
<div class="ecat-mode-note">
主站经引导程序邮箱刷写 GD32 APP,<b>ESP32 离线不影响</b>
</div>
<div class="form-label">总线对面</div>
<div class="conn-indicator" id="bootEcatConn" style="margin-bottom:10px;">
<span class="light" id="bootEcatConnLight"></span>
<span id="bootEcatConnTxt">未探测</span>
</div>
<button class="btn btn-outline btn-block" id="bootEcatProbeBtn" data-action="boot-ecat-probe">探测对面是谁</button>
<button class="btn btn-outline btn-block" id="bootEcatRebootBtn" data-action="boot-ecat-reboot"
style="margin-top:8px;" title="写 APP 的 CoE 0x2502:00=1,让它复位进引导程序">让应用回引导程序</button>
<div class="file-info-grid" style="margin-top:10px;">
<div class="file-meta-item"><span>对面是谁</span><b id="bootEcatWho">--</b></div>
<div class="file-meta-item"><span>从站是否放行</span><b id="bootEcatArm">--</b></div>
</div>
<div class="file-info-grid" style="margin-top:8px;">
<div class="file-meta-item"><span>主站已缓存</span><b id="bootEcatSrv">0 B</b></div>
<div class="file-meta-item"><span>从站已写 flash</span><b id="bootEcatRecv">--</b></div>
</div>
<div class="file-meta-item" style="margin-top:8px;">
<span>设备名(0x1008)</span><b id="bootEcatName" style="word-break:break-all;">—</b>
</div>
<div class="file-meta-item">
<span>软件版本(0x100A)</span><b id="bootEcatSw">—</b>
<div class="jump-role-panel">
<div class="jump-role-badge" id="bootEcatRoleBadge" data-role="unknown"
data-action="boot-ecat-probe" role="button" tabindex="0"
title="点击重新探测对端角色(APP / BOOT)">
<span class="jump-role-label">当前角色 · 点击探测</span>
<strong id="bootEcatRoleTxt">未探测</strong>
<span class="jump-role-sw" id="bootEcatRoleSw">—</span>
</div>
<div class="jump-role-meta">
<div><span>设备名 0x1008</span><b id="bootEcatName">—</b></div>
<div><span>软件版本 0x100A</span><b id="bootEcatSw">—</b></div>
<div><span>从站放行</span><b id="bootEcatArm">—</b></div>
<div><span>主站缓存 / 已写 flash</span><b id="bootEcatRecv">—</b></div>
</div>
</div>
<button class="btn btn-primary btn-block jump-btn-primary" id="bootEcatRebootBtn"
data-action="boot-ecat-reboot"
title="按对端身份自动选方向:APP→0x2502 进 BOOT;BOOT→0x2503 跳回 APP">让应用回引导程序</button>
</div>
<!-- 连接文案只在顶栏 #pillConnTxt 显示,此处不再重复 -->
</div>
@@ -569,7 +562,7 @@
必须持有租约,否则服务端在租约归零宽限期后会把循环又停掉。
与 tabs.html / motor.html 并存时连接数>1,互不影响。 -->
<script src="../js/common/app-lease.js"></script>
<script type="module" src="../js/app.js?v=20260916e"></script>
<script type="module" src="../js/app.js?v=20260916h"></script>
<script type="module" src="../js/ota/console-mode.js?v=20260916d"></script>
<script type="module" src="../js/ble_ota.js?v=20260901d"></script>
<!-- 内联兜底:同步 BLE 按钮 data-ble-state 与 checkbox.checked