public override void Decode(Stream inputStream) { if (inputStream == null || StructureDescription == null) { Logger.Info("Either inputStream is null or StructureDescription is not set"); return; } foreach (StructureField field in StructureDescription.Fields) { DataPointEncoderDecoder.Decode(inputStream, m_AttributeValues, field.DataType, field.Name.Value); } }
public override void Encode(Stream outputStream) { if (outputStream == null || !outputStream.CanWrite) { return; } foreach (StructureField field in StructureDescription.Fields) { if (m_AttributeValues.TryGetValue(field.Name.Value, out object val)) { DataPointEncoderDecoder.Encode(outputStream, field.DataType, val); } else { throw new Exception($"Mandatory field missing: \"{field.Name}\" ({field.DataType})"); } } }