using JetBrains.Annotations; using Microsoft.Extensions.Logging; using Sharp7.Rx.Enums; namespace Sharp7.Rx.Interfaces; [NoReorder] public interface IPlc : IDisposable { IObservable CreateNotification(string variableName, TransmissionMode transmissionMode); Task SetValue(string variableName, TValue value, CancellationToken token = default); Task GetValue(string variableName, CancellationToken token = default); IObservable ConnectionState { get; } Task GetValue(string variableName, CancellationToken token = default); ILogger Logger { get; } }