需要和Labview服务人员确认:
- Labview是否一键提供通信接口?用什么协议?
- 是否有接口文档(包括数据格式、端口号、指令规范)?
- 实时数据返回是push(主动推)还是polling(定时拉)?
- 是否已经部署在本地及其或局域网中?IP/端口是多少?
正确流程图(点击按钮 → 发送指令 → 接收数据 → 页面更新)
[1] 前端页面点击“开始反应”按钮
↓
[2] 前端通过 preload.js 向 Electron 主进程发起 ipcRenderer.send('labview-send', msg)
↓
[3] Electron 主进程(main.js)监听 ipcMain.on('labview-send') 接收该消息
↓
[4] Electron 主进程将该消息通过 TCP socket 发送到 LabVIEW(127.0.0.1:50000)
↓
[5] mock-labview-server.js 的命令接收服务监听 50000,接收到指令
↓
[6] mock 服务开始向本地 50001 端口的客户端(Electron)每 50ms 推送一次数据
↓
[7] Electron 主进程监听 50001(通过 net.createServer),接收到数据后通过 win.webContents.send('labview-data', data)
↓
[8] preload.js 监听 ipcRenderer.on('labview-data'),将数据转发给前端页面
↓
[9] 前端 Vue 页面监听 `onMounted(() => { ipcRenderer.on(...) })` 接收到数据,更新 ECharts 图表等 UI 展示
正在进一步整理中~