From aaa515911eef34e2263ce8baa6f860025fd6060d Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期二, 14 一月 2025 11:21:02 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java | 27 ++++++++++++++++----------- 1 files changed, 16 insertions(+), 11 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java index 99fae76..9fcf125 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java @@ -101,8 +101,8 @@ return false; } - return this.calcWaveScopeByPython(lev); -// return this.calcWaveScopeByJava(lev); +// return this.calcWaveScopeByPython(lev); + return this.calcWaveScopeByJava(lev); } catch (Exception e) { @@ -115,8 +115,10 @@ } stopWatch.stop(); - if (stopWatch.getTime() > 100) { - log.info("婊ゆ尝鍑芥暟鑺辫垂鏃堕棿涓猴細{}姣......", stopWatch.getTime()); + if (stopWatch.getTime() > 0) { + if (stopWatch.getTime() > 50) { + log.info("婊ゆ尝鍑芥暟鑺辫垂鏃堕棿涓猴細{}姣......", stopWatch.getTime()); + } } } } @@ -177,22 +179,25 @@ } private boolean calcWaveScopeByJava(Integer lev) throws Exception { + + AgvModel agvModel = agvModelService.selectByType(AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()); // can be optimized + Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR); + // java String[][] codeMatrix = mapDataDispatcher.getCodeMatrix(lev); String[][] waveMatrix = mapDataDispatcher.initWaveMatrix(lev); // lock path + long time = 0; DynamicNode[][] dynamicMatrix = mapDataDispatcher.getDynamicMatrix(lev); for (int i = 0; i < dynamicMatrix.length; i++) { for (int j = 0; j < dynamicMatrix[i].length; j++) { DynamicNode dynamicNode = dynamicMatrix[i][j]; String vehicle = dynamicNode.getVehicle(); if (!DynamicNodeType.ACCESS.val.equals(vehicle) && !DynamicNodeType.BLOCK.val.equals(vehicle)) { - AgvModel agvModel = agvModelService.getById(agvService.selectByUuid(vehicle).getAgvModel()); // can be optimized - - Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR); + long startTime = System.currentTimeMillis(); List<NavigateNode> includeList = mapService.getWaveScopeByCode(lev, codeMatrix[i][j], avoidDistance); - + time += System.currentTimeMillis() - startTime; for (NavigateNode navigateNode : includeList) { String waveNode = waveMatrix[navigateNode.getX()][navigateNode.getY()]; // overlay waveMatrix[navigateNode.getX()][navigateNode.getY()] = MapDataUtils.generateWaveNode(waveNode, vehicle); @@ -203,7 +208,7 @@ // mapDataDispatcher.printMatrix(waveMatrix); mapDataDispatcher.setWaveMatrix(lev, waveMatrix); - + System.out.println("calcWaveScopeByJava " + time); return true; } @@ -240,7 +245,7 @@ } Agv agv = agvService.selectByUuid(agvNo); - AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); + AgvModel agvModel = agvModelService.getByAgvNo(agvNo); Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR); String[][] waveMatrix = mapDataDispatcher.getWaveMatrix(lev); @@ -296,7 +301,7 @@ DynamicNode dynamicNode = dynamicMatrix[codeMatrixIdx[0]][codeMatrixIdx[1]]; String vehicle = dynamicNode.getVehicle(); if (vehicle.equals(DynamicNodeType.ACCESS.val)) { - mapDataDispatcher.modifyDynamicMatrix(null, Utils.singletonList(code.getData()), agv.getUuid()); + mapDataDispatcher.modifyDynamicMatrix(null, Utils.singletonList(codeMatrixIdx), agv.getUuid()); } } -- Gitblit v1.9.1