using JetBrains.Annotations; using Sharp7.Rx.Enums; namespace Sharp7.Rx.Interfaces; [NoReorder] internal interface IS7Connector : IDisposable { IObservable ConnectionState { get; } Task InitializeAsync(); Task Connect(); Task Disconnect(); Task ReadBytes(Operand operand, ushort startByteAddress, ushort bytesToRead, ushort dBNr, CancellationToken token); Task WriteBit(Operand operand, ushort startByteAddress, byte bitAdress, bool value, ushort dbNr, CancellationToken token); Task WriteBytes(Operand operand, ushort startByteAdress, byte[] data, ushort dBNr, CancellationToken token); Task> ExecuteMultiVarRequest(IReadOnlyList variableNames); }