package com.battery.business.runtime; import java.io.IOException; import org.springframework.boot.ApplicationRunner; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.*; import com.battery.device.api.registry.*; import com.battery.device.api.model.AdapterCapabilities; import com.battery.device.simulator.*; /** 开发模拟器装配可整体移除,业务和真实 BTS 不引用此配置。 */ @Configuration @Profile("dev-simulator") public class DevelopmentSimulatorConfig { @Bean(destroyMethod = "close") @Profile("dev-simulator") public BtsDevelopmentSimulator btsDevelopmentSimulator(BtsSimulatorStateStore stateStore, @Value("${battery.dev-simulator.port:15020}") int simulatorPort) throws IOException { return new BtsDevelopmentSimulator(simulatorPort, stateStore); } @Bean @Profile("dev-simulator") public ApplicationRunner registerDevelopmentSimulatorAdapter(DeviceAdapterRegistry registry, @Value("${battery.dev-simulator.port:15020}") int simulatorPort) { // 固定开发装配不进入 t_device_adapter,直接注册运行时实例。 return arguments -> registry.synchronize(developmentSimulatorRuntimeConfig(simulatorPort)); } private AdapterInstanceConfig developmentSimulatorRuntimeConfig(int simulatorPort) { return new AdapterInstanceConfig(BtsDevelopmentSimulator.ADAPTER_CODE, "BTS", BtsDevelopmentSimulator.HOST, simulatorPort, BtsDevelopmentSimulator.POLL_INTERVAL_MS, "Asia/Hong_Kong", true, new AdapterCapabilities(true, true, false, false)); } }