package com.ard.work.sdk.zlxd.netty.message.response; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import javax.xml.bind.annotation.*; import java.util.List; /** * 类描述:获取设备状态响应 * * @author lsy * @since 2026/2/2 9:14 */ @EqualsAndHashCode(callSuper = true) @Data @NoArgsConstructor @XmlRootElement(name = "Message") // 根节点与父类一致 @XmlAccessorType(XmlAccessType.FIELD) public class GetDeviceStateResponse extends BaseXmlResponse { /** * 设备参数信息 * 显式注解,匹配XML的节点 */ @XmlElement(name = "parameters") private Parameters parameters; // ===================== 公共内部实体类 ===================== @Data @XmlAccessorType(XmlAccessType.FIELD) public static class Parameters { /** * 设备ID */ @XmlElement(name = "puId") private String puId; /** * 运行时长(秒) */ @XmlElement(name = "runningTime") private Integer runningTime; /** * 媒体流数量 */ @XmlElement(name = "mediaNum") private Integer mediaNum; /** * 多个媒体流信息(核心:List 接收重复的 mediaInfo 节点) */ @XmlElement(name = "mediaInfo") private List mediaInfoList; /** * 算法控制值 */ @XmlElement(name = "algCtrl") private Integer algCtrl; /** * 算法状态 */ @XmlElement(name = "algStatus") private Integer algStatus; /** * 媒体流信息内部类(对应单个 mediaInfo 节点) */ @Data @XmlAccessorType(XmlAccessType.FIELD) public static class MediaInfo { /** * IP地址 */ @XmlElement(name = "IPAddress") private String ipAddress; /** * 端口号 */ @XmlElement(name = "port") private Integer port; /** * 媒体类型 */ @XmlElement(name = "mediaType") private Integer mediaType; /** * 流类型 */ @XmlElement(name = "streamType") private Integer streamType; /** * 封装类型 */ @XmlElement(name = "packType") private Integer packType; } } }