long[] timestamps = dproc.getTimestamps();
for (XPort xport : xports) {
xport.values = dproc.getValues(xport.name);
}
ByteArrayOutputStream stream = new ByteArrayOutputStream();
XmlWriter w = new XmlWriter(stream);
w.startTag("xport");
w.startTag("meta");
w.writeTag("start", timestamps[0]);
w.writeTag("step", timestamps[1] - timestamps[0]);
w.writeTag("end", timestamps[timestamps.length - 1]);
w.writeTag("rows", timestamps.length);
w.writeTag("columns", xports.size());
w.startTag("legend");
for (XPort xport1 : xports) {
w.writeTag("entry", xport1.legend);
}
w.closeTag(); // legend
w.closeTag(); // meta
w.startTag("data");
for (int i = 0; i < timestamps.length; i++) {
w.startTag("row");
w.writeComment(new Date(timestamps[i] * 1000L));
w.writeTag("t", timestamps[i]);
for (XPort xport : xports) {
w.writeTag("v", xport.values[i]);
}
w.closeTag(); // row
}
w.closeTag(); // data
w.closeTag(); // xport
w.flush();
String result = stream.toString();
stream.close();
return result;
}