|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.calcDynamicNodeWhenBoot(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | while (!Thread.currentThread().isInterrupted()) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.calcWaveScope(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { Thread.sleep(500); } catch (InterruptedException ignore) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            while (!Thread.currentThread().isInterrupted()) { | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                this.calcWaveScope(); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                try { Thread.sleep(500); } catch (InterruptedException ignore) {} | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //                AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); | 
|---|
|  |  |  | //                Code code = codeService.getById(agvDetail.getRecentCode()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.IDLE_DISTANCE_COE); | 
|---|
|  |  |  | //                Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR); | 
|---|
|  |  |  | //                List<NavigateNode> includeList = mapService.getWaveScopeByCode(lev, code.getData(), avoidDistance); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                for (NavigateNode navigateNode : includeList) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | AgvModel agvModel = agvModelService.getById(agvService.selectByUuid(vehicle).getAgvModel());    // can be optimized | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.IDLE_DISTANCE_COE); | 
|---|
|  |  |  | Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR); | 
|---|
|  |  |  | List<NavigateNode> includeList = mapService.getWaveScopeByCode(lev, codeMatrix[i][j], avoidDistance); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (NavigateNode navigateNode : includeList) { | 
|---|
|  |  |  | String waveNode = waveMatrix[navigateNode.getX()][navigateNode.getY()]; | 
|---|
|  |  |  | String waveNode = waveMatrix[navigateNode.getX()][navigateNode.getY()]; // overlay | 
|---|
|  |  |  | waveMatrix[navigateNode.getX()][navigateNode.getY()] = MapDataUtils.generateWaveNode(waveNode, vehicle); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | stopWatch.stop(); | 
|---|
|  |  |  | if (stopWatch.getTime() > 50) { | 
|---|
|  |  |  | if (stopWatch.getTime() > 100) { | 
|---|
|  |  |  | log.info("滤波函数花费时间为:{}毫秒......", stopWatch.getTime()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Agv agv = agvService.selectByUuid(agvNo); | 
|---|
|  |  |  | AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); | 
|---|
|  |  |  | Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.IDLE_DISTANCE_COE); | 
|---|
|  |  |  | Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String[][] waveMatrix = mapDataDispatcher.getWaveMatrix(lev); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if (null == agvDetail) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (agvDetail.getPos() == null || agvDetail.getPos() != 1) { | 
|---|
|  |  |  | if (agvDetail.getPos() == null) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Long recentCode = agvDetail.getRecentCode(); | 
|---|