#
vincentlu
2025-01-14 344082256c5bef2e92c03725fa97ef0b36c45163
#
1个文件已修改
39 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
@@ -229,45 +229,6 @@
        return scriptFile;
    }
    public void syncWaveBySingleVeh(String agvNo, String codeData) {
        if (Cools.isEmpty(agvNo, codeData)) {
            return;
        }
        boolean lockAcquired = false;
        Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
        try {
            if (!(lockAcquired = lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS))) {
                log.warn("AvoidWaveCalculator syncWaveBySingleVeh fail, cause can not acquire lock ...");
                return;
            }
            Agv agv = agvService.selectByUuid(agvNo);
            AgvModel agvModel = agvModelService.getByAgvNo(agvNo);
            Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR);
            String[][] waveMatrix = mapDataDispatcher.getWaveMatrix(lev);
            List<NavigateNode> includeList = mapService.getWaveScopeByCode(lev, codeData, avoidDistance);
            for (NavigateNode navigateNode : includeList) {
                String waveNode = waveMatrix[navigateNode.getX()][navigateNode.getY()];
                waveMatrix[navigateNode.getX()][navigateNode.getY()] = MapDataUtils.generateWaveNode(waveNode, agv.getUuid());
            }
            mapDataDispatcher.setWaveMatrix(lev, waveMatrix);
        } catch (Exception e) {
            log.error("AvoidWaveCalculator.syncWaveBySingleVeh fail", e);
        } finally {
            if (lockAcquired) {
                lock.unlock();
            }
        }
    }
    public void calcDynamicNodeWhenBoot() {
        List<Agv> agvList = agvService.list(new LambdaQueryWrapper<>());
        DynamicNode[][] dynamicMatrix = mapDataDispatcher.getDynamicMatrix(null);