From c99cbe6c0064deee3e57f1a751ff0717290ac621 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 05 六月 2025 15:43:56 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/core/thread/RgvThread.java |   94 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 94 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index cd37355..0dd4ee9 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -130,6 +130,15 @@
     private void readStatusRgv() {
         while (true) {
             try {
+                if(!connectRgv){
+                    try {
+                        Thread.sleep(1000L);
+                    } catch (Exception e){
+
+                    }
+                    initRgv();
+                    continue;
+                }
                 Thread.sleep(20);
 //                System.out.println("璇荤嚎绋�"+ slave.getId());
 
@@ -157,6 +166,14 @@
     private void taskComplete() {
         while (true) {
             try {
+                if(!connectRgv){
+                    try {
+                        Thread.sleep(1000L);
+                    } catch (Exception e){
+
+                    }
+                    continue;
+                }
                 if (delRgvTask){
                     writeDelRgvTask();
                     delRgvTask = false;
@@ -253,6 +270,14 @@
     private void taskWalkIssued() {
         while (true) {
             try {
+                if(!connectRgv){
+                    try {
+                        Thread.sleep(1000L);
+                    } catch (Exception e){
+
+                    }
+                    continue;
+                }
                 // 浼戠湢 1 绉�
                 Thread.sleep(100);
 
@@ -290,6 +315,14 @@
      */
     private void taskIssued() {
         while (true) {
+            if(!connectRgv){
+                try {
+                    Thread.sleep(1000L);
+                } catch (Exception e){
+
+                }
+                continue;
+            }
             RgvRunProtocol rgvRun = RgvRunCache.getRgvRun();
             if (!rgvRun.getRgvNo().equals(slave.getId())){
                 continue;
@@ -795,6 +828,67 @@
                             return false;
                         }
                     }
+
+                    TaskProtocol nowPosRunTask2 = taskProtocolCacheOther.getNowPosRunTask2();
+                    if (!Cools.isEmpty(nowPosRunTask2)){
+                        boolean signNowPosRun = true;
+                        boolean signNowPosA = true;
+                        if (targetPosition - rgvProtocol.getRgvPos()>0){
+                            if (nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos()>0){
+                                if (rgvProtocol.getRgvPos()>rgvProtocolOther.getRgvPos()){
+                                    signNowPosA = false;
+                                    signNowPosRun = false;
+                                }
+                            }
+                        } else if (targetPosition - rgvProtocol.getRgvPos()<0){
+                            if (nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos()<0){
+                                if (rgvProtocol.getRgvPos()<rgvProtocolOther.getRgvPos()){
+                                    signNowPosA = false;
+                                    signNowPosRun = false;
+                                }
+                            }
+                        }
+
+                        if (signNowPosA){
+                            if (nowPosRunTask2.getTaskStatus()==3){
+                                long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
+                                if (Math.abs(onePos - twoPos)>100){
+                                    if (onePos-50>twoPos+50){
+                                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, nowPosRunTask2.getTargetPositionStaNoPlcId());
+                                        StaProtocol staProtocol = devpThread.getStation().get(nowPosRunTask2.getTargetPositionStaNo());
+                                        if (staProtocol == null ) {
+                                            signNowPosRun =false;
+                                        }
+                                        if (signNowPosRun){
+                                            // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                                            if (staProtocol.isAutoing() && !staProtocol.isLoading()
+                                            ){
+                                                errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
+                                                return false;
+                                            }
+                                        }
+                                        signNowPosRun =false;
+                                    }
+                                }
+                            } else {
+                                long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
+                                if (twoPos<100){
+                                    errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
+                                    return false;
+                                }
+                                if (Math.abs(onePos - twoPos)>100){
+                                    if (onePos-50>twoPos+50){
+                                        signNowPosRun =false;
+                                    }
+                                }
+                            }
+                        }
+
+                        if (signNowPosRun){
+                            errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
+                            return false;
+                        }
+                    }
                     long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
                     if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                         log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());

--
Gitblit v1.9.1