| | |
| | | //检测障碍物车 |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | }}, new ArrayList<>()); |
| | | if (checkObstacle) { |
| | | News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | //检测障碍物车 |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getSourceLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | }}, new ArrayList<>()); |
| | | if (checkObstacle) { |
| | | News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | //检测障碍物车 |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | }}, new ArrayList<>()); |
| | | if (checkObstacle) { |
| | | News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | //检测障碍物车 |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | }}, new ArrayList<>()); |
| | | if (checkObstacle) { |
| | | News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | } |
| | | |
| | | //检测障碍物车 |
| | | public synchronized boolean checkObstacle(String locNo, List<Integer> whiteShuttles) { |
| | | public synchronized boolean checkObstacle(String locNo, List<Integer> whiteShuttles, List<NavigateNode> whiteNodes) { |
| | | int innerCircle = 0; |
| | | int outerCircle = 3; |
| | | Config avoidInnerCircleConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "avoidInnerCircle")); |
| | |
| | | } |
| | | |
| | | //获取外圈节点 |
| | | List<NavigateNode> outerNodes = getOuterNodes(locNo, outerCircle, whiteShuttlePointList, innerNodes); |
| | | List<NavigateNode> outerNodes = getOuterNodes(locNo, outerCircle, whiteShuttlePointList, innerNodes, whiteNodes); |
| | | |
| | | //将内圈节点中障碍小车调离 |
| | | for (Integer shuttleNo : nodesCar) { |
| | |
| | | return list; |
| | | } |
| | | |
| | | private List<NavigateNode> getOuterNodes(String locNo, int outerCircle, List<int[]> whiteShuttlePointList, List<NavigateNode> innerNodes) { |
| | | private List<NavigateNode> getOuterNodes(String locNo, int outerCircle, List<int[]> whiteShuttlePointList, List<NavigateNode> innerNodes, List<NavigateNode> whiteNodes) { |
| | | List<NavigateNode> outerNodes = new ArrayList<>(); |
| | | List<NavigateNode> outerNodesTmp = new ArrayList<>(); |
| | | int lev = Utils.getLev(locNo); |
| | |
| | | continue; |
| | | } |
| | | |
| | | for (NavigateNode whiteNode : whiteNodes) { |
| | | if (node.getX() == whiteNode.getX() && node.getY() == whiteNode.getY()) { |
| | | flag = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (flag) { |
| | | continue; |
| | | } |
| | | |
| | | outerNodes.add(node); |
| | | } |
| | | |
| | |
| | | //检测障碍物车 |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(shuttleProtocol.getCurrentLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleNo); |
| | | }}); |
| | | }}, totalNodeList); |
| | | pathIdleShuttleMap.remove(shuttleProtocol.getShuttleNo()); |
| | | } |
| | | }else { |