From 8740b1c94ffd20b54b95962df886e43f722911c5 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 24 四月 2025 17:31:12 +0800
Subject: [PATCH] *

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

diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 15214fe..6c86c58 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -13,6 +13,7 @@
 import com.zy.asrs.service.BasRgvOptService;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.asrs.utils.RouteUtils;
+import com.zy.asrs.utils.TrackRangeUtils;
 import com.zy.core.ThreadHandler;
 import com.zy.core.cache.*;
 import com.zy.core.enums.RgvModeType;
@@ -44,7 +45,7 @@
 
     private SiemensS7Net siemensNet;
     private RgvSlave slave;
-//    private RgvProtocol rgvProtocol;
+    //    private RgvProtocol rgvProtocol;
     private TaskProtocolCache taskProtocolCache = new TaskProtocolCache();
     // # 杞ㄩ亾鎬婚暱
     private Long trackEntireLength = 100L;
@@ -70,7 +71,7 @@
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         boolean connect = this.connect();
-        if (connect){
+        if (connect) {
 
             // 鍚姩璇绘暟鎹嚎绋�
             new Thread(this::readStatusRgv).start();
@@ -83,7 +84,7 @@
         }
     }
 
-    private void readStatusRgv(){
+    private void readStatusRgv() {
         while (true) {
             try {
                 Thread.sleep(100);
@@ -91,7 +92,7 @@
                 readStatus();
 
             } catch (Exception e) {
-                log.error("RGV鏁版嵁璇诲彇绾跨▼寮傚父锛侊紒锛�"+e.getMessage());
+                log.error("RGV鏁版嵁璇诲彇绾跨▼寮傚父锛侊紒锛�" + e.getMessage());
                 initRgv();
 //                e.printStackTrace();
             }
@@ -109,7 +110,7 @@
                 // 浼戠湢 1 绉�
                 Thread.sleep(100);
 
-                if (!deviceDetection()){
+                if (!deviceDetection()) {
                     continue;
                 }
                 RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
@@ -130,7 +131,7 @@
                 RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
 
             } catch (Exception e) {
-                log.error("RGV琛岃蛋浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�"+e.getMessage());
+                log.error("RGV琛岃蛋浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�" + e.getMessage());
 //                e.printStackTrace();
             }
         }
@@ -144,7 +145,7 @@
             try {
                 // 浼戠湢 1 绉�
                 Thread.sleep(100);
-                if (!deviceDetection()){
+                if (!deviceDetection()) {
                     continue;
                 }
                 RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
@@ -159,36 +160,36 @@
                 }
 
                 List<TaskProtocol> allTakeTaskProtocol = taskProtocolCache.getTakeOrPutTaskProtocol(rgvProtocol.getLoaded());
-                for(TaskProtocol taskProtocol: allTakeTaskProtocol){
-                    if (taskProtocol.getIsRunning() == 1){//鍑嗗涓嬪彂
+                for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
+                    if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂
                         RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
                         //鍙岃溅
-                        if (rgvOtherStatusEnable()){
+                        if (rgvOtherStatusEnable()) {
                             //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
-                            if (!otherRgvAvoid(taskProtocol.getTargetPosition())){
+                            if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
                                 continue;
                             }
                         }
-                        Thread.sleep(200);
+                        Thread.sleep(100);
                         TaskProtocol issued = new TaskProtocol(taskProtocol);
                         write(issued);
-                        taskProtocol.setIsRunning(taskProtocol.getIsRunning() +1);
+                        taskProtocol.setIsRunning(taskProtocol.getIsRunning() + 1);
                         taskProtocolCache.updateTaskProtocol(taskProtocol);
                         break;
                     }
                 }
             } catch (Exception e) {
-                log.error("RGV鍙栬揣浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�"+e.getMessage());
+                log.error("RGV鍙栬揣浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�" + e.getMessage());
 //                e.printStackTrace();
             }
         }
     }
 
-    public boolean deviceDetection(){
+    public boolean deviceDetection() {
         RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
         RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
 
-        if (rgvProtocol == null || rgvTaskProtocol ==null) {
+        if (rgvProtocol == null || rgvTaskProtocol == null) {
             return false;
         }
         if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L
@@ -201,20 +202,20 @@
         if (rgvProtocolOther == null) {
             return false;
         }
-        if (rgvProtocolOther.statusEnable){
-            if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1  || rgvProtocolOther.getRgvPosDestination() == 0L) {
+        if (rgvProtocolOther.statusEnable) {
+            if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) {
                 return false;
             }
         }
         return true;
     }
 
-    public boolean rgvOtherStatusEnable(){
+    public boolean rgvOtherStatusEnable() {
         RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
         if (rgvProtocolOther == null) {
             return true;
         }
-        if (rgvProtocolOther.statusEnable){
+        if (rgvProtocolOther.statusEnable) {
 //            if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L)) {
             return true;
 //            }
@@ -222,134 +223,118 @@
         return false;
     }
 
-    public boolean otherRgvAvoid(Long targetPosition){
+    public boolean otherRgvAvoid(Long targetPosition) {
         RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
         RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
 
         RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
+        RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getOtherId());
+        Long[][] avoidRange = new TrackRangeUtils().avoidRange(slave, trackEntireLength, trackBenchmark, avoidDistance);
 
-        if (rgvProtocol.getRgvPos()<rgvProtocolOther.getRgvPos()){
-            if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)){
-                if ((rgvProtocolOther.getRgvPos()-rgvProtocolOther.getCarBodyJiaoMing())
-                        - (targetPosition+rgvProtocol.getCarBodyKunPeng())
-                        > avoidDistance){//鏃犻渶閬胯
+        if (new TrackRangeUtils().IsItSmall(slave)) {
+
+            if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)) {
+                if ((rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing())
+                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
+                        > avoidDistance) {//鏃犻渶閬胯
                     return true;
                 } else {
                     long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
-                    if (avoid > trackEntireLength-rgvProtocolOther.getCarBodyKunPeng()){
-                        log.error("閬胯瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
+                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
+                        log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
                         return false;
                     }
-                    rgvTaskProtocol.setAvoid(1);
-                    rgvTaskProtocol.setAvoidingTheDestination(avoid);
-                    RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
+                    rgvTaskProtocolOther.setAvoid(1);
+                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
+                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                     return true;
                 }
-            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)){
-                if ((rgvProtocolOther.getRgvPosDestination()-rgvProtocolOther.getCarBodyJiaoMing())
-                        - (targetPosition+rgvProtocol.getCarBodyKunPeng())
-                        > avoidDistance){//鏃犻渶閬胯
+            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)) {
+                if ((rgvProtocolOther.getRgvPosDestination() - rgvProtocolOther.getCarBodyJiaoMing())
+                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
+                        > avoidDistance) {//鏃犻渶閬胯
                     return true;
                 } else {
                     long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
-                    if (avoid > trackEntireLength-rgvProtocolOther.getCarBodyKunPeng()){
-                        log.error("閬胯瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
+                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
+                        log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
                         return false;
                     }
-                    rgvTaskProtocol.setAvoid(1);
-                    rgvTaskProtocol.setAvoidingTheDestination(avoid);
-                    RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
+                    rgvTaskProtocolOther.setAvoid(1);
+                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
+                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                     return true;
                 }
-            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)){
-                if ((rgvProtocolOther.getRgvPosDestination()-rgvProtocolOther.getCarBodyJiaoMing())
-                        - (targetPosition+rgvProtocol.getCarBodyKunPeng())
-                        > avoidDistance){//鏃犻渶閬胯
+            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)) {
+                if ((rgvProtocolOther.getRgvPosDestination() - rgvProtocolOther.getCarBodyJiaoMing())
+                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
+                        > avoidDistance) {//鏃犻渶閬胯
                     return true;
                 } else {
-                    RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvProtocolOther.getRgvNo());
-                    TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
-                    List<TaskProtocol> allPutTaskProtocol = taskProtocolCacheOther.getAllPutTaskProtocol();
-                    if (allPutTaskProtocol.size() > 1){
-                        return false;
-                    }
-                    for (TaskProtocol taskProtocol : allPutTaskProtocol){
-                        if (taskProtocol.getTargetPosition()>=rgvProtocolOther.getRgvPos()){
-                            long avoid = rgvProtocolOther.getRgvPos()-rgvProtocolOther.getCarBodyJiaoMing()-avoidDistance-rgvProtocol.getCarBodyKunPeng();
-                            if (avoid > trackEntireLength-rgvProtocolOther.getCarBodyKunPeng()){
-                                log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
-                                return false;
-                            }
-                            rgvTaskProtocol.setAvoid(1);
-                            rgvTaskProtocol.setAvoidingTheDestination(avoid);
-                            RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
-                            return false;
-                        } else {
+                    if (rgvProtocolOther.getRgvPosDestination() >= rgvProtocolOther.getRgvPos()) {
+                        long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng();
+                        if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
+                            log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
                             return false;
                         }
+                        rgvTaskProtocol.setAvoid(1);
+                        rgvTaskProtocol.setAvoidingTheDestination(avoid);
+                        RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
+                        return false;
                     }
                     return false;
                 }
             }
         } else {
-            if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)){
-                if ((targetPosition-rgvProtocol.getCarBodyJiaoMing())
-                        - (rgvProtocolOther.getRgvPos()+rgvProtocolOther.getCarBodyKunPeng())
-                        > avoidDistance){//鏃犻渶閬胯
+            if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)) {
+                if ((targetPosition - rgvProtocol.getCarBodyJiaoMing())
+                        - (rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng())
+                        > avoidDistance) {//鏃犻渶閬胯
                     return true;
                 } else {
-                    long avoid = targetPosition -rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
-                    if (avoid < trackBenchmark + rgvProtocolOther.getCarBodyJiaoMing()){
-                        log.error("閬胯瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
+                    long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
+                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
+                        log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
                         return false;
                     }
-                    rgvTaskProtocol.setAvoid(1);
-                    rgvTaskProtocol.setAvoidingTheDestination(avoid);
-                    RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
+                    rgvTaskProtocolOther.setAvoid(1);
+                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
+                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                     return true;
                 }
-            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)){
-                if ((targetPosition-rgvProtocol.getCarBodyJiaoMing())
-                        - (rgvProtocolOther.getRgvPosDestination()+rgvProtocolOther.getCarBodyKunPeng())
-                        > avoidDistance){//鏃犻渶閬胯
+            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)) {
+                if ((targetPosition - rgvProtocol.getCarBodyJiaoMing())
+                        - (rgvProtocolOther.getRgvPosDestination() + rgvProtocolOther.getCarBodyKunPeng())
+                        > avoidDistance) {//鏃犻渶閬胯
                     return true;
                 } else {
-                    long avoid = targetPosition -rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
-                    if (avoid < trackBenchmark + rgvProtocolOther.getCarBodyJiaoMing()){
-                        log.error("閬胯瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
+                    long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
+                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
+                        log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
                         return false;
                     }
-                    rgvTaskProtocol.setAvoid(1);
-                    rgvTaskProtocol.setAvoidingTheDestination(avoid);
-                    RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
+                    rgvTaskProtocolOther.setAvoid(1);
+                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
+                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                     return true;
                 }
-            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)){
-                if ((targetPosition-rgvProtocol.getCarBodyJiaoMing())
-                        - (rgvProtocolOther.getRgvPosDestination()+rgvProtocolOther.getCarBodyKunPeng())
-                        > avoidDistance){//鏃犻渶閬胯
+
+            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)) {
+                if ((targetPosition - rgvProtocol.getCarBodyJiaoMing())
+                        - (rgvProtocolOther.getRgvPosDestination() + rgvProtocolOther.getCarBodyKunPeng())
+                        > avoidDistance) {//鏃犻渶閬胯
                     return true;
                 } else {
-                    RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvProtocolOther.getRgvNo());
-                    TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
-                    List<TaskProtocol> allPutTaskProtocol = taskProtocolCacheOther.getAllPutTaskProtocol();
-                    if (allPutTaskProtocol.size() > 1){
-                        return false;
-                    }
-                    for (TaskProtocol taskProtocol : allPutTaskProtocol){
-                        if (taskProtocol.getTargetPosition()<=rgvProtocolOther.getRgvPos()){
-                            long avoid = rgvProtocolOther.getRgvPos()+rgvProtocolOther.getCarBodyKunPeng()+avoidDistance+rgvProtocol.getCarBodyJiaoMing();
-                            if (avoid < trackBenchmark + rgvProtocolOther.getCarBodyJiaoMing()){
-                                log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
-                                return false;
-                            }
-                            rgvTaskProtocol.setAvoid(1);
-                            rgvTaskProtocol.setAvoidingTheDestination(avoid);
-                            RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
-                            return false;
-                        } else {
+                    if (rgvProtocolOther.getRgvPosDestination() <= rgvProtocolOther.getRgvPos()) {
+                        long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing();
+                        if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
+                            log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯�  鑱旂郴绠$悊鍛橈紒锛侊紒");
                             return false;
                         }
+                        rgvTaskProtocol.setAvoid(1);
+                        rgvTaskProtocol.setAvoidingTheDestination(avoid);
+                        RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
+                        return false;
                     }
                     return false;
                 }
@@ -368,25 +353,25 @@
             rgvProtocol.setRgvNo(slave.getId());
         }
         rgvProtocol.setMode((short) -1);
-        rgvProtocol.setStatus((short)-1);
-        rgvProtocol.setWalkPos((short)0);
+        rgvProtocol.setStatus((short) -1);
+        rgvProtocol.setWalkPos((short) 0);
         rgvProtocol.setRgvPos(0L);
-        rgvProtocol.setAlarm((short)0);
+        rgvProtocol.setAlarm((short) 0);
         rgvProtocol.setxSpeed((short) 0);
         rgvProtocol.setxDistance((short) 0);
         rgvProtocol.setxDuration((short) 0);
         rgvProtocol.setCarBodyJiaoMing(0L);
         rgvProtocol.setCarBodyKunPeng(0L);
-        try{
+        try {
             BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class);
             BasRgv rgv = basRgvService.selectById(slave.getId());
-            if (!Cools.isEmpty(rgv)){
+            if (!Cools.isEmpty(rgv)) {
                 rgvProtocol.setStatusEnable(rgv.getStatus() == 1);
             } else {
                 rgvProtocol.setStatusEnable(false);
             }
-        } catch (Exception e){
-            log.error("RGV寮傚父锛侊紒锛�"+e.getMessage());
+        } catch (Exception e) {
+            log.error("RGV寮傚父锛侊紒锛�" + e.getMessage());
             rgvProtocol.setStatusEnable(true);
         }
 
@@ -411,7 +396,7 @@
         siemensNet.setRack(slave.getRack().byteValue());
         siemensNet.setSlot(slave.getSlot().byteValue());
         OperateResult connect = siemensNet.ConnectServer();
-        if(connect.IsSuccess){
+        if (connect.IsSuccess) {
             result = true;
 //            OutputQueue.RGV.offer(MessageFormat.format( "銆恵0}銆慠GV plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
             log.info("RGV plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
@@ -428,7 +413,7 @@
     /**
      * 璇诲彇鐘舵��
      */
-    private void readStatus(){
+    private void readStatus() {
         try {
             OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 34);
             if (result.IsSuccess) {
@@ -446,7 +431,7 @@
 //                rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
 //                rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
 
-                OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+                OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
 //                // 宸ヤ綅1澶嶄綅淇″彿
 //                if (rgvProtocol.getStatusType().equals(RgvStatusType.WAITING)
 //                        || rgvProtocol.getStatusType().equals(RgvStatusType.FETCHWAITING)) {
@@ -463,18 +448,18 @@
                     // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                     BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class);
                     BasRgv basRgv = basRgvService.selectById(slave.getId());
-                    if (!Cools.isEmpty(basRgv)){
+                    if (!Cools.isEmpty(basRgv)) {
                         rgvProtocol.setStatusEnable(basRgv.getStatus() == 1);
                     } else {
                         rgvProtocol.setStatusEnable(false);
                     }
 //                    BasRgv basRgv = new BasRgv();
                     basRgv.setRgvNo(slave.getId());
-                    basRgv.setRgvSts((int)rgvProtocol.getMode());
-                    if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){
+                    basRgv.setRgvSts((int) rgvProtocol.getMode());
+                    if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))) {
                         log.error("RGV plc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                     }
-                } catch (Exception ignore){
+                } catch (Exception ignore) {
 
                 }
 
@@ -512,6 +497,7 @@
 //        array[4] = command.getDestinationStaNo();
 //        array[10] = taskProtocol.getCommand();
         OperateResult result = siemensNet.Write("DB100.0", taskProtocol.getTaskNo());
+        OperateResult result1 = siemensNet.Write("DB100.1", taskProtocol.isDirection()); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級    true:宸�   false:鍙�
 
 //        if (taskProtocol.getAckFinish1() == 0) {
 //            short commandFinish = 3;  //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆
@@ -531,13 +517,14 @@
                     null,
                     null,
                     null,
-                    result.IsSuccess? 1 : 0,
+                    result.IsSuccess ? 1 : 0,
                     null,
                     new Date(),
                     null
             );
             bean.insert(basRgvOpt);
-        } catch (Exception ignore) {}
+        } catch (Exception ignore) {
+        }
 
         if (result != null && result.IsSuccess) {
             Thread.sleep(200);

--
Gitblit v1.9.1