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.registry.DeviceAdapterRegistry;
|
import com.ruoyi.system.domain.TDeviceAdapter;
|
import com.ruoyi.system.service.IDeviceAdapterService;
|
|
/** 装配单进程设备适配器运行时。 */
|
@Configuration
|
@EnableScheduling
|
public class DeviceAdapterRuntimeConfig
|
{
|
@Bean(destroyMethod = "close")
|
public DeviceAdapterRegistry deviceAdapterRegistry()
|
{
|
return new DeviceAdapterRegistry(List.of(new BtsDeviceAdapterFactory()));
|
}
|
|
@Bean(destroyMethod = "close")
|
public BtsDevelopmentSimulator btsDevelopmentSimulator() throws IOException
|
{
|
return new BtsDevelopmentSimulator(BtsDevelopmentSimulator.DEFAULT_PORT);
|
}
|
|
@Bean
|
public ApplicationRunner registerDevelopmentSimulatorAdapter(IDeviceAdapterService service)
|
{
|
// ApplicationRunner 先于 ApplicationReadyEvent,确保恢复启用适配器时 dev-sim 已存在。
|
return arguments -> service.ensureManagedAdapter(developmentSimulatorAdapter());
|
}
|
|
private TDeviceAdapter developmentSimulatorAdapter()
|
{
|
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;
|
}
|
}
|