From 5432b5251106ba5e8e5512c6868d31ebaec0b8ce Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 31 三月 2025 09:59:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/NyShuttleThread.java |   37 +++++++++++++++++++++++++++----------
 1 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
index b1d324c..52dd73a 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -78,6 +78,7 @@
             while (true) {
                 try {
                     listenSocketMessage();
+                    listenInit();//鐩戝惉鍒濆鍖栦簨浠�
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -136,7 +137,6 @@
         Thread otherThread = new Thread(() -> {
             while (true) {
                 try {
-                    listenInit();//鐩戝惉鍒濆鍖栦簨浠�
                     saveLog();//淇濆瓨鏁版嵁
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -202,7 +202,7 @@
                 JSONObject body = response.getJSONObject("body");
                 if (body.containsKey("workingMode")) {
                     //read
-                    socketReadResults.add(result);
+                    socketReadResults.add(body);
                     return;
                 }
             }
@@ -292,6 +292,10 @@
             requestCommandAsync(readStatusCommand);//璇锋眰鐘舵��
 
             if (this.socketReadResults.isEmpty()) {
+                if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) {
+                    //鏈�鍚庝竴娆′笂绾挎椂闂磋秴杩�60s锛岃瀹氱绾�
+                    this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE);
+                }
                 return;
             }
 
@@ -300,7 +304,7 @@
             if (data == null) {
                 if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) {
                     //鏈�鍚庝竴娆′笂绾挎椂闂磋秴杩�60s锛岃瀹氱绾�
-                    shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE);
+                    this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE);
                 }
                 OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
             }else {
@@ -357,9 +361,13 @@
                     shuttleProtocol.setPakMk(true);
                 }
 
-                if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == 0) {
+                if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == 1) {
                     //灏忚溅绌洪棽鐘舵�併�佸皬杞︿换鍔$姸鎬佷负鏈煡锛岃瀹氭浘绂荤嚎杩囷紝闇�瑕佸浣嶆垚绌洪棽
-                    shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE);
+                    this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+                }
+
+                if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE) && shuttleProtocol.getDeviceStatus().intValue() == 1) {
+                    this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
                 }
 
                 this.originDeviceData = data;
@@ -743,12 +751,21 @@
             return false;
         }
 
+        if (this.shuttleProtocol.getMode() == 0) {
+            return true;
+        }
+
+        if (!this.shuttleProtocol.getErrorCode().equals("0")) {
+            return true;
+        }
+
         InnerSuhttleExtend extend = (InnerSuhttleExtend) this.shuttleProtocol.getExtend();
-        boolean res = this.shuttleProtocol.getMode() == 0
-                && !this.shuttleProtocol.getErrorCode().equals("0")
-                && extend.getSuspendState() == 1
-                ;
-        return res;
+
+        if (extend.getSuspendState() == 1) {
+            return true;
+        }
+
+        return false;
     }
 
     @Override

--
Gitblit v1.9.1