# Tools 模块说明

## 当前状态

`tools` 当前是工具能力聚合模块，但在本仓库内已经完成一次收口。

当前真实保留的子模块有：

- `activate-tool`
- `mms-mapping`
- `wave-tool`

因此，`tools` 现阶段仍然是聚合模块，但当前已实际承载激活工具、ICD/MMS 映射工具和波形查看工具三个子模块。

## 当前结构

```text
tools/
├── activate-tool/
├── mms-mapping/
└── wave-tool/
```

其中 `tools/mms-mapping` 当前 Maven `artifactId` 为 `mms-mapping`。

## activate-tool 的职责

`activate-tool` 当前提供的能力主要围绕设备授权与许可证：

- 生成设备申请码
- 生成激活码
- 校验激活码
- 读取本地许可证信息

从接口层看，当前主要围绕 `/activate/*` 路径提供能力。

## wave-tool 的职责

`wave-tool` 当前提供的能力主要围绕波形解析、查看数据组装与图片生成：

- 解析单列/双列文本波形
- 解析 COMTRADE `cfg/dat` 波形文件
- 计算 RMS 与特征值
- 组装前端查看明细
- 生成瞬时、RMS、治理场景波形图片

从接口层看，当前主要围绕 `/wave/*` 路径提供能力。

## mms-mapping 的职责

`mms-mapping` 当前提供的能力主要围绕 ICD 文件解析与 MMS 映射数据生成：

- 解析 ICD / SCL 文件结构
- 校验索引选择与绑定关系
- 生成映射任务结果与文档数据

从接口层看，当前主要围绕 `/api/mms-mapping` 路径提供能力。

## mms-mapping 配置

`mms-mapping` 当前支持以下配置项：

- `icd.mapping.default-template-path`：默认模板资源路径，默认值为 `template/DefaultCfg.txt`
- `icd.mapping.default-author`：请求未传作者时使用的默认作者，默认值为 `system`
- `icd.mapping.default-output-dir`：请求开启落盘但未指定目录时使用的默认输出目录，默认值为空字符串（即当前工作目录）

## 模块定位

当前 `activate-tool` 更适合作为平台级基础能力模块，而不是业务检测模块的一部分。

它的职责边界建议理解为：

- 负责授权相关的编码、解码和许可证文件处理
- 不负责检测业务本身
- 不负责系统级注册资源管理的全部逻辑

## 依赖关系

`tools/activate-tool`、`tools/mms-mapping` 与 `tools/wave-tool` 当前主要依赖：

- `com.njcn:njcn-common`
- `com.njcn:spingboot2.3.12`

并由 `entrance` 模块直接聚合使用。

## 文档说明

在本次 `P0` 收口前，`tools/README.md` 曾描述多个不存在于当前仓库中的工具子模块。
该描述已不再作为当前项目结构依据。

如果后续重新引入新的工具子模块，应：

- 同步更新 `tools/pom.xml`
- 同步更新本说明文档
- 在 `docs` 下补充模块边界与职责说明
