public byte[] GetPdu(GXByteBuffer value)
{
GXReplyData data = new GXReplyData();
data.Xml = new GXDLMSTranslatorStructure(OutputType, Hex, ShowStringAsHex, tags);
GXDLMSSettings settings = new GXDLMSSettings(true);
if (value.GetUInt8(0) == 0x7e)
{
settings.InterfaceType = Enums.InterfaceType.HDLC;
}
//If wrapper.
else if (value.GetUInt16(0) == 1)
{
settings.InterfaceType = Enums.InterfaceType.WRAPPER;
}
else
{
throw new ArgumentNullException("Invalid DLMS framing.");
}
GXDLMS.GetData(settings, value, data);
//Only fully PDUs are returned.
if (data.IsMoreData)
{
return null;
}
return data.Data.Array();
}