yeg
2026-08-27 210663040bf65ee00b5f86545fdc31bd0356fddf
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));
    }
}