private void WriteUnifiedData(DataRecordArrayWriter writer, List <VTTQs> variables) { HistReader[] vars = variables.Select(v => new HistReader(v)).ToArray(); writer.WriteArrayStart(); bool hasNext = vars.Any(v => v.HasValue); while (hasNext) { writer.WriteRecordStart(); Timestamp time = Timestamp.Max; foreach (var reader in vars) { Timestamp?t = reader.Time; if (t.HasValue && t.Value < time) { time = t.Value; } } writer.WriteValueTimestamp(time); foreach (var reader in vars) { writer.WriteColumSeparator(); Timestamp?t = reader.Time; if (t.HasValue && t.Value == time) { DataValue v = reader.Value; if (IsSimpleDouble(v.JSON)) { writer.WriteValueJsonDouble(v.JSON); } else { double?value = v.AsDouble(); if (value.HasValue) { writer.WriteValueDouble(value.Value); } else { writer.WriteValueEmpty(); } } reader.MoveNext(); } else { writer.WriteValueEmpty(); } } hasNext = vars.Any(v => v.HasValue); writer.WriteRecordEnd(hasMoreRecords: hasNext); } writer.WriteArrayEnd(); }