doum
3 天以前 3c7399c25c0f35c8aa7cb6af1935e31d1a3f0102
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.doumee.core.device.model;
 
import com.doumee.core.utils.Constants;
 
import java.util.ArrayList;
import java.util.List;
 
public class ElectronicConstant {
 
    public static final String DEFAULT_AUTH_CODE = "1f29d378fc6792d5d2b735877993ffb7";
    public static final String DEFAULT_NONCE = "lvyOY7fcun719WkxF8ToVYatStgt";
    public static final String DEFAULT_NOTIFY_URL = "http://115.221.15.8:8055/electronic/electricalNotify";
    public static final String DEFAULT_API_URL = "http://api1.tqdianbiao.com";
    public static final String DEFAULT_API2_URL = "http://api2.tqdianbiao.com";
 
    /** 授权码,由数据字典 ELECTRICAL_PARAM 加载 */
    public static String auth_code = DEFAULT_AUTH_CODE;
    /** 签名随机串,由数据字典 ELECTRICAL_PARAM 加载 */
    public static String nonce = DEFAULT_NONCE;
    public static String debug_meter = "000066660942";
    /** 异步通知地址,由数据字典 ELECTRICAL_PARAM 加载 */
    public static String notify_url = DEFAULT_NOTIFY_URL;
    /** Api v1 根地址,由数据字典 ELECTRICAL_PARAM 加载 */
    public static String api_url = DEFAULT_API_URL;
    /** Api v2 根地址,由数据字典 ELECTRICAL_PARAM 加载 */
    public static String api2_url = DEFAULT_API2_URL;
 
 
    /**
     * 报警事件id查询表
     */
    public  enum warningDefId{
        w1001(1001,"A相有功功率反向",0,"指示电流方向是否正常,进出线接反时触发报警。"),
        w1002(1002,"B相有功功率反向",0,"指示电流方向是否正常,进出线接反时触发报警。"),
        w1003(1003,"C相有功功率反向",0,"指示电流方向是否正常,进出线接反时触发报警。"),
        w1004(1004,"断电报警",0,"指示线路通断状态,表端拉闸状态时触发报警,拉闸原因通常包含余额不足,手动拉闸,超负荷,开表盖。"),
        w1005(1005,"开盖报警",0,"支持开盖检测的设备表盖打开时触发报警,可防止非法打开电表盖的偷电行为。"),
        w1006(1006,"A相过载",0,"设备运行期间长时间超过设定的负荷限制,通常会引起电表跳闸断电。"),
        w1007(1007,"B相过载",0,"设备运行期间B相线路长时间超过设定的负荷限制,通常会引起电表跳闸断电。"),
        w1008(1008,"C相过载",0,"设备运行期间C相线路长时间超过设定的负荷限制,通常会引起电表跳闸断电。"),
        w1009(1009,"计量故障",0,"设备因电网剧烈波动或内部元器件损坏原因导致无法正常计量。"),
        w1010(1010,"电费透支",0,"开启预付费模式的电表余额欠费超过1元。"),
        w1011(1011,"余额不足一级报警",0,"开启预付费模式的电表余额小于设定的一级报警金额阈值。"),
        w1012(1012,"余额不足二级报警",0,"开启预付费模式的电表余额小于设定的二级报警金额阈值。"),
        w1013(1013,"电表连续通讯异常",0,"后台与设备连续通讯失败超过10次以上。"),
        w1014(1014,"设备信号弱",0,"设备信号完全无法保障通讯时报警。"),
        w1015(1015,"连续用电量过低",0,"系统设置一定时间段内用电量低于阈值触发报警,可用于检查用户异常或窃电行为。"),
        w1016(1016,"连续用电量过高",0,"系统设置一定时间段内用电量高于阈值触发报警,可用于检查用户异常用电行为。"),
        w1017(1017,"A相无功功率反向",0,"指示三相电表A相无功电能方向是否正常,进出线接反或负荷异常时触发报警。"),
        w1018(1018,"B相无功功率反向",0,"指示三相电表B相无功电能方向是否正常,进出线接反或负荷异常时触发报警。"),
        w1019(1019,"C相无功功率反向",0,"指示三相电表C相无功电能方向是否正常,进出线接反或负荷异常时触发报警。"),
        w1020(1020,"A相失压",0,"指示电表计量是否异常或三相电表A相是否存在不平衡现象。"),
        w1021(1021,"A相欠压",0,"指示电表计量是否异常或三相电表A相电网参数异常。"),
        w1022(1022,"A相过压",0,"指示电表计量是否异常或三相电表A相电网参数异常。"),
        w1023(1023,"B相失压",0,"指示电表计量是否异常或三相电表B相是否存在不平衡现象。"),
        w1024(1024,"B相欠压",0,"指示电表计量是否异常或三相电表B相电网参数异常。"),
        w1025(1025,"B相过压",0,"指示电表计量是否异常或三相电表B相是否存在不平衡现象。"),
        w1026(1026,"C相失压",0,"指示电表计量是否异常或三相电表C相电网参数异常。"),
        w1027(1027,"C相欠压",0,"指示电表计量是否异常或三相电表C相是否存在不平衡现象。"),
        w1028(1028,"C相过压",0,"指示电表计量是否异常或三相电表C相电网参数异常。"),
        w1043(1043,"温度异常",0,"指示电表是否检测到温度异常。"),
        w1044(1044,"总功率因数超下限",0,"指示三相电表总功率因数过低,用电质量差。(需特定款表支持)"),
        w1045(1045,"电流不平衡",0,"指示三相电表三相负荷不平衡,增加线路损耗。(需特定款表支持)"),
        w1046(1046,"电压不平衡",0,"指示三相电表三相负荷不平衡,增加线路损耗。(需特定款表支持)"),
        w1047(1047,"电流逆相序",0,"指示三相电表交流电电流的相位与电压相反。(需特定款表支持)"),
        w1048(1048,"电压逆相序",0,"指示三相电表三相电压的相序与正常顺序相反。(需特定款表支持)"),
        w1049(1049,"恶性负载",0,"又称阻性负载,指示电表负载中出现大功率直热式电器,易造成火灾等情况。(需特定款表支持)"),
        w1050(1050,"电动车充电检测",0,"识别特定类型电器接入负载端,提高用电安全。(需特定款表支持)"),
        w1051(1051,"漏电检测",0,"识别电路中是否存在漏电情况,提高用电安全。(需特定款表支持)"),
        w1052(1052,"调压器检测",0,"识别电路中是否存在调压器等装置绕过恶性负载检测。(需特定款表支持)"),
        w1053(1053,"电弧检测",0,"识别电路中是否存在电弧情况,防止引起火灾,提高用电安全。(需特定款表支持)"),
        w1029(1029,"关阀",0,"指示阀门通断状态,表端关阀状态时触发报警,关阀原因通常包含余额不足,手动关阀,电池耗尽,磁干扰等原因。"),
        w1030(1030,"阀门异常",0,"指示设备电子计量传感器部分是否正常工作或存在外部干扰。"),
        w1031(1031,"传感器异常",0,"指示设备电子计量传感器部分是否正常工作或存在外部干扰。"),
        w1032(1032,"磁干扰",0,"指示设备电子计量部分是否正常工作或存在外部干扰。"),
        w1033(1033,"电池欠压",0,"指示电池是否即将耗尽,电池完全耗尽后电子部分无法同步机械部分数据,无法通讯,不能正常扣减余额和关阀。"),
        w1034(1034,"通讯信号弱",0,"指示设备与采集器或服务器通讯能力减弱或无法通讯。"),
        w1035(1035,"水费透支",0,"开启预付费模式的水费余额欠费超过1元或0.1m³。"),
        w1036(1036,"余额不足一级报警",0,"开启预付费模式的水表余额小于设定的一级报警阈值。"),
        w1037(1037,"余额不足二级报警",0,"开启预付费模式的水表余额小于设定的二级报警阈值。"),
        w1038(1038,"水表连续通讯异常",0,"后台与设备连续通讯失败超过10次以上。"),
        w1039(1039,"连续用水量过低",0,"系统设置一定时间段内用水量低于阈值触发报警,可用于检查用户异常行为或窃水行为。"),
        w1041(1041,"设备信号弱",0,"设备信号完全无法保障通讯时报警。"),
        w1042(1042,"通讯设备长时间离线",0,"设备长时间离线,后台无法正常采集数据。"),
 
        ;
        // 成员变量
        private int key;
        private int type;// 0表示电表,1表示水表,9表示采集器
        private String name;
        private String info;
 
        // 构造方法
        warningDefId(int key,String name ,int type,String info) {
            this.key = key;
            this.type = type;
            this.info = info;
            this.name = name;
        }
 
        public static warningDefId getByKey(int key) {
            for (warningDefId c : values()) {
                if (c.getKey() == key) {
                    return c;
                }
            }
            return null;
        }
 
        public static List<warningDefId> listByDeviceType(int deviceType) {
            List<warningDefId> list = new ArrayList<>();
            for (warningDefId c : values()) {
                if (c.getType() == deviceType) {
                    list.add(c);
                }
            }
            return list;
        }
 
        public int getKey() {
            return key;
        }
 
        public void setKey(int key) {
            this.key = key;
        }
 
        public int getType() {
            return type;
        }
 
        public void setType(int type) {
            this.type = type;
        }
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public String getInfo() {
            return info;
        }
 
        public void setInfo(String info) {
            this.info = info;
        }
    }
 
}