package com.zy.core.enums; import com.core.exception.CoolException; import com.zy.asrs.utils.Utils; import com.zy.core.model.protocol.SteProtocol; public enum SteTaskModeType { INIT(0, "初始"), // 初始 OUT_LEFT(1, "左出库"), // 左出库 OUT_RIGHT(2, "右出库"), // 右出库 IN_LEFT(3, "左入库"), // 左入库 IN_RIGHT(4, "右入库"), // 右入库 // MOVE_LEFT(5, "左移库"), // 左移库 // MOVE_RIGHT(6, "右移库"), // 右移库 GO_ORIGIN(7, "去右端"), // 回原点 BACK_ORIGIN(8, "去左端"), // 回反原点 WAITING_RIGHT(9, "右待机"), // A点 WAITING_LEFT(10, "左待机"), // B点 // FIT_LEFT(11, "左搬移"), // 左搬移 // FIT_RIGHT(12, "右搬移"), // 右搬移 CHARGE(13, "充电"), // 充电 // CHECK_LEFT(14, "左盘点"), // 左盘点 // CHECK_RIGHT(15, "右盘点"), // 右盘点 ; public Integer id; public String desc; SteTaskModeType(Integer id, String desc) { this.id = id; this.desc = desc; } public static SteTaskModeType get(Short id) { if (null == id) { return null; } for (SteTaskModeType type : SteTaskModeType.values()) { if (type.id.equals(id.intValue())) { return type; } } return null; } public static SteTaskModeType get(SteTaskModeType type) { if (null == type) { return null; } for (SteTaskModeType crnTaskModeType : SteTaskModeType.values()) { if (crnTaskModeType == type) { return crnTaskModeType; } } return null; } public static SteTaskModeType findInByLoc(String locNo) { switch (Utils.getGroupRow(locNo)) { case 3: case 11: case 18: return SteTaskModeType.IN_RIGHT; // 右 case 4: case 12: case 19: return SteTaskModeType.IN_LEFT; // 左 default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOutByLoc(String locNo) { switch (Utils.getGroupRow(locNo)) { case 3: case 11: case 18: return SteTaskModeType.OUT_LEFT; // 右 case 4: case 12: case 19: return SteTaskModeType.OUT_RIGHT; // 左 default: throw new CoolException("解析穿梭车原点定位失败"); } } // ----------------------------------------------- public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol) { switch (steProtocol.getRow()) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.GO_ORIGIN; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.BACK_ORIGIN; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findInByLoc(SteProtocol steProtocol) { switch (steProtocol.getRow()) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.IN_LEFT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.IN_RIGHT; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOutByLoc(SteProtocol steProtocol) { switch (steProtocol.getRow()) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.OUT_LEFT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.OUT_RIGHT; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findWaiting(Integer row) { switch (row) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.WAITING_RIGHT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.WAITING_LEFT; default: throw new CoolException("解析穿梭车原点定位失败"); } } }