namespace TLVProtocal;


public interface ITlvCommunicatorClient : IDisposable
{
    bool Initialize(ITlvProvider provider, bool ConvertToBigEnd = false, int timeoutTime = 200);
    bool Open(string ipAddress, ushort port);
    bool SendNotify(TlvData tlvData);

    bool SendRequest(TlvData request, out TlvData reply);

}

public interface ITlvCommunicatorServer : IDisposable
{
    bool Initialize(ITlvProvider provider, bool ConvertToBigEnd = false, int timeoutTime = 200);
    bool Open(string ipAddress, ushort port);
    bool Send(TlvData tlvData);
    bool Send<T>(byte tag, T data) where T : struct;
}