|
|
|
|
@ -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`
|
|
|
|
|
|
|
|
|
|
|