Browse Source

docs: 更新 README.md,增加重连功能和报警功能的详细说明。

master
cles 6 days ago
parent
commit
89d1a2ed49
  1. 149
      README.md

149
README.md

@ -3,7 +3,7 @@
> 基于 Electron + React + Vite 开发的传感器监测应用程序 > 基于 Electron + React + Vite 开发的传感器监测应用程序
![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg) ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)
![Version](https://img.shields.io/badge/version-1.0.0-green.svg) ![Version](https://img.shields.io/badge/version-1.0.8-green.svg)
--- ---
@ -48,11 +48,25 @@
- 图像发送时间间隔 - 图像发送时间间隔
- 零点计数设置 - 零点计数设置
- 数据帧率调节 - 数据帧率调节
- 视频帧率调节
- 阈值参数配置 - 阈值参数配置
- 无效数据计数
- **系统功能**: - **系统功能**:
- 系统清零使能 - 系统清零使能
- 图像发送控制(开始/停止) - 图像发送控制(开始/停止)
- **存储设置**: 自定义数据存储路径 - **重连功能**:
- 断线自动重连
- 可配置重连间隔(5-60秒)
- 重连状态实时显示
- **报警功能**:
- 可配置X/Y轴上下限阈值
- 超阈值自动报警
- 报警状态实时显示
- **数据记录**:
- 实时数据记录(CSV格式)
- 报警数据记录(CSV格式)
- 自定义存储路径
- 按日期和设备IP分类存储
#### 🔧 测量点管理 #### 🔧 测量点管理
@ -74,9 +88,16 @@
- 在"系统设置"页面可调整各项参数 - 在"系统设置"页面可调整各项参数
- 修改参数后点击"设置"按钮保存 - 修改参数后点击"设置"按钮保存
4. **数据存储** 4. **数据记录与存储**
- 应用会自动记录实时数据和报警数据 - 在"系统设置"页面配置存储路径
- 可在存储设置中自定义保存路径 - 启用"实时数据"记录功能可保存所有传感器数据
- 启用"报警功能"并勾选"报警数据"可记录超阈值数据
- 数据文件按日期自动分类:`存储路径/设备IP/实时数据(或报警数据)/YYYYMMDD.csv`
5. **报警监控**
- 在"系统设置"中配置X/Y轴上下限阈值
- 启用报警功能后,超阈值数据会触发报警
- 报警数据自动记录到单独的CSV文件中
### 故障排除 ### 故障排除
@ -86,12 +107,30 @@
- 确认设备 IP 地址和端口号正确 - 确认设备 IP 地址和端口号正确
- 重启应用和设备后重试 - 重启应用和设备后重试
**自动重连功能**
- 在"系统设置"中启用重连功能
- 可设置重连间隔(5-60秒)
- 重连状态会实时显示在界面上
**数据显示异常** **数据显示异常**
- 检查设备连接状态 - 检查设备连接状态
- 确认传感器配置是否正确 - 确认传感器配置是否正确
- 查看日志文件排查问题 - 查看日志文件排查问题
**数据记录问题**
- 确认存储路径是否有写入权限
- 检查磁盘空间是否充足
- 验证实时数据或报警数据开关是否已启用
**报警功能异常**
- 检查报警功能是否已启用
- 确认阈值设置是否合理
- 验证报警数据记录开关是否已勾选
**应用崩溃或无响应** **应用崩溃或无响应**
- 重启应用 - 重启应用
@ -128,7 +167,9 @@ electron-app/
├── src/ ├── src/
│ ├── main/ # 主进程代码 │ ├── main/ # 主进程代码
│ │ ├── index.js # 主进程入口 │ │ ├── index.js # 主进程入口
│ │ └── ipcRouter.js # IPC 路由处理 │ │ ├── ipcRouter.js # IPC 路由处理
│ │ ├── autoUpdaterManager.js # 自动更新管理
│ │ └── reconnectManager.js # 重连管理
│ ├── preload/ # 预加载脚本 │ ├── preload/ # 预加载脚本
│ │ └── index.js │ │ └── index.js
│ └── renderer/ # 渲染进程代码 │ └── renderer/ # 渲染进程代码
@ -137,8 +178,20 @@ electron-app/
│ ├── App.jsx # 应用主组件 │ ├── App.jsx # 应用主组件
│ ├── main.jsx # 渲染进程入口 │ ├── main.jsx # 渲染进程入口
│ ├── components/ # React 组件 │ ├── components/ # React 组件
│ │ ├── AutoUpdater/ # 自动更新组件
│ │ ├── DeflectionCollection/ # 挠度数据采集
│ │ ├── ImageCollection/ # 图像采集
│ │ ├── MeasurementPointSetting/ # 测量点设置
│ │ ├── SiderHeader/ # 侧边栏头部
│ │ └── SystemSettings/ # 系统设置
│ ├── stores/ # Zustand 状态管理 │ ├── stores/ # Zustand 状态管理
│ └── common/ # 公共模块 │ │ ├── deviceStore.js # 设备状态管理
│ │ └── rectangleStore.js # 矩形选择状态
│ ├── common/ # 公共模块
│ │ └── ipcEvents.js # IPC事件常量
│ ├── hooks/ # 自定义Hook
│ └── assets/ # 静态资源
├── logs/ # 日志文件目录
├── dist/ # 构建输出目录 ├── dist/ # 构建输出目录
├── electron-builder.yml # 打包配置 ├── electron-builder.yml # 打包配置
├── electron.vite.config.mjs # Vite 配置 ├── electron.vite.config.mjs # Vite 配置
@ -213,11 +266,35 @@ DEVICE_DISCONNECT // 设备断开
// 数据传输 // 数据传输
RESULT_REPLY // 传感器数据 RESULT_REPLY // 传感器数据
IMAGE_REPLY // 图像数据 IMAGE_REPLY // 图像数据
HEARTBEAT_REPLY // 心跳包
// 参数配置 // 传感器管理
SENSORS_GET / SET // 传感器配置 SENSORS_GET / SET // 传感器配置
// 基本参数配置
IMAGE_SEND_TIME_GET / SET // 图像发送间隔 IMAGE_SEND_TIME_GET / SET // 图像发送间隔
// ... 其他参数 ZERO_COUNT_GET / SET // 零点计数
RESULT_COUNT_GET / SET // 结果计数
DATA_FPS_GET / SET // 数据帧率
VIDEO_FPS_GET / SET // 视频帧率
THRESHOLD_GET / SET // 阈值
INVALID_DATA_COUNT_GET / SET // 无效数据计数
// 系统功能
IMAGE_SEND_ENABLED // 图像发送使能
IS_CLEAR_ZERO // 系统清零使能
// 重连功能
RECONNECT_CONFIG // 重连配置
RECONNECT_STATUS // 重连状态
// 文件操作
OPEN_DIRECTORY // 打开目录
SELECT_DIRECTORY // 选择目录
ENSURE_DIRECTORY // 确保目录存在
APPEND_TO_FILE // 追加文件内容
CHECK_FILE_EXISTS // 检查文件是否存在
WRITE_CSV_HEADER // 写入CSV文件头
``` ```
#### 状态管理 (`stores/`) #### 状态管理 (`stores/`)
@ -231,12 +308,37 @@ IMAGE_SEND_TIME_GET / SET // 图像发送间隔
主要组件模块: 主要组件模块:
- `AutoUpdater/`: 自动更新组件
- `DeflectionCollection/`: 挠度数据采集和可视化 - `DeflectionCollection/`: 挠度数据采集和可视化
- `ImageCollection/`: 图像采集显示 - `ImageCollection/`: 图像采集显示
- `MeasurementPointSetting/`: 测量点配置 - `MeasurementPointSetting/`: 测量点配置
- `SystemSettings/`: 系统参数设置 - `SystemSettings/`: 系统参数设置和数据记录配置
- `SiderHeader/`: 侧边栏头部 - `SiderHeader/`: 侧边栏头部
#### 数据记录系统
**实时数据记录**
- 格式:CSV文件,包含UTF-8 BOM确保中文正确显示
- 存储路径:`存储路径/设备IP/实时数据/YYYYMMDD.csv`
- 表头格式:`数据记录时间,测点1基准标靶,测点1计算系数,测点1xReal坐标,测点1yReal坐标,...`
- 记录条件:勾选"实时数据"开关且设备已连接
**报警数据记录**
- 格式:CSV文件,专门记录超阈值数据
- 存储路径:`存储路径/设备IP/报警数据/YYYYMMDD.csv`
- 表头格式:`报警记录时间,测点位置,基准标靶,计算系数,xReal坐标,yReal坐标,报警类型,阈值范围,超出值`
- 记录条件:同时勾选"报警功能"和"报警数据"开关
- 报警类型:X轴上限超出、X轴下限超出、Y轴上限超出、Y轴下限超出
**报警检测逻辑**
- 检测X/Y轴坐标是否超出设定的上下限阈值
- null或undefined值不参与报警检测
- 每个测点可同时触发X轴和Y轴报警
- 超出值计算:实际值与阈值的差值
### 日志系统 ### 日志系统
使用 `electron-log` 记录应用日志: 使用 `electron-log` 记录应用日志:
@ -251,13 +353,23 @@ IMAGE_SEND_TIME_GET / SET // 图像发送间隔
- 端口: 2230 - 端口: 2230
- 广播地址: 255.255.255.255 - 广播地址: 255.255.255.255
- 超时: 1s [1s内如果有设备继续响应则重置超时计时器] - 超时机制: 5秒全局超时,收到响应后1秒延迟等待更多设备
- 命令格式: `{"command": "name", "type": "get"}`
#### TCP 数据传输 #### TCP 数据传输
- 默认端口: 2233 - 默认端口: 2233
- 协议: JSON over TCP - 协议: JSON over TCP
- 消息格式: `{"command": "xxx", "type": "xxx", "values": "xxx"}\n\n` - 消息格式: `{"command": "xxx", "type": "xxx", "values": "xxx"}\n\n`
- 心跳机制: 设备每2秒发送心跳包,应用5秒检测一次,10秒无心跳则认为断开
#### 自动重连机制
- 可配置是否启用自动重连
- 重连间隔可设置(5-60秒)
- 连接超时时间为重连间隔的80%,最小3秒
- 重连状态实时通知渲染进程
- 支持心跳超时后自动重连
### 构建和部署 ### 构建和部署
@ -310,6 +422,19 @@ nsis:
- 组件文件使用 PascalCase 命名 - 组件文件使用 PascalCase 命名
- 样式文件使用 CSS Modules - 样式文件使用 CSS Modules
#### IPC 事件规范
- 所有IPC事件名称统一定义在 `common/ipcEvents.js`
- 事件名称使用 `模块:操作` 格式,如 `device:connect`
- 主进程和渲染进程必须使用 `IPC_EVENT` 常量,禁止硬编码字符串
- 文件操作事件统一使用 `file:` 前缀
#### 状态管理规范
- 使用 `useRef` 避免回调函数中的闭包问题
- 长期状态使用 Zustand 全局状态管理
- 组件内部状态优先使用 `useState`
#### 提交规范 #### 提交规范
使用语义化提交信息: 使用语义化提交信息:
@ -338,3 +463,5 @@ chore: 构建或工具相关
3. 提交更改 (`git commit -m 'feat: add amazing feature'`) 3. 提交更改 (`git commit -m 'feat: add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`) 4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 创建 Pull Request 5. 创建 Pull Request
---

Loading…
Cancel
Save