package com.zy.core.enums;
|
|
import com.core.exception.CoolException;
|
import com.zy.asrs.utils.SteUtils;
|
import com.zy.asrs.utils.Utils;
|
import com.zy.core.model.protocol.SteProtocol;
|
|
public enum SteTaskModeType {
|
|
INIT(0, "初始"), // 初始
|
OUT_RIGHT(1, "右出库"), // 右出库
|
OUT_LEFT(2, "左出库"), // 左出库
|
IN_RIGHT(4, "右入库"), // 右入库
|
IN_LEFT(3, "左入库"), // 左入库
|
MOVE_LEFT(5, "左移库"), // 左移库
|
MOVE_RIGHT(6, "右移库"), // 右移库
|
GO_ORIGIN(8, "去右端"), // 回反原点
|
BACK_ORIGIN(7, "去左端"), // 回原点
|
WAITING_RIGHT(10, "右待机"), // A点
|
WAITING_LEFT(9, "左待机"), // B点
|
// FIT_LEFT(11, "左搬移"), // 左搬移
|
// FIT_RIGHT(12, "右搬移"), // 右搬移
|
CHARGE_LEFT(13, "左充电"), // 左充电
|
CHARGE_RIGHT(14, "右充电"), // 左充电
|
// CHECK_LEFT(14, "左盘点"), // 左盘点
|
// CHECK_RIGHT(15, "右盘点"), // 右盘点
|
CLOSE_CHARGE(17, "断开充电"), // 断开充电
|
;
|
|
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, Integer crnNo) {
|
switch (SteUtils.getGroupRow(locNo, true, crnNo)) {
|
case 2:
|
return SteTaskModeType.IN_RIGHT; // 右
|
case 12:
|
return SteTaskModeType.IN_LEFT; // 左
|
default:
|
throw new CoolException("解析穿梭车原点定位失败");
|
}
|
}
|
|
public static SteTaskModeType findOutByLoc(String locNo, Integer crnNo) {
|
switch (SteUtils.getGroupRow(locNo, false, crnNo)) {
|
case 2:
|
return SteTaskModeType.OUT_LEFT; // 右
|
case 12:
|
return SteTaskModeType.OUT_RIGHT; // 左
|
default:
|
throw new CoolException("解析穿梭车原点定位失败");
|
}
|
}
|
public static SteTaskModeType findOutByLoc2(String locNo, Integer crnNo) {
|
switch (SteUtils.getGroupRow(locNo, false, crnNo)) {
|
case 2:
|
return SteTaskModeType.GO_ORIGIN; // 8
|
case 12:
|
return SteTaskModeType.BACK_ORIGIN; // 7
|
default:
|
throw new CoolException("解析穿梭车原点定位失败");
|
}
|
}
|
|
|
// -----------------------------------------------
|
|
// 去待搬点
|
public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol, Integer crnNo) {
|
int row = steProtocol.getRow().intValue();
|
if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) {
|
return crnNo == 1 ? SteTaskModeType.BACK_ORIGIN : SteTaskModeType.GO_ORIGIN;
|
} else if (row==13 || row==1){
|
return SteTaskModeType.INIT;
|
} else {
|
throw new CoolException("解析穿梭车原点定位失败");
|
}
|
}
|
|
public static SteTaskModeType findOriginByLoc(Integer row, Integer crnNo) {
|
if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) {
|
return crnNo == 1 ? SteTaskModeType.BACK_ORIGIN : SteTaskModeType.GO_ORIGIN;
|
} else if (row==13 || row==1){
|
return SteTaskModeType.INIT;
|
} else {
|
throw new CoolException("解析穿梭车原点定位失败");
|
}
|
}
|
|
|
public static SteTaskModeType findWaiting(Integer row, Integer crnNo) {
|
if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) {
|
return crnNo == 1 ? SteTaskModeType.WAITING_LEFT : SteTaskModeType.WAITING_RIGHT;
|
} else if (row==1||row==13){
|
return SteTaskModeType.INIT;
|
} else {
|
throw new CoolException("解析穿梭车原点定位失败");
|
}
|
}
|
|
}
|