laatzen/Common/Hardware/Interfaces/Protocols/ProtocolCore/IProtocol.cs

42 lines
1.4 KiB
C#

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
{
/// <inheritdoc />
/// <summary>
/// Protocol interface
/// </summary>
public interface IProtocol : IDisposable
{
/// <summary>
/// Fill the buffer with data ready for decoding
/// </summary>
/// <param name="rawData"></param>
void FillDecodingBuffer(IPortDataEventArgs rawData );
/// <summary>
/// Record is ready to send including all protocols
/// </summary>
event EventHandler<BasePortDataEventArgs> OnRecordReadyToSend;
/// <summary>
/// Record is successfully decoded and ready for further processing
/// </summary>
event EventHandler<BaseDataEventArgs> OnRecordIsDecoded;
/// <summary>
/// Return of transmit protocol settings
/// </summary>
/// <returns></returns>
ITransmitProtocol GetTransmitProtocol();
/// <summary>
/// Assignment of transmit protocol
/// </summary>
/// <param name="transmitProtocol"></param>
void SetTransmitProtocol(ITransmitProtocol transmitProtocol);
}
}