using System;
using Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments;
using Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.EventArguments;
using Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol;
namespace Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore
{
///
///
/// Protocol interface
///
public interface IProtocol : IDisposable
{
///
/// Fill the buffer with data ready for decoding
///
///
void FillDecodingBuffer(IPortDataEventArgs rawData );
///
/// Record is ready to send including all protocols
///
event EventHandler OnRecordReadyToSend;
///
/// Record is successfully decoded and ready for further processing
///
event EventHandler OnRecordIsDecoded;
///
/// Return of transmit protocol settings
///
///
ITransmitProtocol GetTransmitProtocol();
///
/// Assignment of transmit protocol
///
///
void SetTransmitProtocol(ITransmitProtocol transmitProtocol);
}
}