| | |
| | | stationProtocol.setFullPlt(statusEntity.isFullPlt()); |
| | | stationProtocol.setPalletHeight(statusEntity.getPalletHeight()); |
| | | stationProtocol.setError(statusEntity.getError()); |
| | | stationProtocol.setErrorMsg(statusEntity.getErrorMsg()); |
| | | stationProtocol.setBarcode(statusEntity.getBarcode()); |
| | | stationProtocol.setRunBlock(statusEntity.isRunBlock()); |
| | | stationProtocol.setEnableIn(statusEntity.isEnableIn()); |
| | | stationProtocol.setWeight(statusEntity.getWeight()); |
| | | } |
| | | } |
| | | } |
| | |
| | | List<Integer> segmentEndIndices = new ArrayList<>(); |
| | | int idx = 0; |
| | | while (idx < total) { |
| | | int end = Math.min(idx + 20, total) - 1; |
| | | int end = Math.min(idx + 3, total) - 1; |
| | | segmentTargets.add(path.get(end)); |
| | | segmentEndIndices.add(end); |
| | | idx = end + 1; |
| | |
| | | segCmd.setNavigatePath(new ArrayList<>(path.subList(0, currentEndIdx + 1))); |
| | | sendCommand(segCmd); |
| | | |
| | | boolean finished = false; |
| | | while (!finished) { |
| | | long runTime = System.currentTimeMillis(); |
| | | while (true) { |
| | | try { |
| | | Integer currentStationId = findCurrentStationByTask(original.getTaskNo()); |
| | | if (currentStationId == null) { |
| | | StationProtocol currentStation = findCurrentStationByTask(original.getTaskNo()); |
| | | if (currentStation == null) { |
| | | if(System.currentTimeMillis() - runTime > 1000 * 60){ |
| | | break; |
| | | } |
| | | Thread.sleep(500); |
| | | continue; |
| | | } |
| | | int currentIndex = path.indexOf(currentStationId); |
| | | |
| | | runTime = System.currentTimeMillis(); |
| | | if (currentStation.isRunBlock()) { |
| | | break; |
| | | } |
| | | int currentIndex = path.indexOf(currentStation.getStationId()); |
| | | if (currentIndex < 0) { |
| | | Thread.sleep(500); |
| | | continue; |
| | | } |
| | | int remaining = total - currentIndex - 1; |
| | | if (remaining <= 0) { |
| | | finished = true; |
| | | break; |
| | | } |
| | | int currentSegEndIndex = path.indexOf(segmentTargets.get(segCursor)); |
| | |
| | | } |
| | | } |
| | | |
| | | private Integer findCurrentStationByTask(Integer taskNo) { |
| | | private StationProtocol findCurrentStationByTask(Integer taskNo) { |
| | | try { |
| | | com.zy.asrs.service.DeviceConfigService deviceConfigService = SpringUtils.getBean(com.zy.asrs.service.DeviceConfigService.class); |
| | | if (deviceConfigService == null) { |
| | |
| | | } |
| | | for (StationProtocol sp : m.values()) { |
| | | if (sp.getTaskNo() != null && sp.getTaskNo().equals(taskNo) && sp.isLoading()) { |
| | | return sp.getStationId(); |
| | | return sp; |
| | | } |
| | | } |
| | | } |