mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-12-23 01:29:33 +00:00
avoid exception if rime address does not exist + removed obsolete methods
This commit is contained in:
parent
1965dcf754
commit
fd2a377666
@ -26,7 +26,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: IPAddress.java,v 1.7 2009/10/28 15:58:43 fros4943 Exp $
|
* $Id: IPAddress.java,v 1.8 2010/02/03 10:14:46 fros4943 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja.interfaces;
|
package se.sics.cooja.interfaces;
|
||||||
@ -34,7 +34,6 @@ package se.sics.cooja.interfaces;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Observable;
|
import java.util.Observable;
|
||||||
import java.util.Observer;
|
import java.util.Observer;
|
||||||
import java.util.Vector;
|
|
||||||
|
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
@ -42,10 +41,16 @@ import javax.swing.JPanel;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
|
|
||||||
import se.sics.cooja.*;
|
import se.sics.cooja.AddressMemory;
|
||||||
|
import se.sics.cooja.ClassDescription;
|
||||||
|
import se.sics.cooja.Mote;
|
||||||
|
import se.sics.cooja.MoteInterface;
|
||||||
|
import se.sics.cooja.MoteTimeEvent;
|
||||||
|
import se.sics.cooja.Simulation;
|
||||||
|
import se.sics.cooja.TimeEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IPv4 or IPv6 address.
|
* Read-only interface to IPv4 or IPv6 address.
|
||||||
*
|
*
|
||||||
* @author Fredrik Osterlind
|
* @author Fredrik Osterlind
|
||||||
*/
|
*/
|
||||||
@ -53,7 +58,6 @@ import se.sics.cooja.*;
|
|||||||
public class IPAddress extends MoteInterface {
|
public class IPAddress extends MoteInterface {
|
||||||
private static Logger logger = Logger.getLogger(IPAddress.class);
|
private static Logger logger = Logger.getLogger(IPAddress.class);
|
||||||
private AddressMemory moteMem;
|
private AddressMemory moteMem;
|
||||||
private static boolean warnedNotImplemented = false;
|
|
||||||
|
|
||||||
public IPAddress(final Mote mote) {
|
public IPAddress(final Mote mote) {
|
||||||
moteMem = (AddressMemory) mote.getMemory();
|
moteMem = (AddressMemory) mote.getMemory();
|
||||||
@ -88,7 +92,6 @@ public class IPAddress extends MoteInterface {
|
|||||||
* Returns IP address string.
|
* Returns IP address string.
|
||||||
* Supports both IPv4 and IPv6 addresses.
|
* Supports both IPv4 and IPv6 addresses.
|
||||||
*
|
*
|
||||||
* @see #setIPString(String)
|
|
||||||
* @return IP address string
|
* @return IP address string
|
||||||
*/
|
*/
|
||||||
public String getIPString() {
|
public String getIPString() {
|
||||||
@ -140,53 +143,6 @@ public class IPAddress extends MoteInterface {
|
|||||||
return moteMem.variableExists("uip_netif_physical_if");
|
return moteMem.variableExists("uip_netif_physical_if");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set IPv4 address: a.b.c.d.
|
|
||||||
*
|
|
||||||
* @param a First byte
|
|
||||||
* @param b Second byte
|
|
||||||
* @param c Third byte
|
|
||||||
* @param d Fourth byte
|
|
||||||
*/
|
|
||||||
public void setIPv4Address(int a, int b, int c, int d) {
|
|
||||||
/* TODO Implement */
|
|
||||||
if (!warnedNotImplemented) {
|
|
||||||
warnedNotImplemented = true;
|
|
||||||
logger.warn("Changing IP addresses is no longer supported.");
|
|
||||||
logger.warn("The IP address is instead determined by Contiki, for example based on the MAC/Rime address, or the node ID.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set IPv6 address.
|
|
||||||
*
|
|
||||||
* @param address 16 element IP address array
|
|
||||||
*/
|
|
||||||
public void setIPv6Address(int[] address) {
|
|
||||||
/* TODO Implement */
|
|
||||||
if (!warnedNotImplemented) {
|
|
||||||
warnedNotImplemented = true;
|
|
||||||
logger.warn("Changing IP addresses is no longer supported.");
|
|
||||||
logger.warn("The IP address is instead determined by Contiki, for example based on the MAC/Rime address, or the node ID.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set IP address.
|
|
||||||
* Supports both IPv4 and IPv6 addresses.
|
|
||||||
*
|
|
||||||
* @see #getIPString()
|
|
||||||
* @param ipString IP address string
|
|
||||||
*/
|
|
||||||
public void setIPString(String ipString) {
|
|
||||||
/* TODO Implement */
|
|
||||||
if (!warnedNotImplemented) {
|
|
||||||
warnedNotImplemented = true;
|
|
||||||
logger.warn("Changing IP addresses is no longer supported.");
|
|
||||||
logger.warn("The IP address is instead determined by Contiki, for example based on the MAC/Rime address, or the node ID.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public JPanel getInterfaceVisualizer() {
|
public JPanel getInterfaceVisualizer() {
|
||||||
JPanel panel = new JPanel();
|
JPanel panel = new JPanel();
|
||||||
final JLabel ipLabel = new JLabel();
|
final JLabel ipLabel = new JLabel();
|
||||||
@ -245,8 +201,4 @@ public class IPAddress extends MoteInterface {
|
|||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double energyConsumption() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: RimeAddress.java,v 1.4 2009/10/28 15:58:43 fros4943 Exp $
|
* $Id: RimeAddress.java,v 1.5 2010/02/03 10:14:46 fros4943 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja.interfaces;
|
package se.sics.cooja.interfaces;
|
||||||
@ -41,7 +41,13 @@ import javax.swing.JPanel;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
|
|
||||||
import se.sics.cooja.*;
|
import se.sics.cooja.AddressMemory;
|
||||||
|
import se.sics.cooja.ClassDescription;
|
||||||
|
import se.sics.cooja.Mote;
|
||||||
|
import se.sics.cooja.MoteInterface;
|
||||||
|
import se.sics.cooja.MoteTimeEvent;
|
||||||
|
import se.sics.cooja.Simulation;
|
||||||
|
import se.sics.cooja.TimeEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read-only interface to Rime address read from Contiki variable: rimeaddr_node_addr.
|
* Read-only interface to Rime address read from Contiki variable: rimeaddr_node_addr.
|
||||||
@ -63,6 +69,10 @@ public class RimeAddress extends MoteInterface {
|
|||||||
/* Detect startup address (only zeroes) */
|
/* Detect startup address (only zeroes) */
|
||||||
TimeEvent updateWhenAddressReady = new MoteTimeEvent(mote, 0) {
|
TimeEvent updateWhenAddressReady = new MoteTimeEvent(mote, 0) {
|
||||||
public void execute(long t) {
|
public void execute(long t) {
|
||||||
|
if (!hasRimeAddress()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
String addrString = getAddressString();
|
String addrString = getAddressString();
|
||||||
addrString = addrString.replace(".", "");
|
addrString = addrString.replace(".", "");
|
||||||
addrString = addrString.replace("0", "");
|
addrString = addrString.replace("0", "");
|
||||||
@ -82,7 +92,15 @@ public class RimeAddress extends MoteInterface {
|
|||||||
updateWhenAddressReady.execute(0);
|
updateWhenAddressReady.execute(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasRimeAddress() {
|
||||||
|
return moteMem.variableExists("rimeaddr_node_addr");
|
||||||
|
}
|
||||||
|
|
||||||
public String getAddressString() {
|
public String getAddressString() {
|
||||||
|
if (!hasRimeAddress()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
String addrString = "";
|
String addrString = "";
|
||||||
byte[] addr = moteMem.getByteArray("rimeaddr_node_addr", RIME_ADDR_LENGTH);
|
byte[] addr = moteMem.getByteArray("rimeaddr_node_addr", RIME_ADDR_LENGTH);
|
||||||
for (int i=0; i < RIME_ADDR_LENGTH-1; i++) {
|
for (int i=0; i < RIME_ADDR_LENGTH-1; i++) {
|
||||||
@ -122,15 +140,10 @@ public class RimeAddress extends MoteInterface {
|
|||||||
this.deleteObserver(observer);
|
this.deleteObserver(observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Collection<Element> getConfigXML() {
|
public Collection<Element> getConfigXML() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConfigXML(Collection<Element> configXML, boolean visAvailable) {
|
public void setConfigXML(Collection<Element> configXML, boolean visAvailable) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public double energyConsumption() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user