package com.battery.device.bts;
|
|
import java.time.Duration;
|
import java.time.ZoneId;
|
import com.battery.device.api.DeviceAdapter;
|
import com.battery.device.registry.AdapterInstanceConfig;
|
import com.battery.device.registry.DeviceAdapterFactory;
|
|
/** 根据数据库配置构造 BTS 只读适配器。 */
|
public final class BtsDeviceAdapterFactory implements DeviceAdapterFactory
|
{
|
private static final Duration CONNECT_TIMEOUT = Duration.ofSeconds(3);
|
private static final Duration RESPONSE_TIMEOUT = Duration.ofSeconds(30);
|
|
@Override
|
public String adapterType()
|
{
|
return "BTS";
|
}
|
|
@Override
|
public DeviceAdapter create(AdapterInstanceConfig config)
|
{
|
BtsTcpTransport transport = new BtsTcpTransport(config.host(), config.port(),
|
CONNECT_TIMEOUT, RESPONSE_TIMEOUT);
|
return new BtsDeviceAdapter(config.adapterCode(), transport,
|
new BtsXmlCodec(config.adapterCode(), ZoneId.of(config.timezoneId())), config.capabilities());
|
}
|
}
|