package com.zy.core.thread; import com.zy.common.ExecuteSupport; import com.zy.common.model.NavigateNode; import com.zy.core.ThreadHandler; import com.zy.core.enums.ForkLiftTaskModeType; import com.zy.core.enums.LiftCommandModeType; import com.zy.core.enums.LiftProtocolStatusType; import com.zy.core.model.CommandResponse; import com.zy.core.model.command.LiftCommand; import com.zy.core.model.protocol.LiftProtocol; import com.zy.core.model.protocol.LiftStaProtocol; import java.util.List; public interface LiftThread extends ThreadHandler { LiftProtocol getStatus();//获取提升机状态 LiftProtocol getStatus(boolean clone);//获取提升机状态 List getLiftStaProtocols(); CommandResponse move(LiftCommand command);//升降移动 CommandResponse palletInOut(LiftCommand command);//托盘出入 CommandResponse lock(LiftCommand command);//锁定提升机 CommandResponse unlock(LiftCommand command);//解锁提升机 CommandResponse reset(LiftCommand command);//复位 boolean isIdle();//是否空闲 boolean isDeviceIdle();//设备是否空闲 boolean isDeviceIdle(ExecuteSupport support);//设备是否空闲 boolean setProtocolStatus(LiftProtocolStatusType status);//设置工作状态 boolean setSyncTaskNo(Integer taskNo);//设置工作号 boolean isLock(ExecuteSupport support); int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type);//生成硬件设备工作号 String getLiftLocNo(int lev);//获取提升机位置 String getLiftStandByLocNo(int lev, boolean in);//获取提升机待机位 List getLiftStaNodes(int lev); Integer getLevToStaNo(int lev); //***************获取命令***************** List getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//提升机移动 List getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//载车移动 List getPalletInCommand(Integer taskNo, Integer sourceLev, Integer targetLev);//托盘入 List getPalletOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev);//托盘出 List getLockCommand(Integer taskNo, Boolean lock);//锁定/解锁提升机 List getShuttleSignalCommand(Integer taskNo, Boolean signal);//小车已到位/已驶离信号 }