zhang
20 小时以前 ba0155f682af15459e583d41c455604e7ee40188
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
package com.zy.acs.common.enums.error;
 
public enum AgvErrorType {
 
    ERROR_0x0001("0001", "硬件错误"),
    ERROR_0x0002("0002", "硬件错误"),
 
    ERROR_0x2000("2000", "地面扫码相机出错"),
    ERROR_0x2001("2001", "待机状态下丢码"),
    ERROR_0x2002("2002", "校准中丢码"),
    ERROR_0x2003("2003", "路径中丢码"),
    ERROR_0x2004("2004", "直行中丢码"),
    ERROR_0x2005("2005", "直行中错码"),
    ERROR_0x2006("2006", "直行丢失终点码"),
    ERROR_0x2007("2007", "直行中间码丢失"),
    ERROR_0x2008("2008", "检测不到货位码"),
    ERROR_0x200B("200B", "货位码不匹配"),
    ERROR_0x2010("2010", "直行位置偏差过大"),
    ERROR_0x2011("2011", "位姿融合失败轻度"),
    ERROR_0x2012("2012", "位姿融合失败重度"),
    ERROR_0x2013("2013", "实际地址码与给定不符,重登录"),
    ERROR_0x2014("2014", "检测不到地面码"),
 
    ERROR_0x3001("3001", "直行前进中前避障雷达触发"),
    ERROR_0x3002("3002", "直行前进中前避障雷达触发停止"),
    ERROR_0x3003("3003", "直行后退中后避障雷达触发"),
    ERROR_0x3004("3004", "直行后退中后避障雷达触发停止"),
    ERROR_0x3005("3005", "避障雷达模块报警"),
    ERROR_0x3006("3006", "避障雷达失联"),
    ERROR_0x3010("3010", "急停触发和解除"),
    ERROR_0x3011("3011", "碰撞条触发与解除"),
 
    ERROR_0x4001("4001", "传感器信号异常"),
    ERROR_0x4002("4002", "相机掉线"),
    ERROR_0x4003("4003", "高度传感器掉线"),
    ERROR_0x4004("4004", "货叉控制器通信异常"),
    ERROR_0x4005("4005", "电机温度异常"),
    ERROR_0x4006("4006", "环境温度异常"),
 
    ERROR_0x5001("5001", "陀螺仪模块通讯异常"),
    ERROR_0x5003("5003", "陀螺仪数据异常"),
    ERROR_0x5004("5004", "陀螺仪归零异常"),
    ERROR_0x5007("5007", "陀螺仪角度偏差过大,紧急停止"),
 
    ERROR_0x6001("6001", "电机掉线"),
    ERROR_0x6002("6002", "电机温度过高"),
    ERROR_0x6003("6003", "电机操作异常"),
    ERROR_0x6004("6004", "电机报警"),
    ERROR_0x6005("6005", "未知"),
 
    ERROR_0x7001("7001", "电池通讯失败"),
    ERROR_0x7002("7002", "电量异常"),
    ERROR_0x7003("7003", "过压报警"),
    ERROR_0x7004("7004", "欠压报警"),
    ERROR_0x7005("7005", "电池温度过高"),
    ERROR_0x7006("7006", "温度过低"),
    ERROR_0x7007("7007", "剩余电量低"),
    ERROR_0x7009("7009", "未知"),
 
    ERROR_0x8001("8001", "网络模块报警"),
    ERROR_0x8002("8002", "上位机通信失败"),
    ERROR_0x8003("8003", "无效的指令"),
    ERROR_0x8004("8004", "非法的路径"),
    ERROR_0x8005("8005", "未知"),
    ERROR_0x8006("8006", "未知"),
 
    ERROR_0x9001("9001", "充电对接传感器异常"),
    ERROR_0x9002("9002", "充电对接超时"),
    ERROR_0x9003("9003", "对接后长时间未充电"),
 
    ERROR_0xA000("A000", "小车脱轨"),
    ERROR_0xA001("A001", "读码角度偏差过大"),
    ERROR_0xA002("A002", "里程计数据溢出"),
    ERROR_0xA003("A003", "IMU数据异常"),
    ERROR_0xA004("A004", "激光近距离急停"),
    ERROR_0xA005("A005", "驱动器报警"),
    ERROR_0xA008("A008", "轴0驱动器报警"),
    ERROR_0xA009("A009", "轴1驱动器报警"),
    ERROR_0xA00A("A00A", "急停信号触发"),
    ERROR_0xA00B("A00B", "货叉传感器检测异常"),
    ERROR_0xA00C("A00C", "支撑未到位"),
    ERROR_0xA00D("A00D", "松绳检测"),
 
    ERROR_0xA028("A028", "左取货货架无货"),
    ERROR_0xA029("A029", "左取货车内有货"),
    ERROR_0xA02A("A02A", "左放货货架有货"),
    ERROR_0xA02B("A02B", "左放货车内无货"),
 
