From 210663040bf65ee00b5f86545fdc31bd0356fddf Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 27 八月 2026 16:31:53 +0800
Subject: [PATCH] feat(device): persist simulator discovery in redis

---
 ruoyi-admin/src/main/java/com/ruoyi/config/DeviceAdapterRuntimeConfig.java |   34 +++++++++++++---------------------
 1 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/config/DeviceAdapterRuntimeConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/config/DeviceAdapterRuntimeConfig.java
index a86366d..621bda0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/config/DeviceAdapterRuntimeConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/config/DeviceAdapterRuntimeConfig.java
@@ -8,9 +8,10 @@
 import org.springframework.scheduling.annotation.EnableScheduling;
 import com.ruoyi.device.bts.BtsDeviceAdapterFactory;
 import com.ruoyi.device.bts.BtsDevelopmentSimulator;
+import com.ruoyi.device.model.AdapterCapabilities;
+import com.ruoyi.device.registry.AdapterInstanceConfig;
 import com.ruoyi.device.registry.DeviceAdapterRegistry;
-import com.ruoyi.system.domain.TDeviceAdapter;
-import com.ruoyi.system.service.IDeviceAdapterService;
+import com.ruoyi.device.simulator.BtsSimulatorStateStore;
 
 /** 装配单进程设备适配器运行时。 */
 @Configuration
@@ -24,32 +25,23 @@
     }
 
     @Bean(destroyMethod = "close")
-    public BtsDevelopmentSimulator btsDevelopmentSimulator() throws IOException
+    public BtsDevelopmentSimulator btsDevelopmentSimulator(BtsSimulatorStateStore stateStore) throws IOException
     {
-        return new BtsDevelopmentSimulator(BtsDevelopmentSimulator.DEFAULT_PORT);
+        return new BtsDevelopmentSimulator(BtsDevelopmentSimulator.DEFAULT_PORT, stateStore);
     }
 
     @Bean
-    public ApplicationRunner registerDevelopmentSimulatorAdapter(IDeviceAdapterService service)
+    public ApplicationRunner registerDevelopmentSimulatorAdapter(DeviceAdapterRegistry registry)
     {
-        // ApplicationRunner 先于 ApplicationReadyEvent,确保恢复启用适配器时 dev-sim 已存在。
-        return arguments -> service.ensureManagedAdapter(developmentSimulatorAdapter());
+        // 固定开发装配不进入 t_device_adapter,直接注册运行时实例。
+        return arguments -> registry.synchronize(developmentSimulatorRuntimeConfig());
     }
 
-    private TDeviceAdapter developmentSimulatorAdapter()
+    private AdapterInstanceConfig developmentSimulatorRuntimeConfig()
     {
-        TDeviceAdapter adapter = new TDeviceAdapter();
-        adapter.setAdapterCode("dev-sim");
-        adapter.setAdapterName("dev-sim BTS 模拟器");
-        adapter.setAdapterType("BTS");
-        adapter.setHost(BtsDevelopmentSimulator.HOST);
-        adapter.setPort(BtsDevelopmentSimulator.DEFAULT_PORT);
-        adapter.setPollIntervalMs(5000);
-        adapter.setTimezoneId("Asia/Hong_Kong");
-        adapter.setReadOnly(true);
-        adapter.setCapabilities("{\"discovery\":true,\"realtimeObservation\":true,"
-                + "\"historyDownload\":false,\"control\":false}");
-        adapter.setRemark("临时人工验收设备");
-        return adapter;
+        return new AdapterInstanceConfig(BtsDevelopmentSimulator.ADAPTER_CODE, "BTS", BtsDevelopmentSimulator.HOST,
+                BtsDevelopmentSimulator.DEFAULT_PORT, BtsDevelopmentSimulator.POLL_INTERVAL_MS,
+                "Asia/Hong_Kong", true,
+                new AdapterCapabilities(true, true, false, false));
     }
 }

--
Gitblit v1.7.1