fix(server): P0 代理非幂等不重发 + 跨进程 native 互斥复用 + 默认网卡 I210

R1: autostart 后禁止自动重发 flash/motor/send 等副作用路径;
    超时类失败也不再串打其它端口。
R2: README 默认网卡改为与代码一致的 I210。
R3: 命名互斥锁 + 先复用健康监听实例,避免 GUI/服务子进程互相 kill。
This commit is contained in:
cbb
2026-09-21 02:14:16 +08:00
parent 27a8fc1797
commit 67dd1702f0
2 changed files with 190 additions and 72 deletions
+3 -2
View File
@@ -320,8 +320,9 @@ esp32_app.vbs esp32_web.vbs serve.bat 三个启动入口
开着的实例关掉、从站带回 INIT);拉起时**必须带 `--parent-pid`**,既跳过
那段清场,也让它随本服务退出而自我了断,不留孤儿占着 Npcap 适配器和端口。
2. **网卡没开** → `ensureOpen()` 调 `/api/open`,代替用户去 `ecat.html` 点"连接"。
网卡匹配子串在工具栏「链路」右边的输入框里改(默认 `I226`,
存 `localStorage` 的 `dcu_ecat_adapter`)。
网卡匹配子串在工具栏「链路」右边的输入框里改(默认 `I210`,
存 `localStorage` 的 `dcu_ecat_adapter`;与 `device-link.js` /
`esp32_server.py` autostart / 页面输入框一致)。
3. **没进 OP** → `/api/motor/start` 内部自己走 PREOP→SAFEOP→OP(会自动重试一次,
最坏约 24s,所以前端超时给 30s、代理也给 30s)。
4. **循环没跑** → 同一个 `/api/motor/start` 起后台 PDO 循环。