| | |
| | | @Autowired |
| | | private SegmentService segmentService; |
| | | @Autowired |
| | | private TrafficService trafficService; |
| | | private LaneService laneService; |
| | | @Autowired |
| | | private AgvModelService agvModelService; |
| | | @Autowired |
| | |
| | | // 反向角 |
| | | final double oppLastDir = (lastDirection + 180) % 360; |
| | | |
| | | // 巷道逻辑 |
| | | if (!laneBuilder.isInitialized()) { |
| | | throw new BusinessException("lanes are not initialized"); |
| | | } |
| | | LaneDto lastLaneDto = laneBuilder.search(lastCode.getData()); |
| | | LaneDto nextLaneDto = laneBuilder.search(nextCode.getData()); |
| | | // 进入巷道角度 |
| | | Double laneDir = laneService.getLaneDirection(nextLaneDto); |
| | | // 第一次进入此巷道 |
| | | boolean firstEnteringLane = null != laneDir && ( |
| | | lastLaneDto == null |
| | | || !Objects.equals(lastLaneDto.getHashCode(), nextLaneDto.getHashCode()) |
| | | ); |
| | | |
| | | |
| | | |
| | | // 如果下一个方向正好是作业方向的相反方向,则重置下一个方向为作业方向,标记 reverse = true |
| | | boolean reverse = false; |
| | | if (nextDirection.equals(oppWorkDir)) { |