yeg
2026-09-02 c2dd019c1fddaeae412e2b6f44fb86ff0dc635d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.ruoyi.device.bts;
 
import java.time.Duration;
import java.time.ZoneId;
import com.ruoyi.device.api.DeviceAdapter;
import com.ruoyi.device.registry.AdapterInstanceConfig;
import com.ruoyi.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());
    }
}