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_RIGHT(1, "右出库"),    // 右出库 
 | 
    OUT_LEFT(2, "左出库"),    // 左出库 
 | 
    IN_RIGHT(3, "右入库"),    // 右入库 
 | 
    IN_LEFT(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_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) { 
 | 
        switch (Utils.getGroupRow(locNo, true)) { 
 | 
            case 4: 
 | 
                return SteTaskModeType.IN_LEFT;   // 左 
 | 
            case 5: 
 | 
                return SteTaskModeType.IN_RIGHT;    // 右 
 | 
            default: 
 | 
                throw new CoolException("解析穿梭车原点定位失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static SteTaskModeType findOutByLoc(String locNo) { 
 | 
        switch (Utils.getGroupRow(locNo, false)) { 
 | 
            case 4: 
 | 
                return SteTaskModeType.OUT_LEFT;   // 右 
 | 
            case 5: 
 | 
                return SteTaskModeType.OUT_RIGHT;    // 左 
 | 
            default: 
 | 
                throw new CoolException("解析穿梭车原点定位失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    // ----------------------------------------------- 
 | 
  
 | 
    // 去待搬点 
 | 
    public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol) { 
 | 
        int row = steProtocol.getRow().intValue(); 
 | 
        if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.GO_ORIGIN; 
 | 
        } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.BACK_ORIGIN; 
 | 
        } else { 
 | 
            throw new CoolException("解析穿梭车原点定位失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static SteTaskModeType findOriginByLoc(Integer row) { 
 | 
        if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.GO_ORIGIN; 
 | 
        } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.BACK_ORIGIN; 
 | 
        } else { 
 | 
            throw new CoolException("解析穿梭车原点定位失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    public static SteTaskModeType findWaiting(Integer row) { 
 | 
        if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.WAITING_RIGHT; 
 | 
        } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.WAITING_LEFT; 
 | 
        } else { 
 | 
            throw new CoolException("解析穿梭车原点定位失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static SteTaskModeType findChargeByLoc(Integer row) { 
 | 
        if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.CHARGE_RIGHT; 
 | 
        } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { 
 | 
            return SteTaskModeType.CHARGE_LEFT; 
 | 
        } else { 
 | 
            throw new CoolException("解析穿梭车原点定位失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |