using System;
using System.ComponentModel;
using System.Threading.Tasks;
namespace TeamAAS.Communication.Interfaces
{
///
/// 通用通讯接口。PLC、仪器、传感器等设备只要实现本接口 + 标记
/// ,
/// 即可被 CommunicationFactory 反射发现并出现在窗体配置列表中。
///
public interface ICommunication : IDisposable
{
[Browsable(false)]
/// 唯一标识
Guid Id { get; set; }
[Browsable(false)]
/// 序号(用于排序/编号)
int Index { get; set; }
[Category("I.基础配置"), DisplayName("1.设备名称"), Description("设置设备名称")]
/// 显示名称
string Name { get; set; }
[Browsable(false)]
/// 类型标识(全限定类名,反射创建用)
string TypeKey { get; }
[Browsable(false)]
/// 连接地址(tcp://ip:port 或 opc.tcp://...)
string EndpointUrl { get; set; }
[Category("I.基础配置"), DisplayName("2.是否已连接"), Description("是否已连接")]
[ReadOnly(true)]
/// 是否已连接
bool IsConnected { get; }
/// 连接状态变化事件
event Action