using System;
using System.Collections.Generic;
using Xylem.Common.Hardware.Interfaces.Ports.PortCore;
namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol
{
public interface ITransmitProtocol
{
///
/// Struct of settings being needed for transmit port
///
///
TransmitPortSettings GetTransmitPortSettings();
///
/// Overwrite the default response timeout
///
void SetResponseTimeout(Int32 responseTimeoutMs);
///
/// Set timeout to the default response time
///
void SetDefaultResponseTimeout();
// ReSharper disable once InconsistentNaming UI1236 is a naming forced by the caller
List DecodeDataForPhysicalLayerUI1236(String ident, Byte[] payload, Boolean hideDataInLog = false);
///
/// Send out data (including transport protocol specific data like CRC) to physical port (like UART or IrDA)
///
List DecodeDataForPhysicalLayer(String ident, Byte command , Byte[] payload, Boolean hideDataInLog = false);
///
/// Received data have to be checked and converted to request protocol
///
List DecodeDataForLogicLayer(String ident, List rawData, Boolean hideDateInLog = false);
}
}