added output power indicator max value

This commit is contained in:
fros4943 2008-03-17 09:50:27 +00:00
parent 7cf49fb57a
commit 223ded4595
5 changed files with 76 additions and 50 deletions

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: TR1001Radio.java,v 1.1 2008/02/07 14:55:35 fros4943 Exp $
* $Id: TR1001Radio.java,v 1.2 2008/03/17 09:52:03 fros4943 Exp $
*/
package se.sics.cooja.mspmote.interfaces;
@ -357,6 +357,10 @@ public class TR1001Radio extends Radio implements USARTListener, ByteRadio {
return 1.5;
}
public int getOutputPowerIndicatorMax() {
return 100;
}
public int getCurrentOutputPowerIndicator() {
// TODO Implement output power indicator
return 100;

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ContikiRadio.java,v 1.17 2008/02/23 10:10:42 fros4943 Exp $
* $Id: ContikiRadio.java,v 1.18 2008/03/17 09:50:27 fros4943 Exp $
*/
package se.sics.cooja.contikimote.interfaces;
@ -257,6 +257,10 @@ public class ContikiRadio extends Radio implements ContikiMoteInterface,
return 1.5;
}
public int getOutputPowerIndicatorMax() {
return 100;
}
public int getCurrentOutputPowerIndicator() {
return myMoteMemory.getByteValueOf("simPower");
}

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ApplicationRadio.java,v 1.2 2007/05/30 10:52:57 fros4943 Exp $
* $Id: ApplicationRadio.java,v 1.3 2008/03/17 09:50:27 fros4943 Exp $
*/
package se.sics.cooja.interfaces;
@ -44,7 +44,7 @@ import se.sics.cooja.*;
* Application radio. May for example be used by Java-based mote to implement
* radio functionality. Support radio channels and output power functionality.
* The mote should observe the radio for incoming radio packet data.
*
*
* @author Fredrik Osterlind
*/
public class ApplicationRadio extends Radio implements PacketRadio {
@ -68,15 +68,15 @@ public class ApplicationRadio extends Radio implements PacketRadio {
private byte[] outPacket = null;
private int outPacketDuration = -1;
private double signalStrength = -200;
private double signalStrength = -100;
private int radioChannel = 1;
private double outputPower = 0;
private int outputPowerIndicator = 100;
public ApplicationRadio(Mote mote) {
this.myMote = mote;
}
/* Packet radio support */
public byte[] getLastPacketTransmitted() {
return packetFromMote;
@ -141,7 +141,7 @@ public class ApplicationRadio extends Radio implements PacketRadio {
public Position getPosition() {
return myMote.getInterfaces().getPosition();
}
public RadioEvent getLastEvent() {
return lastEvent;
}
@ -165,10 +165,14 @@ public class ApplicationRadio extends Radio implements PacketRadio {
return outputPower;
}
public int getOutputPowerIndicatorMax() {
return outputPowerIndicator;
}
public int getCurrentOutputPowerIndicator() {
return outputPowerIndicator;
}
public double getCurrentSignalStrength() {
return signalStrength;
}
@ -178,10 +182,10 @@ public class ApplicationRadio extends Radio implements PacketRadio {
}
/* Application radio support */
/**
* Start transmitting given packet.
*
*
* @param packet Packet data
* @param duration Duration to transmit
*/
@ -190,14 +194,14 @@ public class ApplicationRadio extends Radio implements PacketRadio {
outPacketDuration = duration;
outPacket = packet;
}
/**
* @param i New output power indicator
*/
public void setOutputPowerIndicator(int i) {
outputPowerIndicator = i;
}
/**
* @param p New output power
*/
@ -211,7 +215,7 @@ public class ApplicationRadio extends Radio implements PacketRadio {
public void setChannel(int channel) {
radioChannel = channel;
}
public void doActionsBeforeTick() {
int currentTime = myMote.getSimulation().getSimulationTime();
@ -230,7 +234,7 @@ public class ApplicationRadio extends Radio implements PacketRadio {
this.setChanged();
this.notifyObservers();
}
if (isTransmitting && currentTime >= transmissionEndTime) {
isTransmitting = false;
lastEvent = RadioEvent.TRANSMISSION_FINISHED;
@ -261,7 +265,7 @@ public class ApplicationRadio extends Radio implements PacketRadio {
panel.add(Box.createVerticalStrut(3));
panel.add(channelLabel);
panel.add(Box.createVerticalGlue());
updateButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ssLabel.setText("Signal strength (not auto-updated): "
@ -271,12 +275,14 @@ public class ApplicationRadio extends Radio implements PacketRadio {
final Observer observer = new Observer() {
public void update(Observable obs, Object obj) {
if (isTransmitting())
if (isTransmitting()) {
statusLabel.setText("Transmitting");
if (isReceiving())
}
if (isReceiving()) {
statusLabel.setText("Receiving");
else
} else {
statusLabel.setText("Listening");
}
lastEventLabel.setText("Last event (time=" + lastEventTime + "): " + lastEvent);
ssLabel.setText("Signal strength (not auto-updated): "
@ -313,7 +319,7 @@ public class ApplicationRadio extends Radio implements PacketRadio {
public void setConfigXML(Collection<Element> configXML, boolean visAvailable) {
}
public Mote getMote() {
return myMote;
}

View File

@ -1,7 +1,7 @@
/*
* Copyright (c) 2006, Swedish Institute of Computer Science. All rights
* reserved.
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
@ -12,7 +12,7 @@
* Institute nor the names of its contributors may be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
@ -23,8 +23,8 @@
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: Radio.java,v 1.7 2007/05/30 10:52:57 fros4943 Exp $
*
* $Id: Radio.java,v 1.8 2008/03/17 09:50:27 fros4943 Exp $
*/
package se.sics.cooja.interfaces;
@ -33,15 +33,15 @@ import se.sics.cooja.*;
/**
* A Radio represents a mote radio transceiver.
*
*
* A radio can support different abstraction levels such as transmitting and
* receiving on a byte or packet-basis. In order to support communication
* between different levels the general rule in COOJA is that all radios at a
* lower abstraction level must also implement all higher levels.
*
*
* @see PacketRadio
* @see ByteRadio
*
*
* @author Fredrik Osterlind
*/
@ClassDescription("Packet Radio")
@ -57,7 +57,7 @@ public abstract class Radio extends MoteInterface {
/**
* Signal that a new reception just begun. This method should normally be
* called from the radio medium.
*
*
* @see #signalReceptionEnd()
*/
public abstract void signalReceptionStart();
@ -65,7 +65,7 @@ public abstract class Radio extends MoteInterface {
/**
* Signal that the current reception was ended. This method should normally be
* called from the radio medium.
*
*
* @see #signalReceptionStart()
*/
public abstract void signalReceptionEnd();
@ -73,7 +73,7 @@ public abstract class Radio extends MoteInterface {
/**
* Returns last event at this radio. This method should be used to learn the
* reason when a radio notifies a change to observers.
*
*
* @return Last radio event
*/
public abstract RadioEvent getLastEvent();
@ -81,7 +81,7 @@ public abstract class Radio extends MoteInterface {
/**
* Returns true if this radio is transmitting, or just finished transmitting,
* data.
*
*
* @see #isReceiving()
* @return True if radio is transmitting data
*/
@ -89,7 +89,7 @@ public abstract class Radio extends MoteInterface {
/**
* Returns true if this radio is receiving data.
*
*
* @see #isTransmitting()
* @return True if radio is receiving data
*/
@ -98,7 +98,7 @@ public abstract class Radio extends MoteInterface {
/**
* Returns true if this radio had a connection that was dropped due to
* interference.
*
*
* @return True if this radio is interfered
*/
public abstract boolean isInterfered();
@ -116,10 +116,15 @@ public abstract class Radio extends MoteInterface {
public abstract double getCurrentOutputPower();
/**
* @return Current output power indicator (1-100)
* @return Current output power indicator
*/
public abstract int getCurrentOutputPowerIndicator();
/**
* @return Maximum output power indicator
*/
public abstract int getOutputPowerIndicatorMax();
/**
* @return Current surrounding signal strength
*/
@ -128,7 +133,7 @@ public abstract class Radio extends MoteInterface {
/**
* Sets surrounding signal strength. This method should normally be called by
* the radio medium.
*
*
* @param signalStrength
* Current surrounding signal strength
*/
@ -136,7 +141,7 @@ public abstract class Radio extends MoteInterface {
/**
* Returns the current radio channel number.
*
*
* @return Current channel number
*/
public abstract int getChannel();
@ -144,7 +149,7 @@ public abstract class Radio extends MoteInterface {
/**
* Returns the radio position.
* This is typically the position of the mote.
*
*
* @return Radio position
*/
public abstract Position getPosition();
@ -152,9 +157,9 @@ public abstract class Radio extends MoteInterface {
/**
* This is a convenience function.
* It returns the mote, if any, that holds this radio.
*
*
* @return Mote
*/
public abstract Mote getMote();
}

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: DisturberRadio.java,v 1.4 2007/05/30 10:53:18 fros4943 Exp $
* $Id: DisturberRadio.java,v 1.5 2008/03/17 09:50:27 fros4943 Exp $
*/
package se.sics.cooja.motes;
@ -44,7 +44,7 @@ import se.sics.cooja.interfaces.*;
/**
* This radio periodically transmits data on a configurable channel.
*
*
* @author Fredrik Osterlind, Thiemo Voigt
*/
public class DisturberRadio extends Radio implements PacketRadio {
@ -69,7 +69,7 @@ public class DisturberRadio extends Radio implements PacketRadio {
/**
* Creates an interface to the radio at mote.
*
*
* @param mote
* Radio's mote.
* @see Mote
@ -78,7 +78,7 @@ public class DisturberRadio extends Radio implements PacketRadio {
public DisturberRadio(Mote mote) {
this.myMote = mote;
}
/* Packet radio support */
public byte[] getLastPacketTransmitted() {
return packetFromMote;
@ -118,7 +118,7 @@ public class DisturberRadio extends Radio implements PacketRadio {
public Position getPosition() {
return myMote.getInterfaces().getPosition();
}
public RadioEvent getLastEvent() {
return lastEvent;
}
@ -136,6 +136,10 @@ public class DisturberRadio extends Radio implements PacketRadio {
return 1.5;
}
public int getOutputPowerIndicatorMax() {
return 100;
}
public int getCurrentOutputPowerIndicator() {
return 100;
}
@ -185,17 +189,18 @@ public class DisturberRadio extends Radio implements PacketRadio {
panel.add(channelLabel);
panel.add(channelPicker);
panel.add(Box.createVerticalGlue());
channelPicker.setValue(distChannel);
channelPicker.setColumns(3);
channelPicker.setText(Integer.toString(distChannel));
final Observer observer = new Observer() {
public void update(Observable obs, Object obj) {
if (isTransmitting())
if (isTransmitting()) {
statusLabel.setText("Transmitting now!");
else
} else {
statusLabel.setText("Disturber resting...");
}
channelLabel.setText("Channel: " + getChannel());
@ -207,8 +212,9 @@ public class DisturberRadio extends Radio implements PacketRadio {
channelPicker.addPropertyChangeListener("value", new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
distChannel = ((Number) channelPicker.getValue()).intValue();
if (observer != null)
if (observer != null) {
observer.update(null, null);
}
}
});
@ -252,11 +258,12 @@ public class DisturberRadio extends Radio implements PacketRadio {
if (name.equals("channel")) {
distChannel = Integer.parseInt(element.getText());
} else
} else {
logger.fatal("Read unknown configuration: " + name);
}
}
}
public Mote getMote() {
return myMote;
}