reset nr tick lists and mote startup delay, since both settings are still experimental

This commit is contained in:
fros4943 2007-08-21 08:51:33 +00:00
parent 186a99857b
commit 0d505b8dfd

View file

@ -24,7 +24,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* $Id: Simulation.java,v 1.16 2007/07/10 12:43:23 fros4943 Exp $ * $Id: Simulation.java,v 1.17 2007/08/21 08:51:33 fros4943 Exp $
*/ */
package se.sics.cooja; package se.sics.cooja;
@ -82,9 +82,9 @@ public class Simulation extends Observable implements Runnable {
private int currentTickListIndex = 0; private int currentTickListIndex = 0;
private int nrTickLists = 10; private int nrTickLists = 1;
private int maxDelayedStartupTime = 10000; private int maxMoteStartupDelay = 0;
private Random tickListRandom = new Random(); private Random tickListRandom = new Random();
@ -279,12 +279,47 @@ public class Simulation extends Observable implements Runnable {
} }
/** /**
* @return Current simulation random seed * @return Random seed
*/ */
public long getRandomSeed() { public long getRandomSeed() {
return randomSeed; return randomSeed;
} }
/**
* @param randomSeed Random seed
*/
public void setRandomSeed(long randomSeed) {
this.randomSeed = randomSeed;
}
/**
* @return Number of tick lists
*/
public int getNrTickLists() {
return nrTickLists;
}
/**
* @param nrTickLists Number of tick lists
*/
public void setNrTickLists(int nrTickLists) {
this.nrTickLists = Math.max(1, nrTickLists);
}
/**
* @return Maximum mote startup delay
*/
public int getDelayedMoteStartupTime() {
return maxMoteStartupDelay;
}
/**
* @param nrTickLists Maximum mote startup delay
*/
public void setDelayedMoteStartupTime(int maxMoteStartupDelay) {
this.maxMoteStartupDelay = Math.max(0, maxMoteStartupDelay);
}
/** /**
* Returns the current simulation config represented by XML elements. This * Returns the current simulation config represented by XML elements. This
* config also includes the current radio medium, all mote types and motes. * config also includes the current radio medium, all mote types and motes.
@ -316,6 +351,16 @@ public class Simulation extends Observable implements Runnable {
element.setText(Long.toString(randomSeed)); element.setText(Long.toString(randomSeed));
config.add(element); config.add(element);
// Number of tick lists
element = new Element("nrticklists");
element.setText(Integer.toString(nrTickLists));
config.add(element);
// Max mote startup delay
element = new Element("motedelay");
element.setText(Integer.toString(maxMoteStartupDelay));
config.add(element);
// Radio Medium // Radio Medium
element = new Element("radiomedium"); element = new Element("radiomedium");
element.setText(currentRadioMedium.getClass().getName()); element.setText(currentRadioMedium.getClass().getName());
@ -390,6 +435,16 @@ public class Simulation extends Observable implements Runnable {
delayMotesRandom.setSeed(randomSeed); delayMotesRandom.setSeed(randomSeed);
} }
// Number of tick lists
if (element.getName().equals("nrticklists")) {
nrTickLists = Integer.parseInt(element.getText());
}
// Max mote startup delay
if (element.getName().equals("motedelay")) {
maxMoteStartupDelay = Integer.parseInt(element.getText());
}
// Radio medium // Radio medium
if (element.getName().equals("radiomedium")) { if (element.getName().equals("radiomedium")) {
String radioMediumClassName = element.getText().trim(); String radioMediumClassName = element.getText().trim();
@ -510,8 +565,8 @@ public class Simulation extends Observable implements Runnable {
} else } else
motes.add(mote); motes.add(mote);
if (maxDelayedStartupTime > 0 && mote instanceof ContikiMote) { if (maxMoteStartupDelay > 0 && mote instanceof ContikiMote) {
((ContikiClock) mote.getInterfaces().getClock()).setDrift(-delayMotesRandom.nextInt(maxDelayedStartupTime)); ((ContikiClock) mote.getInterfaces().getClock()).setDrift(-delayMotesRandom.nextInt(maxMoteStartupDelay));
} }
currentRadioMedium.registerMote(mote, this); currentRadioMedium.registerMote(mote, this);