using System.Threading.Tasks; namespace HME_MoistureLossMeter.Services { public interface IPlcService { Task EnsureConnectedAsync(int retryCount = 3); Task ReadFloatAsync(ushort startAddress); Task ReadPressureAsync(); Task ReadWetFlowAsync(int stationId); Task ReadPressureAsync(int stationId); Task ReadCoilAsync(ushort coilAddress); Task ReadHoldingRegistersAsync(ushort startAddress, ushort count); Task WriteCoilAsync(ushort coilAddress, bool value); Task WriteRegisterAsync(ushort registerAddress, ushort value); Task WriteSingleRegisterAsync(ushort registerAddress, ushort value); Task WriteMultipleRegistersAsync(ushort registerAddress, float value); Task ReadInt32Async(ushort startAddress); Task WriteInt32Async(ushort startAddress, int value); bool IsConnected { get; } void Dispose(); } }