    ERROR_0xA02C("A02C", "右取货货架无货"),
    ERROR_0xA02D("A02D", "右取货车内有货"),
    ERROR_0xA02E("A02E", "右放货货架有货"),
    ERROR_0xA02F("A02F", "右放货车内无货"),
 
    ERROR_0xA030("A030", "轮廓检测前异常"),
    ERROR_0xA031("A031", "轮廓检测后异常"),
    ERROR_0xA032("A032", "轮廓检测左异常"),
    ERROR_0xA033("A033", "轮廓检测右异常"),
    ERROR_0xA034("A034", "轮廓检测上异常"),
 
    ERROR_0xA03C("A03C", "从站1未就绪"),
    ERROR_0xA03D("A03D", "从站2未就绪"),
    ERROR_0xA03E("A03E", "从站3未就绪"),
    ERROR_0xA03F("A03F", "从站4未就绪"),
    ERROR_0xA040("A040", "从站5未就绪"),
    ERROR_0xA041("A041", "从站6未就绪"),
 
 
    //以下是堆垛车的故障码
    ERROR_0x1001("1001", "外部急停按钮触发"),
    ERROR_0x1002("1002", "触摸屏急停按钮触发"),
    ERROR_0x1010("1010", "主流程任务异常:设备目标角度超范围"),
    ERROR_0x1011("1011", "主流程任务异常:路径查询失败"),
    ERROR_0x1012("1012", "主流程任务异常:任务启动前货叉不在中位"),
    ERROR_0x1013("1013", "预留"),
    ERROR_0x1014("1014", "主流程任务异常:旋转后当前角度异常"),
    ERROR_0x1015("1015", "主流程任务异常:提升完成后超定位精度"),
    ERROR_0x1016("1016", "主流程任务异常:行走执行前左轮伺服未就绪"),
    ERROR_0x1017("1017", "主流程任务异常:行走执行前右轮伺服未就绪"),
    ERROR_0x1018("1018", "主流程任务异常:伸叉后货叉定位超精度"),
    ERROR_0x1019("1019", "主流程任务异常:微升降前货叉不在位"),
    ERROR_0x1020("1020", "主流程任务异常:升降前货叉不在中位"),
    ERROR_0x1021("1021", "主流程任务异常:回叉后货叉定位超精度"),
    ERROR_0x1022("1022", "主流程任务异常:设备不在路径起始码上"),
    ERROR_0x1023("1023", "主流程任务异常:取货时左探货无货"),
    ERROR_0x1024("1024", "主流程任务异常:取货时右探货无货"),
    ERROR_0x1025("1025", "主流程任务异常:放货时左探货有货"),
    ERROR_0x1026("1026", "主流程任务异常:放货时右探货有货"),
    ERROR_0x1027("1027", "主流程任务异常:行走完成后超定位精度"),
    ERROR_0x1028("1028", "主流程任务异常:取货前载货台有物"),
    ERROR_0x1029("1029", "主流程任务异常:伸叉后载货台有物"),
    ERROR_0x1030("1030", "主流程任务异常:取货后载货台无物"),
    ERROR_0x1031("1031", "主流程任务异常:放货后载货台有物"),
    ERROR_0x1040("1040", "外形检测异常:左超高报警"),
    ERROR_0x1041("1041", "外形检测异常:右超高报警"),
    ERROR_0x1042("1042", "外形检测异常:前凸出1报警"),
    ERROR_0x1043("1043", "外形检测异常:前凸出2报警"),
    ERROR_0x1044("1044", "外形检测异常:后凸出1报警"),
    ERROR_0x1045("1045", "外形检测异常:后凸出2报警"),
    ERROR_0x1046("1046", "外形检测异常:左超宽1报警"),
    ERROR_0x1047("1047", "外形检测异常:左超宽2报警"),
    ERROR_0x1048("1048", "外形检测异常:右超宽1报警"),
    ERROR_0x1049("1049", "外形检测异常:右超宽2报警"),
    ERROR_0x1050("1050", "预留"),
    ERROR_0x1051("1051", "预留"),
    ERROR_0x1052("1052", "预留"),
    ERROR_0x1060("1060", "行走异常:前防撞触边触发"),
    ERROR_0x1061("1061", "行走异常:后防撞触边触发"),
    ERROR_0x1062("1062", "行走异常:前避障雷达触发"),
    ERROR_0x1063("1063", "行走异常:后避障雷达触发"),
    ERROR_0x1064("1064", "预留"),
    ERROR_0x1190("1190", "陀螺仪故障:长时间值未跳动"),
    ;
 
    public String sign;
    public String desc;
 
    AgvErrorType(String sign, String desc) {
        this.sign = sign;
        this.desc = desc;
    }
 
    public static AgvErrorType query(String sign) {
        if (null == sign) {
            return null;
        }
        for (AgvErrorType type : AgvErrorType.values()) {
            if (sign.equalsIgnoreCase(type.sign)) {
                return type;
            }
        }
        return null;
    }
 
    public String getMsg() {
        return "0x" + this.sign + " - " + this.desc;
    }
 
}