| | |
| | | import java.text.MessageFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | if (commands.size() == 0) { |
| | | return false; |
| | | } |
| | | |
| | | checkIOSta(commands, commandStep);//检测小车是否进出提升机输送站 |
| | | |
| | | NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo())); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | //检测小车是否进出提升机输送站 |
| | | public void checkIOSta(List<NyShuttleHttpCommand> commands, int commandStep) { |
| | | if (commandStep != 0) { |
| | | NyShuttleHttpCommand lastCommand = commands.get(commandStep - 1);//上一步命令 |
| | | if (lastCommand.getRequest().getBody().get("requestType").equals("move")) { |
| | | //检测起点是否为提升机输送站点 |
| | | NyShuttleProtocol.NyShuttlePointClass start = JSON.parseObject(lastCommand.getRequest().getBody().get("start").toString(), NyShuttleProtocol.NyShuttlePointClass.class); |
| | | int[] startPoint = NavigatePositionConvert.NyXyzToWCSXyz(start.getX(), start.getY(), start.getZ()); |
| | | if (startPoint[0] == 13 && (startPoint[1] == 22 || startPoint[1] == 38 || startPoint[1] == 57)) { |
| | | //输送站点位置 |
| | | |
| | | int liftNo; |
| | | if (startPoint[1] == 22) { |
| | | liftNo = 1; |
| | | } else if (startPoint[1] == 38) { |
| | | liftNo = 2; |
| | | } else { |
| | | liftNo = 3; |
| | | } |
| | | |
| | | HashMap<String, Object> data = new HashMap<>(); |
| | | data.put("lev", startPoint[2]); |
| | | data.put("status", false);//出输送站 |
| | | |
| | | //下发任务 |
| | | MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (commands.size() == commandStep) { |
| | | return; |
| | | } |
| | | NyShuttleHttpCommand command = commands.get(commandStep);//当前命令 |
| | | if (command.getRequest().getBody().get("requestType").equals("move")) { |
| | | NyShuttleProtocol.NyShuttlePointClass target = JSON.parseObject(command.getRequest().getBody().get("target").toString(), NyShuttleProtocol.NyShuttlePointClass.class); |
| | | int[] targetPoint = NavigatePositionConvert.NyXyzToWCSXyz(target.getX(), target.getY(), target.getZ()); |
| | | //检测目标位置是否为提升机输送站点 |
| | | if (targetPoint[0] == 13 && (targetPoint[1] == 22 || targetPoint[1] == 38 || targetPoint[1] == 57)) { |
| | | //输送站点位置 |
| | | |
| | | int liftNo; |
| | | if (targetPoint[1] == 22) { |
| | | liftNo = 1; |
| | | } else if (targetPoint[1] == 38) { |
| | | liftNo = 2; |
| | | } else { |
| | | liftNo = 3; |
| | | } |
| | | |
| | | HashMap<String, Object> data = new HashMap<>(); |
| | | data.put("lev", targetPoint[2]); |
| | | data.put("status", true);//进输送站 |
| | | |
| | | //下发任务 |
| | | MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |