package com.dcs.equipment.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 设备数据请求 - 支持 ModbusTCP、OPC UA、MQTT 协议
 * @author: wangpx
 * @date: 2025-03-14 14:11
 */
@Data
@ApiModel(value = "设备数据请求")
public class DeviceRequest {
    @ApiModelProperty("协议类型：1-MODBUS_TCP, 2-OPC_UA, 3-MQTT，使用 CommProtocolType 常量")
    private Integer protocol;
    @ApiModelProperty("设备ID（Modbus slaveId / OPC UA session or node short id / MQTT clientId）")
    private Integer unitId;
    @ApiModelProperty(value = "数据类型 (1布尔, 2浮点数, 3整型)")
    private String dataType;
    @ApiModelProperty("资源/操作标识：如 Modbus functionCode，OPC UA namespaceIndex，MQTT Topic")
    private String resource;
    @ApiModelProperty("偏移量或索引：Modbus 的 startAddress，OPC UA 的 identifier，或 MQTT 可能留空")
    private Integer offsetOrIndex;
    @ApiModelProperty("数量或 QoS：Modbus 的 quantity，MQTT 的 qos，OPC UA 无需")
    private Integer lengthOrQos;
    @ApiModelProperty(value = "数据")
    private List<Object> data;
    @ApiModelProperty(value = "通讯地址")
    private String ipAddress;
    @ApiModelProperty(value = "通讯端口")
    private Integer port;
}