# Modbus配置接口文档

本文档描述了VWED系统中Modbus配置模块的API接口，包括Modbus设备配置的添加、删除、修改、查询等功能。

## 1. 新增Modbus配置

### 接口描述
添加新的Modbus设备配置信息。

### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-modbus-config/add`

### 请求参数

| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| name | String | 是 | 配置名称 |
| ip | String | 是 | 设备IP地址 |
| port | Integer | 是 | 通信端口号 |
| slave_id | Integer | 是 | 从站ID |
| address_type | String | 是 | 地址类型（"0X"-线圈寄存器, "1X"-离散输入寄存器, "3X"-输入寄存器, "4X"-保持寄存器） |
| address_number | Integer | 是 | 地址编号 |
| task_id | String | 否 | 关联的任务ID |
| target_value | Integer | 否 | 目标值 |
| reset_after_trigger | Boolean | 否 | 触发后是否重置，默认为false |
| reset_signal_address | Integer | 否 | 重置信号地址 |
| reset_value | Integer | 否 | 重置值 |
| remark | String | 否 | 备注信息 |
| tenant_id | String | 否 | 租户ID |

### 请求示例

```json
{
  "name": "测试Modbus配置",
  "ip": "192.168.1.100",
  "port": 502,
  "slave_id": 1,
  "address_type": "4X",
  "address_number": 1000,
  "target_value": 1,
  "remark": "设备1号控制器"
}
```

### 响应参数

```json
{
  "code": 200,
  "message": "Modbus配置添加成功",
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "测试Modbus配置"
  }
}
```

## 2. 删除Modbus配置

### 接口描述
删除指定的Modbus配置信息（软删除）。

### 请求方式
- **HTTP方法**: DELETE
- **接口路径**: `/api/vwed-modbus-config/{config_id}`

### 请求参数

| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| config_id | String | 是 | 配置ID (URL路径参数) |

### 响应参数

```json
{
  "code": 200,
  "message": "Modbus配置删除成功",
  "data": null
}
```

## 3. 修改Modbus配置

### 接口描述
修改已有的Modbus配置信息。

### 请求方式
- **HTTP方法**: PUT
- **接口路径**: `/api/vwed-modbus-config/{config_id}`

### 请求参数

| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| config_id | String | 是 | 配置ID (URL路径参数) |
| name | String | 否 | 配置名称 |
| ip | String | 否 | 设备IP地址 |
| port | Integer | 否 | 通信端口号 |
| slave_id | Integer | 否 | 从站ID |
| address_type | String | 否 | 地址类型 |
| address_number | Integer | 否 | 地址编号 |
| task_id | String | 否 | 关联的任务ID |
| target_value | Integer | 否 | 目标值 |
| remark | String | 否 | 备注信息 |

### 请求示例

```json
{
  "name": "更新后的配置名称",
  "ip": "192.168.1.101",
  "port": 503,
  "remark": "已更新的备注信息"
}
```

### 响应参数

```json
{
  "code": 200,
  "message": "Modbus配置更新成功",
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}
```

## 4. 获取Modbus配置详情

### 接口描述
获取指定Modbus配置的详细信息。

### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-modbus-config/{config_id}`

### 请求参数

| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| config_id | String | 是 | 配置ID (URL路径参数) |

### 响应参数

```json
{
  "code": 200,
  "message": "获取Modbus配置详情成功",
  "data": {
    "name": "测试Modbus配置",
    "ip": "192.168.1.100",
    "port": 502,
    "slave_id": 1,
    "address_type": "4X",
    "address_number": 1000,
    "task_id": "b1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "target_value": 1,
    "remark": "设备1号控制器"
  }
}
```

## 5. 获取Modbus配置列表

### 接口描述
获取系统中所有Modbus配置的列表信息，支持分页查询和条件筛选。

### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-modbus-config/list`

### 请求参数

| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| page | Integer | 否 | 页码，默认为1 |
| size | Integer | 否 | 每页记录数，默认为10 |
| name | String | 否 | 配置名称，用于筛选 |
| ip | String | 否 | 设备IP地址，用于筛选 |

### 响应参数

```json
{
  "code": 200,
  "message": "获取Modbus配置列表成功",
  "data": {
    "records": [
      {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "name": "测试Modbus配置1",
        "ip": "192.168.1.100",
        "port": 502,
        "slave_id": 1,
        "address_type": "4X",
        "address_number": 1000,
        "task_id": "b1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "task_name":"20",
        "target_value": 1,
        "remark": "设备1号控制器",
        "status": 1,
        "create_date": "2023-05-10 14:30:22"
      },
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-f123456789ab",
        "name": "测试Modbus配置2",
        "ip": "192.168.1.101",
        "port": 503,
        "slave_id": 2,
        "address_type": "3X",
        "address_number": 2000,
        "task_id": "c1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "task_name":"20",
        "target_value": 0,
        "remark": "设备2号控制器",
        "status": 1,
        "create_date": "2023-05-11 10:45:33"
      }
    ],
    "total": 2,
    "size": 10,
    "current": 1
  }
}
```

## 6. 测试Modbus连接

### 接口描述
测试与Modbus设备的连接是否正常。

### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-modbus-config/test-connection`

### 请求参数

| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| ip | String | 是 | 设备IP地址 |
| port | Integer | 是 | 通信端口号 |
| slave_id | Integer | 是 | 从站ID |
| address_type | String | 否 | 地址类型 |
| address_number | Integer | 否 | 地址编号 |

### 请求示例

```json
{
  "ip": "192.168.1.100",
  "port": 502,
  "slave_id": 1,
  "address_type": "4X",
  "address_number": 1000
}
```

### 响应参数

```json
{
  "code": 200,
  "message": "Modbus连接测试成功",
  "data": {
    "connected": true,
    "current_value": 12345
  }
}
```

## 数据模型说明

### Modbus地址类型

| 类型值 | 说明 |
|-------|------|
| 0X | 线圈寄存器 |
| 1X | 离散输入寄存器 |
| 3X | 输入寄存器 |
| 4X | 保持寄存器 |

### 状态码说明

| 状态码 | 说明 |
|-------|------|
| 200 | 操作成功 |
| 400 | 请求参数错误 |
| 404 | 未找到指定资源 |
| 500 | 服务器内部错误 |

### 配置状态说明

| 状态值 | 说明 |
|-------|------|
| 1 | 启用 |
| 0 | 禁用 | 