From 11c0e7231a4f95ba86a01cc4be0bc6ba51ba6e3c Mon Sep 17 00:00:00 2001 From: liujiangyong Date: Wed, 22 Jul 2026 15:36:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BF=83=E8=B7=B3?= =?UTF-8?q?=E9=97=B4=E9=9A=94=E6=97=B6=E9=97=B4=EF=BC=8C=E9=80=82=E9=85=8D?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=96=B0=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOGS/V1.2.5.md | 37 +++++++++++++++++++++++++++++++++++++ README.md | 6 +++--- package-lock.json | 4 ++-- package.json | 2 +- src/main/ipcRouter.js | 4 ++-- 5 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 CHANGELOGS/V1.2.5.md diff --git a/CHANGELOGS/V1.2.5.md b/CHANGELOGS/V1.2.5.md new file mode 100644 index 0000000..76c0e28 --- /dev/null +++ b/CHANGELOGS/V1.2.5.md @@ -0,0 +1,37 @@ +# V1.2.5 更新日志 + +- **更新日期**: 2026年07月22日 +- **版本号**: 1.2.5 + +## 功能调整 + +### 1. 心跳超时机制适配设备新协议 +- **适配设备 30 秒心跳周期**:根据设备端协议变更,将上位机心跳接收预期从“高频心跳”调整为“30 秒一次” +- **延长断连判定窗口**:心跳超时时间调整为 `60 秒`,避免设备在正常上报周期内被误判掉线 +- **优化检测轮询频率**:心跳检测间隔调整为 `15 秒`,在保证及时发现异常的同时降低无效轮询 + +## 技术细节 + +### 心跳参数调整 +- `HEARTBEAT_INTERVAL`: `5000ms` -> `15000ms` +- `HEARTBEAT_TIMEOUT`: `10000ms` -> `60000ms` + +### 协议说明同步 +- 更新 README 中的心跳机制说明 +- 同步最新安装包版本下载链接为 `1.2.5` + +## 影响范围 +- 设备 TCP 连接保活与掉线判定逻辑 +- 心跳超时后的自动断连与自动重连触发时机 +- 项目版本元数据与发布文档 + +## 依赖更新 +- 无依赖包更新 + +## 注意事项 +1. 本版本假定设备按新协议每 `30 秒` 上报一次心跳包;若设备端再次调整周期,需要同步评估上位机超时参数。 +2. 上位机仍仅将 `heartbeat:reply` 识别为心跳包,设备端需继续保持现有消息类型与换行分帧格式。 + +--- + +**完整更新内容请查看项目 Git 提交记录** diff --git a/README.md b/README.md index 5e8cace..7fa0b33 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ > 基于 Electron + React + Vite 开发的光电挠度仪上位机应用程序 ![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg) -![Version](https://img.shields.io/badge/version-1.2.1-green.svg) +![Version](https://img.shields.io/badge/version-1.2.5-green.svg) --- ## 最新版本下载 -- [Latest Releases](https://iotfileres.anxinyun.cn/FlexometerSetup/FlexometerSetup-1.2.4-setup.exe) 下载最新安装包 +- [Latest Releases](https://iotfileres.anxinyun.cn/FlexometerSetup/FlexometerSetup-1.2.5-setup.exe) 下载最新安装包 ## 目录 @@ -363,7 +363,7 @@ WRITE_CSV_HEADER // 写入CSV文件头 - 默认端口: 2233 - 协议: JSON over TCP - 消息格式: `{"command": "xxx", "type": "xxx", "values": "xxx"}\n\n` -- 心跳机制: 设备每2秒发送心跳包,应用5秒检测一次,10秒无心跳则认为断开 +- 心跳机制: 设备每30秒发送心跳包,应用15秒检测一次,60秒无心跳则认为断开 #### 自动重连机制 diff --git a/package-lock.json b/package-lock.json index fece591..d0052d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "FlexometerSetup", - "version": "1.2.0", + "version": "1.2.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "FlexometerSetup", - "version": "1.2.0", + "version": "1.2.5", "hasInstallScript": true, "dependencies": { "@ant-design/icons": "^5.6.1", diff --git a/package.json b/package.json index 5398aee..4716c28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "FlexometerSetup", - "version": "1.2.4", + "version": "1.2.5", "description": "An Electron application with React", "main": "./out/main/index.js", "author": "cles", diff --git a/src/main/ipcRouter.js b/src/main/ipcRouter.js index 0e97002..753f5bb 100644 --- a/src/main/ipcRouter.js +++ b/src/main/ipcRouter.js @@ -165,8 +165,8 @@ reconnectManager.on('reconnect-status', handleReconnectStatus) const tcpConnectionData = new Map() // 存储连接参数 // 心跳检测相关配置 -const HEARTBEAT_INTERVAL = 5000 // 心跳检测间隔 5秒(设备每2秒发送,我们5秒检测一次) -const HEARTBEAT_TIMEOUT = 10000 // 心跳超时时间 10秒(设备每2秒发送,超过10秒没收到就认为断开) +const HEARTBEAT_INTERVAL = 15000 // 心跳检测间隔 15秒(设备每30秒发送,我们15秒检测一次) +const HEARTBEAT_TIMEOUT = 60000 // 心跳超时时间 60秒(设备每30秒发送,超过60秒没收到就认为断开) const heartbeatTimers = new Map() // 保存每个IP的心跳检测定时器 const lastHeartbeatTime = new Map() // 保存每个IP的最后心跳时间