Added a radio duty cycle tab; made packet reception chart have integer labels
This commit is contained in:
parent
4b0ffb0739
commit
3a4b479704
3 changed files with 38 additions and 17 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue