| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using System;
- using System.ComponentModel;
- using System.Threading.Tasks;
- namespace TeamAAS.Communication.Interfaces
- {
- /// <summary>
- /// 通用通讯接口。PLC、仪器、传感器等设备只要实现本接口 + 标记
- /// <see cref="TeamAAS.Communication.Attributes.CommunicationAttribute"/>,
- /// 即可被 CommunicationFactory 反射发现并出现在窗体配置列表中。
- /// </summary>
- public interface ICommunication : IDisposable
- {
- [Browsable(false)]
- /// <summary>唯一标识</summary>
- Guid Id { get; set; }
- [Browsable(false)]
- /// <summary>序号(用于排序/编号)</summary>
- int Index { get; set; }
- [Category("I.基础配置"), DisplayName("1.设备名称"), Description("设置设备名称")]
- /// <summary>显示名称</summary>
- string Name { get; set; }
- [Browsable(false)]
- /// <summary>类型标识(全限定类名,反射创建用)</summary>
- string TypeKey { get; }
- [Browsable(false)]
- /// <summary>连接地址(tcp://ip:port 或 opc.tcp://...)</summary>
- string EndpointUrl { get; set; }
- [Category("I.基础配置"), DisplayName("2.是否已连接"), Description("是否已连接")]
- [ReadOnly(true)]
- /// <summary>是否已连接</summary>
- bool IsConnected { get; }
- /// <summary>连接状态变化事件</summary>
- event Action<object, bool> ConnectChangedEvent;
- /// <summary>数据到达事件(参数:发送者, 收到的文本)</summary>
- event Action<object, string> DataReceivedEvent;
- /// <summary>连接(同步)</summary>
- void Connect();
- /// <summary>连接(异步)</summary>
- Task ConnectAsync();
- /// <summary>断开连接</summary>
- void Disconnect();
- /// <summary>读取单个值</summary>
- object ReadValue(string address);
- /// <summary>读取单个值(异步)</summary>
- Task<object> ReadValueAsync(string address);
- /// <summary>写入单个值</summary>
- void WriteValue(string address, object value);
- /// <summary>写入单个值(异步)</summary>
- Task WriteValueAsync(string address, object value);
- }
- }
|