package com.zy.acs.common.enums; import com.zy.acs.common.domain.protocol.IActionBody; import com.zy.acs.common.domain.protocol.action.*; /** * 动作码枚举 * */ public enum AgvActionCmdType { STRAIGHT_AHEAD_TURNABLE(0x12, "直行前进", StraightAheadTurnableAction.class), STRAIGHT_AHEAD_UNTURNABLE(0x14, "巷道直行前进", StraightAheadUnturnableAction.class), STRAIGHT_BACK_TURNABLE(0x15, "直行后退", StraightBackTurnableAction.class), STRAIGHT_BACK_UNTURNABLE(0x17, "巷道直行后退", StraightBackUnturnableAction.class), TURN_CORNER(0x20, "转弯", TurnCornerAction.class), DOCKING_CHARGE(0x30, "对接充电桩", DockingChargeAction.class), READY_TAKE_FROM_AGV_SITE(0x75, "准备从AGV暂存货位取货", ReadyTakeFromAgvSite.class), READY_RELEASE_FROM_AGV_SITE(0x76, "准备从AGV暂存货位放货", ReadyReleaseToAgvSite.class), READY_TAKE_FROM_SHELVES_LOC(0x77, "准备从货架取货", ReadyTakeFromShelvesLoc.class), READY_RELEASE_FROM_SHELVES_LOC(0x78, "准备往货架放货", ReadyReleaseToShelvesLoc.class), RUN_TO_WAIT_HEIGHT(0x79, "货叉运行至待机高度", RunToWaitHeight.class), READY_TAKE_FROM_CONVEYOR_STA(0x7B, "准备从输送线取货", ReadyTakeFromConveyorSta.class), READY_RELEASE_FROM_CONVEYOR_STA(0x7C, "准备往输送线放货", ReadyReleaseToConveyorSta.class), FINISH_PATH(0xFF, "整个路径结束", FinishPathAction.class), ; public int actionCode; public String desc; public Class cls; AgvActionCmdType(int actionCode, String desc, Class cls) { this.actionCode = actionCode; this.desc = desc; this.cls = cls; } public static AgvActionCmdType find(Class cls) { for (AgvActionCmdType value : AgvActionCmdType.values()) { if (value.cls.equals(cls)) { return value; } } return null; } }