From 0d11ab9cfb4e9728b2b182cdff1155221d6c9ade Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期六, 10 一月 2026 09:10:03 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/core/network/ZyStationConnectDriver.java b/src/main/java/com/zy/core/network/ZyStationConnectDriver.java
index 61edc2a..78be50b 100644
--- a/src/main/java/com/zy/core/network/ZyStationConnectDriver.java
+++ b/src/main/java/com/zy/core/network/ZyStationConnectDriver.java
@@ -1,6 +1,7 @@
 package com.zy.core.network;
 
 import com.zy.asrs.entity.DeviceConfig;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.ThreadHandler;
 import com.zy.core.model.CommandResponse;
 import com.zy.core.model.command.StationCommand;
@@ -8,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,14 +24,19 @@
 @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;
+    private RedisUtil redisUtil;
     private ZyStationConnectApi zyStationConnectApi;
     private volatile boolean closed = false;
     private ScheduledExecutorService executor;
 
-    public ZyStationConnectDriver(DeviceConfig deviceConfig) {
+    public ZyStationConnectDriver(DeviceConfig deviceConfig, RedisUtil redisUtil) {
         this.deviceConfig = deviceConfig;
+        this.redisUtil = redisUtil;
     }
 
     @Override
@@ -39,9 +47,19 @@
     @Override
     public boolean connect() {
         if (deviceConfig.getFake() == 0) {
-            zyStationConnectApi = new ZyStationRealConnect(deviceConfig);
+            if ("ZyStationV3Thread".equals(deviceConfig.getThreadImpl())) {
+                zyStationConnectApi = new ZyStationV3RealConnect(deviceConfig, redisUtil);
+            } else {
+                zyStationConnectApi = new ZyStationRealConnect(deviceConfig, redisUtil);
+            }
         } else {
-            zyStationConnectApi = new ZyStationFakeConnect(deviceConfig);
+            if ("ZyStationV3Thread".equals(deviceConfig.getThreadImpl())) {
+                zyStationFakeSegConnect.addFakeConnect(deviceConfig, redisUtil);
+                zyStationConnectApi = zyStationFakeSegConnect;
+            } else {
+                zyStationFakeConnect.addFakeConnect(deviceConfig, redisUtil);
+                zyStationConnectApi = zyStationFakeConnect;
+            }
         }
 
         boolean connect = zyStationConnectApi.connect();
@@ -92,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