From b89cb5972e469ee5856cf7718ec90d067b86d99e Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 08 七月 2025 16:56:02 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 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 6071aae..53e7eee 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
@@ -130,6 +130,10 @@
             try {
                 JSONObject fakeStatus = fakeStatusMap.get(key);
                 String commandType = command.getString("commandType");
+                if (commandType == null) {
+                    return;
+                }
+
                 if (commandType.equals("liftUp")) {
                     fakeStatus.put("deviceStatus", 0);//璁惧蹇欑
                     fakeStatusMap.put(key, fakeStatus);
@@ -155,6 +159,18 @@
                     //delay
                     Thread.sleep(2000);
                     fakeStatus.put("hasCharge", true);
+
+                    Integer batteryPower = Integer.parseInt(fakeStatus.getString("batteryPower"));
+                    while (true) {
+                        Thread.sleep(10000);
+                        batteryPower = batteryPower + 1;
+                        fakeStatus.put("batteryPower", batteryPower);
+                        fakeStatusMap.put(key, fakeStatus);
+                        if(batteryPower >= 100) {
+                            break;
+                        }
+                    }
+
                     fakeStatus.put("deviceStatus", 1);//璁惧绌洪棽
                     fakeStatusMap.put(key, fakeStatus);
                 }else if (commandType.equals("stopCharge")) {
@@ -212,8 +228,18 @@
     private void handleClient(DeviceConfig device) throws IOException {
         try {
             Socket socket = fakeServerMap.get(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo());
+            if (socket == null) {
+                removeFake(device);
+                return;
+            }
+            InputStream inputStream = socket.getInputStream();
+            if(inputStream == null){
+                removeFake(device);
+                return;
+            }
+
             // 鑾峰彇杈撳叆娴�
-            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
             // 璇诲彇鏈嶅姟鍣ㄧ殑鍝嶅簲
             StringBuffer sb = new StringBuffer();
             char[] chars = new char[2048];//缂撳啿鍖�
@@ -234,6 +260,12 @@
         }
     }
 
+    private void removeFake(DeviceConfig device) {
+        fakeServerMap.remove(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo());
+        fakeStatusMap.remove(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo());
+        fakeCommandMap.remove(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo());
+    }
+
     public void processCommand(JSONObject result, DeviceConfig device) throws IOException {
         String response = null;
         JSONObject fakeStatus = fakeStatusMap.get(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo());

--
Gitblit v1.9.1