package com.zy.common.utils; import com.core.common.SpringUtils; import com.zy.asrs.utils.Utils; import com.zy.common.model.NavigateNode; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.LiftSlave; import com.zy.core.model.command.NyLiftCommand; import com.zy.core.model.protocol.LiftStaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.LiftThread; import javax.swing.*; import java.util.ArrayList; import java.util.List; /** * 牛眼提升机工具类 */ public class NyLiftUtils { /** * 获取提升机命令 */ public static NyLiftCommand getLiftCommand(Integer liftNo, Integer taskModel, Integer sourceSta, Integer targetSta, Integer taskNo) { NyLiftCommand command = new NyLiftCommand(); command.setLiftNo(liftNo.shortValue()); command.setTaskNo(taskNo.shortValue()); command.setTaskModel(taskModel.shortValue()); command.setSourceSta(sourceSta.shortValue()); command.setTargetSta(targetSta.shortValue()); return command; } /** * 获取提升机复位命令 */ public static NyLiftCommand getLiftResetCommand(Integer liftNo) { NyLiftCommand command = new NyLiftCommand(); command.setLiftNo(liftNo.shortValue()); command.setTaskNo((short) 0); command.setTaskModel((short) 0); command.setSourceSta((short) 0); command.setTargetSta((short) 0); return command; } //获取提升机站点 public static LiftStaProtocol getLiftStaByStaNo(Integer staNo) { SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class); for (LiftSlave liftSlave : slaveProperties.getLift()) { LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSlave.getId()); if (liftThread == null) { return null; } for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) { if (liftStaProtocol.getStaNo().equals(staNo)) { return liftStaProtocol; } } } return null; } //获取提升机站点 public static LiftStaProtocol getLiftStaByStaNo(Integer liftNo, Integer staNo) { LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftNo); if (liftThread == null) { return null; } for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) { if (liftStaProtocol.getStaNo().equals(staNo)) { return liftStaProtocol; } } return null; } //获取提升机站点 public static LiftStaProtocol getLiftStaByLev(Integer liftNo, Integer lev) { LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftNo); if (liftThread == null) { return null; } for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) { if (liftStaProtocol.getLev().equals(lev)) { return liftStaProtocol; } } return null; } //获取提升机输送站及其前一站节点 public static List getLiftStaNodes(Integer staNo) { List targetNodes = new ArrayList<>(); //获取目标站 LiftStaProtocol targetLiftSta = NyLiftUtils.getLiftStaByStaNo(staNo); if (targetLiftSta == null) { return null;//找不到站点 } NavigateNode targetNode = NavigatePositionConvert.locNoToNode(targetLiftSta.getLocNo());//目标节点 String targetLastLocNo = Utils.getLocNo(Utils.getRow(targetLiftSta.getLocNo()) - 1, Utils.getBay(targetLiftSta.getLocNo()), Utils.getLev(targetLiftSta.getLocNo()));//目标节点前一站 NavigateNode targetLastNode = NavigatePositionConvert.locNoToNode(targetLastLocNo);//目标节点前一站 targetNodes.add(targetNode); targetNodes.add(targetLastNode); return targetNodes; } }