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