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_RIGHT; // 右
|
case 4:
|
case 12:
|
case 19:
|
return SteTaskModeType.OUT_LEFT; // 左
|
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("解析穿梭车原点定位失败");
|
}
|
}
|
|
}
|