namespace RobotNet.Script; /// /// Quản ký kết nối Modbus TCP tới 1 thiết bị. /// public interface IModbusTcpClient : IAsyncDisposable, IDisposable { /// /// Trạng thái kết nối hiện tại với thiết bị Modbus TCP. /// bool IsConnected { get; } /// /// Đọc các đầu vào rời rạc (Discrete Inputs) từ thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// /// Task ReadDiscreteInputsAsync(UInt16 startingAddress, UInt16 quantity, CancellationToken cancellationToken = default); /// /// Đọc các cuộn dây (Coils) từ thiết bị Modbus TCP. /// /// /// /// /// Task ReadCoilsAsync(UInt16 startingAddress, UInt16 quantity, CancellationToken cancellationToken = default); /// /// Đọc các thanh ghi giữ (Holding Registers) từ thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// /// Task ReadHoldingRegistersAsync(UInt16 startingAddress, UInt16 quantity, CancellationToken cancellationToken = default); /// /// Đọc các thanh ghi đầu vào (Input Registers) từ thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// /// Task ReadInputRegistersAsync(UInt16 startingAddress, UInt16 quantity, CancellationToken cancellationToken = default); /// /// Ghi viết một cuộn dây (Coil) đơn lẻ đến thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// Task WriteSingleCoilAsync(UInt16 startingAddress, bool value, CancellationToken cancellationToken = default); /// /// Ghi viết một thanh ghi đơn lẻ đến thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// Task WriteSingleRegisterAsync(UInt16 startingAddress, UInt16 value, CancellationToken cancellationToken = default); /// /// Ghi viết nhiều cuộn dây (Coils) đến thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// Task WriteMultipleCoilsAsync(UInt16 startingAddress, bool[] values, CancellationToken cancellationToken = default); /// /// Ghi viết nhiều thanh ghi (Holding Registers) đến thiết bị Modbus TCP với hỗ trợ hủy bỏ. /// /// /// /// Task WriteMultipleRegistersAsync(UInt16 startingAddress, UInt16[] values, CancellationToken cancellationToken = default); /// /// Đọc và ghi viết nhiều thanh ghi (Holding Registers) trong một lần gọi với hỗ trợ hủy bỏ. /// /// /// /// /// /// /// Task ReadWriteMultipleRegistersAsync(ushort readStart, ushort readCount, ushort writeStart, IReadOnlyList writeValues, CancellationToken cancellationToken = default); }