From f033da325dd16825bbca0d1ac71cc76420dfc8a2 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 09 一月 2026 11:14:36 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/network/ZyStationConnectDriver.java |   31 +++++++++++++++++++++++++++----
 1 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/core/network/ZyStationConnectDriver.java b/src/main/java/com/zy/core/network/ZyStationConnectDriver.java
index 7ec13eb..78be50b 100644
--- a/src/main/java/com/zy/core/network/ZyStationConnectDriver.java
+++ b/src/main/java/com/zy/core/network/ZyStationConnectDriver.java
@@ -9,7 +9,9 @@
 import com.zy.core.network.entity.ZyStationStatusEntity;
 import java.util.List;
 import com.zy.core.network.fake.ZyStationFakeConnect;
+import com.zy.core.network.fake.ZyStationFakeSegConnect;
 import com.zy.core.network.real.ZyStationRealConnect;
+import com.zy.core.network.real.ZyStationV3RealConnect;
 import lombok.extern.slf4j.Slf4j;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -21,6 +23,9 @@
  */
 @Slf4j
 public class ZyStationConnectDriver implements ThreadHandler {
+
+    private static final ZyStationFakeConnect zyStationFakeConnect = new ZyStationFakeConnect();
+    private static final ZyStationFakeSegConnect zyStationFakeSegConnect = new ZyStationFakeSegConnect();
 
     private boolean connected = false;
     private DeviceConfig deviceConfig;
@@ -42,9 +47,19 @@
     @Override
     public boolean connect() {
         if (deviceConfig.getFake() == 0) {
-            zyStationConnectApi = new ZyStationRealConnect(deviceConfig, redisUtil);
+            if ("ZyStationV3Thread".equals(deviceConfig.getThreadImpl())) {
+                zyStationConnectApi = new ZyStationV3RealConnect(deviceConfig, redisUtil);
+            } else {
+                zyStationConnectApi = new ZyStationRealConnect(deviceConfig, redisUtil);
+            }
         } else {
-            zyStationConnectApi = new ZyStationFakeConnect(deviceConfig, redisUtil);
+            if ("ZyStationV3Thread".equals(deviceConfig.getThreadImpl())) {
+                zyStationFakeSegConnect.addFakeConnect(deviceConfig, redisUtil);
+                zyStationConnectApi = zyStationFakeSegConnect;
+            } else {
+                zyStationFakeConnect.addFakeConnect(deviceConfig, redisUtil);
+                zyStationConnectApi = zyStationFakeConnect;
+            }
         }
 
         boolean connect = zyStationConnectApi.connect();
@@ -95,10 +110,18 @@
         if (zyStationConnectApi == null) {
             return null;
         }
-        return zyStationConnectApi.getStatus();
+        return zyStationConnectApi.getStatus(deviceConfig.getDeviceNo());
     }
 
     public CommandResponse sendCommand(StationCommand command) {
-        return zyStationConnectApi.sendCommand(command);
+        return zyStationConnectApi.sendCommand(deviceConfig.getDeviceNo(), command);
+    }
+
+    public CommandResponse sendOriginCommand(String address, short[] data) {
+        return zyStationConnectApi.sendOriginCommand(address, data);
+    }
+
+    public byte[] readOriginCommand(String address, int length) {
+        return zyStationConnectApi.readOriginCommand(address, length);
     }
 }

--
Gitblit v1.9.1