using NLog; using System; using System.Collections.Generic; using Xylem.Common.Hardware.Interfaces.Ports.PortCore; using Xylem.Common.Utils.Logging; namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol { public abstract class BaseTransmitProtocol : ITransmitProtocol { public readonly ILogger Logger; protected BaseTransmitProtocol(String port) { Logger = NLogHelper.CreateOrGetMultiLogger(port, "COM", "TransmitProtocol", "COMBase", "BaseTransmitProtocol"); } public abstract TransmitPortSettings GetTransmitPortSettings(); public abstract void SetResponseTimeout(Int32 responseTimeoutMs); public abstract void SetDefaultResponseTimeout(); public abstract List DecodeDataForPhysicalLayer(Byte command, Byte[] payload); public abstract List DecodeDataForLogicLayer(List rawData); public abstract List DecodeDataForPhysicalLayerUI1236(Byte[] payload); } }