Remote API 提供了远程管理功能的接口,包括 MQTT 和 Modbus 服务的状态查询和管理。
接口路径: GET /remote/modbus/status
功能描述: 获取 Modbus TCP 服务的运行状态和所有设备的点位定义情况
请求参数: 无
响应数据结构:
{
"isRunning": true,
"listenPort": 502,
"deviceCount": 2,
"connectionCount": 0,
"deviceStatus": [
{
"deviceId": "pylon_bms",
"modbusId": 1,
"startAddr": 40000,
"isOnline": true,
"lastUpdateTime": "2024-01-01T12:00:00Z",
"error": "",
"totalRegisters": 10,
"pointMappings": [
{
"pointKey": "system.online_status",
"pointName": "设备在线状态",
"valueType": "EBool",
"startOffset": 0,
"registerCount": 1,
"isSystemPoint": true,
"description": "设备在线状态:0=离线,1=在线"
},
{
"pointKey": "system.timestamp",
"pointName": "通讯时间戳",
"valueType": "EUint32",
"startOffset": 1,
"registerCount": 2,
"isSystemPoint": true,
"description": "通讯时间戳:Unix时间戳(秒)"
},
{
"pointKey": "battery.voltage",
"pointName": "电池电压",
"valueType": "EFloat32",
"startOffset": 3,
"registerCount": 2,
"isSystemPoint": false,
"description": "电池电压"
}
]
}
]
}响应字段说明:
isRunning: Modbus 服务是否正在运行listenPort: 监听端口(默认 502)deviceCount: 设备数量connectionCount: 连接数量deviceStatus: 设备状态列表deviceId: 设备IDmodbusId: Modbus 从站IDstartAddr: 起始地址isOnline: 设备是否在线lastUpdateTime: 最后更新时间error: 错误信息(如果有)totalRegisters: 总寄存器数量pointMappings: 点位映射列表pointKey: 点位键名pointName: 点位名称valueType: 数据类型startOffset: 相对起始地址的偏移registerCount: 占用寄存器数量isSystemPoint: 是否为系统固定点位description: 点位描述
接口路径: GET /remote/mqtt/status
功能描述: 获取 MQTT 服务的运行状态和客户端连接情况
接口路径: POST /remote/mqtt/reload
功能描述: 重新加载 MQTT 服务配置
接口路径: POST /remote/modbus/reload
功能描述: 重新加载 Modbus 服务配置
请求参数: 无
响应数据结构:
{}功能说明:
- 重新从数据库加载 Modbus 配置
- 重新构建设备映射关系
- 更新设备处理器
- 如果配置发生变化,会重新启动相关服务
curl -X GET "http://localhost:8000/remote/modbus/status"curl -X GET "http://localhost:8000/remote/mqtt/status"curl -X POST "http://localhost:8000/remote/mqtt/reload"curl -X POST "http://localhost:8000/remote/modbus/reload"- Modbus 服务状态: 需要确保 Modbus 服务已正确配置和启动
- 设备映射: 设备映射信息基于设备的
GetExportModbusPoints()方法返回的点位 - 系统固定点位: 每个设备的前两个点位为系统保留(在线状态、时间戳)
- 寄存器映射: 支持多种数据类型的寄存器映射,字符串类型会被跳过
- 错误处理: 单个设备启动失败不会影响其他设备的运行
s_export_modbus: Modbus TCP 数据导出服务s_export_mqtt: MQTT 数据导出服务