Compare commits

..

2 Commits

@ -86,6 +86,25 @@ AddTaskByFunc("ScanM9z", "ScanM9z", "@every 10m", m9zTtyApi.ScanM9z)
当前无故障
```
建议在该区域增加一个手动刷新按钮:
```text
刷新当前故障
```
按钮用途:
1. 现场人员可以立即重新读取当前故障,不必等待下一次自动刷新
2. 调试和验收时可以快速确认故障是否已恢复
3. 当通信短暂异常或页面刚恢复时,可以主动刷新当前状态
交互建议:
1. 点击后调用实时监控接口重新读取当前故障
2. 按钮请求期间显示 loading 或禁用,避免连续点击造成串口请求堆积
3. 刷新成功后更新当前故障区域
4. 刷新失败时提示“当前故障刷新失败”或保留原状态并显示错误提示
每条故障建议包含:
| 字段 | 说明 |
@ -172,6 +191,31 @@ for i := 0; i < 10; i++ {
没有配置时默认 `10`,但现场可以按实际回路数量调整。
后端实时接口需要返回当前实际参与扫描的设备数,便于前端展示和现场核对当前扫描范围。
建议字段:
```json
{
"scan_device_count": 4
}
```
字段含义:
| 字段 | 说明 |
| --- | --- |
| `scan_device_count` | 本次按配置实际参与 0x17 轮询的设备/回路数量 |
如果后续需要区分“参与扫描数量”和“成功读取数量”,可以再增加:
```json
{
"scan_device_count": 4,
"scan_success_count": 3
}
```
## 后端改动点
### 1. 调整 0x17 数据解析
@ -232,6 +276,22 @@ internal/module/m9zTtyApi/read.go
每个回路建议增加字段:
```json
{
"scan_device_count": 4,
"Loops": [
{
"has_fault": true,
"fault_msg": "回路1短路故障",
"fault_code": "01",
"faults": []
}
]
}
```
其中每个回路对象包含:
```json
{
"has_fault": true,
@ -241,6 +301,8 @@ internal/module/m9zTtyApi/read.go
}
```
顶层 `scan_device_count` 表示当前后端实际参与扫描的设备/回路数量。
同时把实时监控中的回路电流改为直接使用 0x17 的回路总电流字段,不再累加子模块电流。
### 4. 实时写入报警历史
@ -283,6 +345,14 @@ for i := 0; i < loopCount; i++ {
`loopCount` 从配置读取,未配置默认 10。
实时接口返回值需要带上当前扫描数量:
```json
{
"scan_device_count": 10
}
```
涉及位置:
```text
@ -314,6 +384,16 @@ internal/module/m9zTtyApi/cron.go
当前无故障
```
当前故障区域需要提供手动刷新按钮:
```text
刷新当前故障
```
点击后重新调用 `/m9z/getDeviceStatus2`,只刷新实时监控状态和当前故障显示,不需要弹确认框。
按钮请求期间应显示 loading 或禁用,避免连续点击造成重复串口请求。
### 2. 适配实时接口字段
调用接口:
@ -325,12 +405,19 @@ internal/module/m9zTtyApi/cron.go
读取字段:
```text
scan_device_count
Loops[].has_fault
Loops[].fault_msg
Loops[].fault_code
Loops[].faults
```
前端可在当前故障区域或调试信息中展示当前扫描数量,例如:
```text
当前扫描设备数4
```
### 3. 报警预览保持历史列表
页面:
@ -359,7 +446,7 @@ Loops[].faults
2. 后端改 `/m9z/getDeviceStatus2` 返回当前故障
3. 后端增加实时写入历史和去重
4. 后端增加 `loopCount` 配置
5. 前端实时监控页增加当前故障区域
5. 前端实时监控页增加当前故障区域和“刷新当前故障”按钮
6. 前端适配接口字段
7. 联调真实 0x17 报文:`01`、`02`、`04 01`、`04 02`、`04 03`

Loading…
Cancel
Save