liusuyi
2026-05-12 9f327c33730ba10cb2d89aff99b727502232e968
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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的<parameters>节点
     */
    @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<MediaInfo> 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;
        }
    }
}