From 1443e13e91ffb1bc6548722ef6a7a3b68d0ceed9 Mon Sep 17 00:00:00 2001
From: zy <zy@123>
Date: 星期三, 16 七月 2025 10:32:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java |   34 ++++++++++++++++++++++++++++------
 1 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
index 8362d60..2333ccc 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
@@ -30,6 +30,7 @@
     private JSONObject fakeStatusDemo = JSONObject.parseObject("{\"mode\":1,\"extend\":{\"countQuantity\":400,\"suspendState\":0,\"minCellVoltage\":3279,\"chargeCycleTimes\":0,\"maxCellVoltage\":3281,\"surplusQuantity\":204,\"voltage\":5248},\"hasLift\":false,\"hasPallet\":false,\"batteryVoltage\":5248,\"runDirection\":\"2\",\"currentCode\":\"{\\\"x\\\":19,\\\"y\\\":11,\\\"z\\\":2}\",\"errorCode\":\"0\",\"hasCharge\":false,\"batteryPower\":\"51\",\"speed\":0,\"deviceStatus\":1}");
     private ServerSocket serverSocket;
     private Integer gatewayPort;
+    private boolean enableFakeAndDeviceThread;
     private ConcurrentHashMap<String, Thread> fakeThreadMap = new ConcurrentHashMap();
     private ConcurrentHashMap<String, Socket> fakeServerMap = new ConcurrentHashMap();
     private ConcurrentHashMap<String, JSONObject> fakeStatusMap = new ConcurrentHashMap();
@@ -37,9 +38,10 @@
 
     private boolean fake = false;
 
-    public FakeNyShuttleThread(RedisUtil redisUtil, Integer gatewayPort) {
+    public FakeNyShuttleThread(RedisUtil redisUtil, Integer gatewayPort, boolean enableFakeAndDeviceThread) {
         this.redisUtil = redisUtil;
         this.gatewayPort = gatewayPort;
+        this.enableFakeAndDeviceThread = enableFakeAndDeviceThread;
     }
 
     @Override
@@ -95,7 +97,13 @@
                     }
 
 //                    log.info("acceptorThread is end:{}", sb.toString());
-                    JSONObject result = JSON.parseObject(sb.toString());
+                    JSONObject result = null;
+                    try {
+                        result = JSON.parseObject(sb.toString());
+                    }catch (Exception e) {
+                        log.error("error body:{}", sb.toString());
+                        e.printStackTrace();
+                    }
                     if(result == null){
                         continue;
                     }
@@ -178,6 +186,21 @@
                 continue;
             }
 
+            if (enableFakeAndDeviceThread) {
+                NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
+                if (shuttleThread == null) {
+                    // init
+                    NyShuttleThread thread = new NyShuttleThread(device, redisUtil);;
+                    new Thread(thread).start();
+                    SlaveConnection.put(SlaveType.Shuttle, device.getDeviceNo(), thread);
+                }else {
+                    Socket socket = shuttleThread.getSocket();
+                    if(socket == null){
+                        continue;
+                    }
+                }
+            }
+
             log.info("{}:device is run,devices:{}", device.getDeviceNo(),JSON.toJSONString(fakeServerMap));
 
             Thread fakeThread = new Thread(() -> {
@@ -195,10 +218,9 @@
             fakeThread.start();
             fakeThreadMap.put(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo(), fakeThread);
 
-            // init
-            ThreadHandler thread = new NyShuttleThread(device, redisUtil);;
-            new Thread(thread).start();
-            SlaveConnection.put(SlaveType.Shuttle, device.getDeviceNo(), thread);
+            try {
+                Thread.sleep(2000);
+            }catch (Exception e){}
         }
     }
 

--
Gitblit v1.9.1