From 4b0ffb073983b10c9548fe4fcf1af31153cb9863 Mon Sep 17 00:00:00 2001 From: nifi Date: Tue, 14 Sep 2010 11:27:23 +0000 Subject: [PATCH] Bug fix: use getNodeTime() instead of getSystemTime() --- .../sics/contiki/collect/CollectServer.java | 26 +++++++++++++++---- .../contiki/collect/gui/PacketChartPanel.java | 16 ++++++------ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java b/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java index 02e3f199c..c4b4a8d55 100644 --- a/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java +++ b/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: CollectServer.java,v 1.13 2010/09/14 10:38:12 nifi Exp $ + * $Id: CollectServer.java,v 1.14 2010/09/14 11:27:23 nifi Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Joakim Eriksson, Niclas Finne * Created : 3 jul 2008 - * Updated : $Date: 2010/09/14 10:38:12 $ - * $Revision: 1.13 $ + * Updated : $Date: 2010/09/14 11:27:23 $ + * $Revision: 1.14 $ */ package se.sics.contiki.collect; @@ -143,6 +143,8 @@ public class CollectServer { private SerialConnection serialConnection; private String initScript; + private long nodeTimeDelta; + @SuppressWarnings("serial") public CollectServer(String comPort) { loadConfig(config, CONFIG_FILE); @@ -399,10 +401,10 @@ public class CollectServer { int dataCount = node.getSensorDataCount(); int packetCount = 0; int duplicateCount = 0; - long earliestData = System.currentTimeMillis() - (5 * 60 * 60 * 1000); + long earliestData = getNodeTime() - (5 * 60 * 1000); for(int index = dataCount - 1; index >= 0; index--) { SensorData sd = node.getSensorData(index); - if (sd.getSystemTime() < earliestData) { + if (sd.getNodeTime() < earliestData) { break; } if (sd.isDuplicate()) { @@ -943,6 +945,18 @@ public class CollectServer { serialConsole.addSerialData(line); } + // ------------------------------------------------------------------- + // Node time estimation + // ------------------------------------------------------------------- + + public long getNodeTime() { + return System.currentTimeMillis() + nodeTimeDelta; + } + + private void updateNodeTime(SensorData sensorData) { + this.nodeTimeDelta = sensorData.getNodeTime() - System.currentTimeMillis(); + } + // ------------------------------------------------------------------- // SensorData handling @@ -959,6 +973,7 @@ public class CollectServer { private void handleSensorData(final SensorData sensorData) { System.out.println("SENSOR DATA: " + sensorData); if (sensorData.getNode().addSensorData(sensorData)) { + updateNodeTime(sensorData); sensorDataList.add(sensorData); saveSensorData(sensorData); handleLinks(sensorData); @@ -1005,6 +1020,7 @@ public class CollectServer { SensorData data = SensorData.parseSensorData(this, line); if (data != null) { if (data.getNode().addSensorData(data)) { + updateNodeTime(data); sensorDataList.add(data); handleLinks(data); } diff --git a/examples/sky-shell/src/se/sics/contiki/collect/gui/PacketChartPanel.java b/examples/sky-shell/src/se/sics/contiki/collect/gui/PacketChartPanel.java index 6f57ef06b..fdefdd2dc 100644 --- a/examples/sky-shell/src/se/sics/contiki/collect/gui/PacketChartPanel.java +++ b/examples/sky-shell/src/se/sics/contiki/collect/gui/PacketChartPanel.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: PacketChartPanel.java,v 1.4 2010/09/14 10:44:07 adamdunkels Exp $ + * $Id: PacketChartPanel.java,v 1.5 2010/09/14 11:27:24 nifi Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Joakim Eriksson, Niclas Finne * Created : 6 sep 2010 - * Updated : $Date: 2010/09/14 10:44:07 $ - * $Revision: 1.4 $ + * Updated : $Date: 2010/09/14 11:27:24 $ + * $Revision: 1.5 $ */ package se.sics.contiki.collect.gui; @@ -146,7 +146,7 @@ public class PacketChartPanel extends JPanel implements Visualizer { int total = 0; series.clear(); if (this.selectedNodes != null && server.getSensorDataCount() > 0) { - long minute = server.getSensorData(0).getSystemTime() / 60000; + long minute = server.getSensorData(0).getNodeTime() / 60000; long lastMinute = minute; int count = 0; for(int i = 0; i < server.getSensorDataCount(); i++) { @@ -158,12 +158,12 @@ public class PacketChartPanel extends JPanel implements Visualizer { long min = sd.getNodeTime() / 60000; if (min != minute) { if (lastMinute < minute) { - series.addOrUpdate(new Minute(new Date(lastMinute * 60000L)), 0); + series.add(new Minute(new Date(lastMinute * 60000L)), 0); if (lastMinute < minute - 1) { - series.addOrUpdate(new Minute(new Date((minute - 1) * 60000L)), 0); + series.add(new Minute(new Date((minute - 1) * 60000L)), 0); } } - series.addOrUpdate(new Minute(new Date(minute * 60000L)), count); + series.add(new Minute(new Date(minute * 60000L)), count); count = 0; lastMinute = minute + 1; minute = min; @@ -174,7 +174,7 @@ public class PacketChartPanel extends JPanel implements Visualizer { } } if (count > 0) { - series.addOrUpdate(new Minute(new Date(minute * 60000L)), count); + series.add(new Minute(new Date(minute * 60000L)), count); } } int nodes = selectedMap.size();