| | |
| | | import com.zy.core.enums.MapNodeType; |
| | | import com.zy.core.enums.ShuttleRunDirection; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.ShuttleSlave; |
| | | import com.zy.core.model.command.ShuttleAssignCommand; |
| | | import com.zy.core.model.command.ShuttleCommand; |
| | | import com.zy.core.model.protocol.ShuttleProtocol; |
| | |
| | | lockNode.add(node.clone()); |
| | | } |
| | | |
| | | long startTime = System.currentTimeMillis(); |
| | | List<ShuttleCommand> commands = new ArrayList<>(); |
| | | //获取分段路径 |
| | | ArrayList<ArrayList<NavigateNode>> data = navigateUtils.getSectionPath(nodeList); |
| | | List<List<NavigateNode>> data = navigateUtils.getSectionPath(nodeList); |
| | | long endTime = System.currentTimeMillis(); |
| | | News.info("getSection path time:{}", (endTime - startTime)); |
| | | //将每一段路径分成command指令 |
| | | for (ArrayList<NavigateNode> nodes : data) { |
| | | for (List<NavigateNode> nodes : data) { |
| | | //开始路径 |
| | | NavigateNode startPath = nodes.get(0); |
| | | |
| | |
| | | |
| | | assignCommand.setNodes(allNode);//当前任务所占用的节点list |
| | | |
| | | boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(startLocNo), shuttleNo, lockNode, true);//锁定路径 |
| | | if (!result) { |
| | | News.error("{} dash {} can't lock path!", startLocNo, endLocNo); |
| | | shuttleThread.offerSystemMsg("{} dash {} can't lock path!", startLocNo, endLocNo); |
| | | return null;//路径锁定失败 |
| | | //小车移动连续下发指令 |
| | | boolean shuttleMoveCommandsContinuously = false; |
| | | Config shuttleMoveCommandsContinuouslyConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleMoveCommandsContinuously")); |
| | | if (shuttleMoveCommandsContinuouslyConfig != null) { |
| | | if (shuttleMoveCommandsContinuouslyConfig.getValue().equals("Y")) { |
| | | shuttleMoveCommandsContinuously = true; |
| | | } |
| | | } |
| | | assignCommand.setShuttleMoveCommandsContinuously(shuttleMoveCommandsContinuously); |
| | | return commands; |
| | | } |
| | | |
| | |
| | | |
| | | List<ShuttleCommand> commands = new ArrayList<>(); |
| | | //获取分段路径 |
| | | ArrayList<ArrayList<NavigateNode>> data = navigateUtils.getSectionPath(nodeList); |
| | | List<List<NavigateNode>> data = navigateUtils.getSectionPath(nodeList); |
| | | //将每一段路径分成command指令 |
| | | for (ArrayList<NavigateNode> nodes : data) { |
| | | for (List<NavigateNode> nodes : data) { |
| | | //开始路径 |
| | | NavigateNode startPath = nodes.get(0); |
| | | |
| | |
| | | NavigateNode currentNode = new NavigateNode(pointArr[0], pointArr[1]); |
| | | currentNode.setZ(lev); |
| | | |
| | | List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//获取完整地图 |
| | | List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//获取完整地图 |
| | | int[][] map = navigateMapData.parseJsonDataArr(lists); |
| | | int nodeValue = map[pointArr[0]][pointArr[1]]; |
| | | currentNode.setNodeValue(nodeValue); |
| | |
| | | currentNode.setZ(lev); |
| | | innerNodes.add(currentNode); |
| | | |
| | | List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//获取完整地图 |
| | | List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//获取完整地图 |
| | | int[][] map = navigateMapData.parseJsonDataArr(lists); |
| | | int nodeValue = map[pointArr[0]][pointArr[1]]; |
| | | currentNode.setNodeValue(nodeValue); |