波形解析相关
This commit is contained in:
205
tools/wave-tool/README.md
Normal file
205
tools/wave-tool/README.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# wave-tool 模块说明
|
||||
|
||||
## 模块定位
|
||||
|
||||
`wave-tool` 是 `tools` 下的波形处理模块,当前承担以下能力:
|
||||
|
||||
- 文本波形解析
|
||||
- COMTRADE `cfg/dat` 文件解析
|
||||
- RMS 波形计算
|
||||
- 波形明细组装
|
||||
- 波形特征值计算
|
||||
- 波形图片生成与上传
|
||||
|
||||
当前实现以 Spring Bean 方式对外提供能力,并由 `entrance` 模块直接聚合。
|
||||
|
||||
## 代码结构
|
||||
|
||||
```text
|
||||
wave-tool/
|
||||
├── src/main/java/com/njcn/gather/tool/wave/
|
||||
│ ├── bo
|
||||
│ ├── component
|
||||
│ ├── controller
|
||||
│ ├── dto
|
||||
│ ├── enums
|
||||
│ ├── param
|
||||
│ ├── service
|
||||
│ ├── utils
|
||||
│ └── vo
|
||||
└── temp/
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
- `component/WaveFileComponent`
|
||||
- 负责 COMTRADE 波形文件解析、RMS 计算、特征值计算
|
||||
- `component/WavePicComponent`
|
||||
- 负责波形图片绘制结果合成与上传
|
||||
- `service/impl/WaveServiceImpl`
|
||||
- 负责统一编排文本波形解析与 COMTRADE 解析链路
|
||||
- `utils/WaveUtil`
|
||||
- 负责前端查看明细组装
|
||||
- `utils/BitConverter`
|
||||
- 负责波形二进制字节转换
|
||||
- `temp/`
|
||||
- 保留原始参考代码,不作为正式运行入口
|
||||
|
||||
## 对外接口
|
||||
|
||||
### 1. 文本波形解析
|
||||
|
||||
- 路径:`POST /wave/parse`
|
||||
- Content-Type:`application/json`
|
||||
|
||||
请求体字段:
|
||||
|
||||
- `waveformText`
|
||||
- 波形文本内容,必填
|
||||
- `separator`
|
||||
- 分隔符,支持 `AUTO`、`TAB`、`SPACE` 或直接传入具体字符
|
||||
- `containsXAxis`
|
||||
- 是否显式包含 X 轴
|
||||
- `xColumnIndex`
|
||||
- X 轴列下标
|
||||
- `yColumnIndex`
|
||||
- Y 轴列下标
|
||||
- `skipHeaderLines`
|
||||
- 跳过的表头行数
|
||||
- `samplingInterval`
|
||||
- 单列波形采样间隔
|
||||
- `maxPointCount`
|
||||
- 返回最大点位数
|
||||
|
||||
返回字段:
|
||||
|
||||
- `containsXAxis`
|
||||
- `sourcePointCount`
|
||||
- `displayPointCount`
|
||||
- `ignoredLineCount`
|
||||
- `sampled`
|
||||
- `minX`
|
||||
- `maxX`
|
||||
- `minY`
|
||||
- `maxY`
|
||||
- `averageY`
|
||||
- `points`
|
||||
|
||||
### 2. COMTRADE 波形解析
|
||||
|
||||
- 路径:`POST /wave/parseComtrade`
|
||||
- Content-Type:`multipart/form-data`
|
||||
|
||||
文件字段:
|
||||
|
||||
- `cfgFile`
|
||||
- COMTRADE 配置文件
|
||||
- `datFile`
|
||||
- COMTRADE 数据文件
|
||||
|
||||
表单字段:
|
||||
|
||||
- `parseType`
|
||||
- 解析类型
|
||||
- `0`: 高级算法采样率 32-128
|
||||
- `1`: 普通展示
|
||||
- `2`: App 抽点
|
||||
- `3`: 原始波形
|
||||
- `ptType`
|
||||
- PT 接线方式
|
||||
- `0`: 星形
|
||||
- `1`: 三角
|
||||
- `2`: 开口三角
|
||||
- `pt`
|
||||
- PT 变比
|
||||
- `ct`
|
||||
- CT 变比
|
||||
- `monitorName`
|
||||
- 测点名称
|
||||
- `calculateRms`
|
||||
- 是否计算 RMS
|
||||
- `buildDetails`
|
||||
- 是否组装前端查看明细
|
||||
- `calculateEigenvalue`
|
||||
- 是否计算特征值
|
||||
- `dynamicThreshold`
|
||||
- 特征值算法是否使用浮动门槛
|
||||
- `generateInstantImage`
|
||||
- 是否生成瞬时波形图
|
||||
- `generateRmsImage`
|
||||
- 是否生成 RMS 波形图
|
||||
- `generateInstantZlImage`
|
||||
- 是否生成治理场景瞬时波形图
|
||||
- `generateRmsZlImage`
|
||||
- 是否生成治理场景 RMS 波形图
|
||||
|
||||
返回字段:
|
||||
|
||||
- `waveData`
|
||||
- 波形基础数据,包含 `cfg`、原始波形、RMS、标题等
|
||||
- `waveDataDetails`
|
||||
- 前端查看明细
|
||||
- `eigenvalues`
|
||||
- 特征值结果
|
||||
- `instantImagePath`
|
||||
- 瞬时波形图路径
|
||||
- `rmsImagePath`
|
||||
- RMS 波形图路径
|
||||
- `instantZlImagePath`
|
||||
- 治理场景瞬时波形图路径
|
||||
- `rmsZlImagePath`
|
||||
- 治理场景 RMS 波形图路径
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 文本波形
|
||||
|
||||
```json
|
||||
{
|
||||
"waveformText": "0,220\n1,221\n2,219",
|
||||
"separator": "AUTO",
|
||||
"containsXAxis": true,
|
||||
"maxPointCount": 2000
|
||||
}
|
||||
```
|
||||
|
||||
### COMTRADE 波形
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/wave/parseComtrade" \
|
||||
-F "cfgFile=@D:/data/test.cfg" \
|
||||
-F "datFile=@D:/data/test.dat" \
|
||||
-F "parseType=1" \
|
||||
-F "ptType=0" \
|
||||
-F "pt=1" \
|
||||
-F "ct=1" \
|
||||
-F "monitorName=测试测点" \
|
||||
-F "calculateRms=true" \
|
||||
-F "buildDetails=true" \
|
||||
-F "calculateEigenvalue=true" \
|
||||
-F "dynamicThreshold=true" \
|
||||
-F "generateInstantImage=true" \
|
||||
-F "generateRmsImage=true"
|
||||
```
|
||||
|
||||
## 依赖说明
|
||||
|
||||
模块自身直接声明的依赖仍然较轻,核心包括:
|
||||
|
||||
- `com.njcn:njcn-common`
|
||||
- `com.njcn:spingboot2.3.12`
|
||||
|
||||
但当前图片链路还依赖私有组件能力:
|
||||
|
||||
- `DrawPicUtil`
|
||||
- `FileStorageUtil`
|
||||
- `OssPath`
|
||||
- `PicCommonData`
|
||||
|
||||
因此,若要真实运行图片生成功能,需要确保这些依赖在实际环境中可用。
|
||||
|
||||
## 当前限制
|
||||
|
||||
- 当前未执行 `mvn` 编译或测试验证
|
||||
- `temp/` 中仍保留原始参考代码,后续如确认正式模块稳定,可再决定是否清理
|
||||
- 图片生成依赖私有绘图与文件存储组件,当前仅完成代码接入,未做运行态验证
|
||||
Reference in New Issue
Block a user