*
lsh
2025-05-22 95604a56963ae7f0c629925e90037cd0200d61ad
src/main/java/com/zy/core/thread/RgvThread.java
@@ -94,8 +94,8 @@
        new Thread(this::taskIssued).start();
        // 启动漫游线程
        new Thread(this::taskWalkIssued).start();
        new Thread(this::taskWalkIssued2).start();
//        new Thread(this::taskWalkIssued).start();
//        new Thread(this::taskWalkIssued2).start();
        // 启动任务完成线程
        new Thread(this::taskComplete).start();
@@ -123,7 +123,7 @@
    private void readStatusRgv() {
        while (true) {
            try {
                Thread.sleep(100);
                Thread.sleep(20);
                readStatus();
@@ -277,17 +277,53 @@
                    rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
                    rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
                }
                if (rgvTaskProtocol.getAvoid() != 0) {
                    continue;
                }
                if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE)){
                    continue;
                }
                if (rgvProtocol.getLoaded() == -1){
                    continue;
                }
                if (rgvTaskProtocol.getAvoid() != 0) {
                    if (rgvTaskProtocol.getAvoid() == 1) {
                        TaskProtocol issued = new TaskProtocol();
                        issued.setTaskNo(32222L);
                        issued.setTargetPosition(rgvTaskProtocol.getAvoidingTheDestination());
                        issued.setTaskStatus(1);
                        issued.setDirection(true);
                        write(issued);
                        rgvTaskProtocol.setAvoid(0);
                        Thread.sleep(200);
                        RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
                    }
                    continue;
                }
                List<TaskProtocol> allTakeTaskProtocol = taskProtocolCache.getTakeOrPutTaskProtocol(rgvProtocol.getLoaded());
                if (allTakeTaskProtocol.isEmpty()){
                    allTakeTaskProtocol = taskProtocolCache.getAllWalkTaskProtocol();
                    for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
                        if (taskProtocol.getIsRunning() == 1) {//准备下发
                            // 双车
                            if (rgvOtherStatusEnable()) {
                                //另一台车是否允许此台车执行
                                if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
                                    continue;
                                }
                            }
                            if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50
                                    && taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){
                                taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
                                break;
                            } else {
                                TaskProtocol issued = new TaskProtocol(taskProtocol,true);
                                write(issued);
                                taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
                                break;
                            }
                        }
                    }
                } else {
                for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
                    if (taskProtocol.getIsRunning() == 1) {//准备下发
//                        RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
@@ -341,6 +377,7 @@
                        }
                    }
                }
                }
            } catch (Exception e) {
                log.error("RGV取货任务下发线程异常!!!" + e.getMessage());
//                e.printStackTrace();