From 8dc3bcb40363cc6f9281092b4f6ea0ebcb9335b0 Mon Sep 17 00:00:00 2001
From: tzsk <Administrator@qq.com>
Date: 星期三, 07 二月 2024 11:27:36 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateUtils.java |   21 ++++++++-------------
 1 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 489c168..689e571 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -17,13 +17,16 @@
  */
 public class NavigateUtils {
 
-    public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints) {
+    public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints, List<int[]> whites) {
         //閫氳繃寮�濮嬬紪鍙峰拰缁撴潫缂栧彿鑾峰彇瀵瑰簲鐨剎y杞村潗鏍�
         int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐�
         int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣
 
         ArrayList<int[]> whiteList = new ArrayList<>();//璁剧疆璁$畻鑺傜偣鐨勭櫧鍚嶅崟
         whiteList.add(startArr);//灏嗗紑濮嬭妭鐐硅缃负鐧藉悕鍗曪紝浠ラ槻琚繃婊�
+        if (whites != null && !whites.isEmpty()) {
+            whiteList.addAll(whites);//鎵归噺娣诲姞鐧藉悕鍗曡妭鐐�
+        }
 
         //鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
         int lev = Utils.getLev(startPoint);
@@ -39,7 +42,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<>();
@@ -251,7 +254,7 @@
     /**
      * 妫�娴嬭矾寰勬槸鍚﹀彲鐢�(鍙蛋)
      */
-    public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer 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;
@@ -261,23 +264,15 @@
             return false;
         }
 
-        if (shuttleProtocol.getPoint() == null) {
-            return false;//灏忚溅涓嶅瓨鍦ㄨ妭鐐�
-        }
-
         Integer mapType = NavigationMapType.DFX.id;
         if (shuttleProtocol.getLiftPosition() == 1) {
             //涓嬮檷浣嶇疆
             mapType = NavigationMapType.NORMAL.id;
         }
 
-        NavigateSolution solution = new NavigateSolution(mapType, lev, null, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�)
+        NavigateSolution solution = new NavigateSolution(mapType, lev, whitePoints, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�)
         int[][] map = solution.map;
         for (NavigateNode node : path) {
-            if (shuttleProtocol.getPoint().getX() == node.getX() && shuttleProtocol.getPoint().getY() == node.getY()) {
-                continue;//灏忚溅鍧愭爣鍜屽綋鍓嶆娴嬪潗鏍囩浉鍚岋紝鐩存帴璺宠繃锛屼笉妫�娴嬪皬杞︽墍澶勫綋鍓嶅潗鏍�
-            }
-
             int value = map[node.getX()][node.getY()];
             if (value != 0 && value != 3 && value != 5) {//姣嶈建閬�3銆佸瓙杞ㄩ亾0銆佸厖鐢垫々5
                 return false;
@@ -288,7 +283,7 @@
 
     public static void main(String[] args) {
         //璁$畻璺緞
-        List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null);
+        List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null, null);
         System.out.println(calc);
         System.out.println("------------------------");
 //        List<NavigateNode> calc = calc("0501401", "0201801", "out");

--
Gitblit v1.9.1