From 3a4b479704f63573a5fdfcd4d4fb82bf6bbe51d8 Mon Sep 17 00:00:00 2001 From: adamdunkels Date: Tue, 14 Sep 2010 14:23:58 +0000 Subject: [PATCH] Added a radio duty cycle tab; made packet reception chart have integer labels --- .../sics/contiki/collect/CollectServer.java | 34 ++++++++++++++----- .../contiki/collect/SensorDataAggregator.java | 14 +++++--- .../contiki/collect/gui/PacketChartPanel.java | 7 ++-- 3 files changed, 38 insertions(+), 17 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 c4b4a8d55..7745a6f67 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.14 2010/09/14 11:27:23 nifi Exp $ + * $Id: CollectServer.java,v 1.15 2010/09/14 14:23:58 adamdunkels Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Joakim Eriksson, Niclas Finne * Created : 3 jul 2008 - * Updated : $Date: 2010/09/14 11:27:23 $ - * $Revision: 1.14 $ + * Updated : $Date: 2010/09/14 14:23:58 $ + * $Revision: 1.15 $ */ package se.sics.contiki.collect; @@ -236,8 +236,7 @@ public class CollectServer { new String[] { "LPM", "CPU", "Radio listen", "Radio transmit" }) { { ValueAxis axis = chart.getCategoryPlot().getRangeAxis(); - axis.setLowerBound(0.0); - axis.setUpperBound(75.0); + ((NumberAxis)axis).setAutoRangeIncludesZero(true); } protected void addSensorData(SensorData data) { Node node = data.getNode(); @@ -249,13 +248,29 @@ public class CollectServer { dataset.addValue(aggregator.getTransmitPower(), categories[3], nodeName); } }, + new BarChartPanel(this, "Radio Duty Cycle", "Average Radio Duty Cycle", + "Nodes", "Duty Cycle (%)", + new String[] { "Radio listen", "Radio transmit" }) { + { + ValueAxis axis = chart.getCategoryPlot().getRangeAxis(); + ((NumberAxis)axis).setAutoRangeIncludesZero(true); + } + protected void addSensorData(SensorData data) { + Node node = data.getNode(); + String nodeName = node.getName(); + SensorDataAggregator aggregator = node.getSensorDataAggregator(); + dataset.addValue(100 * aggregator.getAverageDutyCycle(SensorInfo.TIME_LISTEN), + categories[0], nodeName); + dataset.addValue(100 * aggregator.getAverageDutyCycle(SensorInfo.TIME_TRANSMIT), + categories[1], nodeName); + } + }, new BarChartPanel(this, "Instantaneous Power", "Instantaneous Power Consumption", "Nodes", "Power (mW)", new String[] { "LPM", "CPU", "Radio listen", "Radio transmit" }) { { ValueAxis axis = chart.getCategoryPlot().getRangeAxis(); - axis.setLowerBound(0.0); - axis.setUpperBound(75.0); + ((NumberAxis)axis).setAutoRangeIncludesZero(true); } protected void addSensorData(SensorData data) { Node node = data.getNode(); @@ -268,7 +283,9 @@ public class CollectServer { }, new TimeChartPanel(this, "Power History", "Historical Power Consumption", "Time", "mW") { { + /* ValueAxis axis = chart.getCategoryPlot().getRangeAxis();*/ setMaxItemCount(defaultMaxItemCount); + /* ((NumberAxis)axis).setAutoRangeIncludesZero(true);*/ } protected double getSensorDataValue(SensorData data) { return data.getAveragePower(); @@ -351,8 +368,7 @@ public class CollectServer { new TimeChartPanel(this, "Network Hops (Over Time)", "Network Hops", "Time", "Hops") { { ValueAxis axis = chart.getXYPlot().getRangeAxis(); - axis.setLowerBound(0.0); - axis.setUpperBound(4.0); + ((NumberAxis)axis).setAutoRangeIncludesZero(true); axis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); setMaxItemCount(defaultMaxItemCount); } diff --git a/examples/sky-shell/src/se/sics/contiki/collect/SensorDataAggregator.java b/examples/sky-shell/src/se/sics/contiki/collect/SensorDataAggregator.java index b99ff48aa..3d73cf82b 100644 --- a/examples/sky-shell/src/se/sics/contiki/collect/SensorDataAggregator.java +++ b/examples/sky-shell/src/se/sics/contiki/collect/SensorDataAggregator.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: SensorDataAggregator.java,v 1.5 2010/09/08 12:40:18 nifi Exp $ + * $Id: SensorDataAggregator.java,v 1.6 2010/09/14 14:23:58 adamdunkels Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Joakim Eriksson, Niclas Finne * Created : 20 aug 2008 - * Updated : $Date: 2010/09/08 12:40:18 $ - * $Revision: 1.5 $ + * Updated : $Date: 2010/09/14 14:23:58 $ + * $Revision: 1.6 $ */ package se.sics.contiki.collect; @@ -72,8 +72,8 @@ public class SensorDataAggregator implements SensorInfo { return values[index]; } - public long getAverageValue(int index) { - return dataCount > 0 ? values[index] / dataCount : 0; + public double getAverageValue(int index) { + return dataCount > 0 ? (double)values[index] / (double)dataCount : 0; } public int getValueCount() { @@ -197,6 +197,10 @@ public class SensorDataAggregator implements SensorInfo { / (values[TIME_CPU] + values[TIME_LPM]); } + public double getAverageDutyCycle(int index) { + return (double)(values[index]) / (double)(values[TIME_CPU] + values[TIME_LPM]); + } + public long getPowerMeasureTime() { return (1000L * (values[TIME_CPU] + values[TIME_LPM])) / TICKS_PER_SECOND; } 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 fdefdd2dc..82781cc4a 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.5 2010/09/14 11:27:24 nifi Exp $ + * $Id: PacketChartPanel.java,v 1.6 2010/09/14 14:23:58 adamdunkels Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Joakim Eriksson, Niclas Finne * Created : 6 sep 2010 - * Updated : $Date: 2010/09/14 11:27:24 $ - * $Revision: 1.5 $ + * Updated : $Date: 2010/09/14 14:23:58 $ + * $Revision: 1.6 $ */ package se.sics.contiki.collect.gui; @@ -90,6 +90,7 @@ public class PacketChartPanel extends JPanel implements Visualizer { false, true, false ); ((NumberAxis)chart.getXYPlot().getRangeAxis()).setAutoRangeIncludesZero(true); + ((NumberAxis)chart.getXYPlot().getRangeAxis()).setStandardTickUnits(NumberAxis.createIntegerTickUnits()); this.chartPanel = new ChartPanel(chart); this.chartPanel.setPreferredSize(new Dimension(500, 270)); setBaseShapeVisible(false);