public void WriteDataValue(string fieldName, DataValue value)
{
if (value == null)
{
WriteSimpleField(fieldName, null, false);
return;
}
PushStructure(fieldName);
if (value != null)
{
if (value.WrappedValue.TypeInfo != null && value.WrappedValue.TypeInfo.BuiltInType != BuiltInType.Null)
{
WriteVariant("Value", value.WrappedValue);
}
if (value.StatusCode != StatusCodes.Good)
{
WriteStatusCode("StatusCode", value.StatusCode);
}
if (value.SourceTimestamp != DateTime.MinValue)
{
WriteDateTime("SourceTimestamp", value.SourceTimestamp);
if (value.SourcePicoseconds != 0)
{
WriteUInt16("SourcePicoseconds", value.SourcePicoseconds);
}
}
if (value.ServerTimestamp != DateTime.MinValue)
{
WriteDateTime("ServerTimestamp", value.ServerTimestamp);
if (value.ServerPicoseconds != 0)
{
WriteUInt16("ServerPicoseconds", value.ServerPicoseconds);
}
}
}
PopStructure();
}