package com.ruoyi.config; import java.io.IOException; import java.util.List; import org.springframework.boot.ApplicationRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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.device.simulator.BtsSimulatorStateStore; /** 装配单进程设备适配器运行时。 */ @Configuration @EnableScheduling public class DeviceAdapterRuntimeConfig { @Bean(destroyMethod = "close") public DeviceAdapterRegistry deviceAdapterRegistry() { return new DeviceAdapterRegistry(List.of(new BtsDeviceAdapterFactory())); } @Bean(destroyMethod = "close") public BtsDevelopmentSimulator btsDevelopmentSimulator(BtsSimulatorStateStore stateStore) throws IOException { return new BtsDevelopmentSimulator(BtsDevelopmentSimulator.DEFAULT_PORT, stateStore); } @Bean public ApplicationRunner registerDevelopmentSimulatorAdapter(DeviceAdapterRegistry registry) { // 固定开发装配不进入 t_device_adapter,直接注册运行时实例。 return arguments -> registry.synchronize(developmentSimulatorRuntimeConfig()); } private AdapterInstanceConfig developmentSimulatorRuntimeConfig() { 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)); } }