TCP 扩展 - Snet Docs

TEP 协议驱动

包: Snet.TEP | 类: TepMasterOperate | 类型数量: 2

通过 TEP(同方能源协议)提供与设备的连接,该协议是一种用于楼宇自动化和能源监控系统的中国能源管理协议。

安装

dotnet add package Snet.TEP

快速入门

using Snet.TEP;

var op = new TepMasterOperate(new TepData.Basics
{
    IpAddress = "192.168.1.100",
    Port = 6688
});

var address = new Address(new List<AddressDetails>
{
    new("读数", "0101", DataType.Float),
    new("读数2", "0102", DataType.Float)
});
var result = await op.ReadAsync(address);
if (result.Status)
{
    var data = result.GetSource<ConcurrentDictionary<string, AddressValue>>();
    foreach (var kv in data)
        Console.WriteLine($"{kv.Key} = {kv.Value.ResultValue}");
}
else
{
    Console.WriteLine($"读取失败: {result.Message}");
}

// 订阅之前 绑定数据事件
op.OnDataEventAsync += async (sender, e) =>
{
    if (e.Status)
    {
        var data = e.GetSource<ConcurrentDictionary<string, AddressValue>>();
        foreach (var kv in data)
            Console.WriteLine($"{kv.Key} = {kv.Value.ResultValue}");
    }
    else
    {
        Console.WriteLine($"{e.Message}");
    }
};

var subAddr = new Address(new List<AddressDetails>
{
    new("读数", "0101", DataType.Float)
});
await op.SubscribeAsync(subAddr);

// 后续:取消订阅
// await op.UnSubscribeAsync(subAddr);

await op.DisposeAsync();

配置参数

参数 类型 默认值 说明
IpAddress string 设备 IP 地址
Port int 6688 通信端口
ConnectTimeOut int 1000 连接超时(毫秒)
ReceiveTimeOut int 1000 接收超时(毫秒)

支持类型

类型 说明
TepMaster 主站(发起请求)
TepSlave 从站(响应请求)

TEP 采用主站/从站分离架构,分别使用 TepMasterOperateTepSlaveOperate 类。协议适用于电能表、电力监控仪及楼宇自动化设备,支持参数和能源数据寄存器访问。

支持操作

操作 方法
连接 OnAsync()
断开 OffAsync()
读取 ReadAsync(address)
写入 WriteAsync(values)
订阅 SubscribeAsync(address)

参见