From ae0d613e60b2308d23b2760d514d0ff3356bfa48 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 14 十月 2023 09:06:23 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/utils/NavigateUtils.java | 27 +++++++++++++++++++++++---- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java index e0a730d..596e595 100644 --- a/src/main/java/com/zy/common/utils/NavigateUtils.java +++ b/src/main/java/com/zy/common/utils/NavigateUtils.java @@ -4,7 +4,11 @@ import com.zy.common.model.MapNode; import com.zy.common.model.NavigateNode; import com.zy.common.model.enums.NavigationMapType; +import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.ShuttleTaskModeType; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.protocol.NyShuttleProtocol; +import com.zy.core.thread.NyShuttleThread; import java.util.*; @@ -35,7 +39,7 @@ NavigateNode res_node = solution.astarSearch(start, end); if (res_node == null) { - System.out.println("鏈壘鍒拌矾寰�"); + System.out.println(start + "," + end + "锛氭湭鎵惧埌璺緞"); return null; } else { ArrayList<NavigateNode> list = new ArrayList<>(); @@ -247,12 +251,27 @@ /** * 妫�娴嬭矾寰勬槸鍚﹀彲鐢�(鍙蛋) */ - public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev) { - NavigateSolution solution = new NavigateSolution(NavigationMapType.DFX.id, lev, null, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�) + public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev, List<int[]> whitePoints) { + NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo); + if (shuttleThread == null) { + return false; + } + NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); + if (shuttleProtocol == null) { + return false; + } + + Integer mapType = NavigationMapType.DFX.id; + if (shuttleProtocol.getLiftPosition() == 1) { + //涓嬮檷浣嶇疆 + mapType = NavigationMapType.NORMAL.id; + } + + NavigateSolution solution = new NavigateSolution(mapType, lev, whitePoints, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�) int[][] map = solution.map; for (NavigateNode node : path) { int value = map[node.getX()][node.getY()]; - if (value != 0 && value != 3) { + if (value != 0 && value != 3 && value != 5) {//姣嶈建閬�3銆佸瓙杞ㄩ亾0銆佸厖鐢垫々5 return false; } } -- Gitblit v1.9.1