| | |
| | | |
| | | 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<>(); |
| | |
| | | /** |
| | | * 检测路径是否可用(可走) |
| | | */ |
| | | 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; |
| | |
| | | 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; |