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,
|
BtsDevelopmentSimulator simulator,
|
@Value("${battery.dev-simulator.port:15020}") int simulatorPort)
|
{
|
// 固定开发装配不进入 t_device_adapter,直接注册运行时实例。
|
// 注册模拟器对象本身,使发现与取数落在同一实例上,不再单独注入扩展观测 Bean。
|
return arguments -> registry.register(developmentSimulatorRuntimeConfig(simulatorPort), simulator);
|
}
|
|
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));
|
}
|
}
|