using System; using System.Threading.Tasks; namespace Serein.Library.Network.Modbus { /// /// Modbus 客户端通用接口 (TCP/RTU 通用) /// public interface IModbusClient : IDisposable { /// /// 报文发送时 /// Action OnTx { get; set; } /// /// 接收到报文时 /// Action OnRx { get; set; } /// /// 读取线圈状态 (0x01) /// Task ReadCoils(ushort startAddress, ushort quantity); /// /// 读取离散输入状态 (0x02) /// Task ReadDiscreteInputs(ushort startAddress, ushort quantity); /// /// 读取保持寄存器 (0x03) /// Task ReadHoldingRegisters(ushort startAddress, ushort quantity); /// /// 读取输入寄存器 (0x04) /// Task ReadInputRegisters(ushort startAddress, ushort quantity); /// /// 写单个线圈 (0x05) /// Task WriteSingleCoil(ushort address, bool value); /// /// 写单个寄存器 (0x06) /// Task WriteSingleRegister(ushort address, ushort value); /// /// 写多个线圈 (0x0F) /// Task WriteMultipleCoils(ushort startAddress, bool[] values); /// /// 写多个寄存器 (0x10) /// Task WriteMultipleRegisters(ushort startAddress, ushort[] values); } }