#
luxiaotao1123
2024-12-03 c58587c4965333eeafd7d1c00ad98bd13f6420b4
#
4个文件已修改
83 ■■■■■ 已修改文件
zy-acs-common/src/main/java/com/zy/acs/common/enums/AgvStatusType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/enums/error/AgvErrorType.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/enums/AgvStatusType.java
@@ -10,7 +10,7 @@
    PAUSE(0x09, "定时暂停状态"),
    ROTATE(0x0A, "旋转标定状态"),
    MOTION(0x0B, "取放货状态"),
    TEMP(0x0C, "预留"),
    TEMP(0x0C, "货叉动作中"),
    LOST(0xF0, "丢失地址码状态"),
    IMU_ERROR(0xF1, "IMU异常状态"),
    ERROR(0xFF, "故障状态"),
zy-acs-common/src/main/java/com/zy/acs/common/enums/error/AgvErrorType.java
@@ -2,7 +2,71 @@
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", "对接后长时间未充电"),
    ;
    public String sign;
@@ -25,4 +89,8 @@
        return null;
    }
    public String getMsg() {
        return "0x" + this.sign + " - " + this.desc;
    }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
@@ -4,6 +4,7 @@
import com.zy.acs.common.domain.AgvProtocol;
import com.zy.acs.common.domain.protocol.*;
import com.zy.acs.common.enums.AgvStatusType;
import com.zy.acs.common.enums.error.AgvErrorType;
import com.zy.acs.common.utils.GsonUtils;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
@@ -124,9 +125,15 @@
        // 故障数据包
        if (msgBody instanceof AGV_04_UP) {
            AGV_04_UP agv_04_up = (AGV_04_UP) msgBody;
            AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId());
            log.info("Agv [{}] 故障数据包 ===>> {}", protocol.getAgvNo(), JSON.toJSONString(agv_04_up));
            // save
            faultProcessor.execute(new VehicleFaultDto<>(protocol.getAgvNo(), protocol.getTimestamp(), agv_04_up));
            detail.setError(agv_04_up.getHexFaultId());
            // detail
            String errorMSg = errorType != null ? errorType.getMsg() : agv_04_up.getHexFaultId();
            detail.setError(errorMSg);
            detail.setErrorTime(new Date());
        }
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
@@ -1,6 +1,7 @@
package com.zy.acs.manager.core.service;
import com.zy.acs.common.domain.protocol.AGV_04_UP;
import com.zy.acs.common.enums.error.AgvErrorType;
import com.zy.acs.common.utils.GsonUtils;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.RadixTools;
@@ -41,6 +42,8 @@
            AGV_04_UP agv_04_up = dto.getT();
            Date errorTime = new Date(dto.getTimestamp());
            AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId());
            Agv agv = agvService.selectByUuid(vehicle);
            VehFaultRec vehFaultRec = new VehFaultRec();
@@ -48,6 +51,7 @@
            vehFaultRec.setAgvId(agv.getId());
            vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId()));
            vehFaultRec.setFaultHex(agv_04_up.getHexFaultId());
            vehFaultRec.setFaultName(null != errorType ? errorType.desc : "undefined");
            vehFaultRec.setFaultLev(agv_04_up.getFaultLevel());
            vehFaultRec.setFaultData(GsonUtils.toJson(Cools.add("data1", agv_04_up.getData1()).add("data2", agv_04_up.getData2())));
            vehFaultRec.setHappenTime(errorTime);