Support in the mote clock interface for time deviation

This commit is contained in:
Andreas Löscher 2015-02-26 13:17:33 +01:00
parent 2059be3a43
commit ff4aee68bd
4 changed files with 50 additions and 1 deletions

View file

@ -54,10 +54,12 @@ public class MicaClock extends Clock {
private MicaZMote myMote;
private long timeDrift; /* Microseconds */
private double deviation;
public MicaClock(Mote mote) {
simulation = mote.getSimulation();
myMote = (MicaZMote) mote;
deviation = 1.0;
}
public void setTime(long newTime) {
@ -90,4 +92,12 @@ public class MicaClock extends Clock {
public void setConfigXML(Collection<Element> configXML, boolean visAvailable) {
}
public double getDeviation() {
return deviation;
}
public void setDeviation(double deviation) {
assert deviation > 0.0;
this.deviation = deviation;
}
}

View file

@ -52,9 +52,11 @@ public class MspClock extends Clock {
private Simulation simulation;
private long timeDrift; /* Microseconds */
private double deviation;
public MspClock(Mote mote) {
simulation = mote.getSimulation();
deviation = 1.0;
}
public void setTime(long newTime) {
@ -73,6 +75,15 @@ public class MspClock extends Clock {
return timeDrift;
}
public void setDeviation(double deviation) {
assert deviation>0.0;
this.deviation = deviation;
}
public double getDeviation() {
return deviation;
}
public JPanel getInterfaceVisualizer() {
/* TODO Show current CPU speed */
return null;

View file

@ -76,6 +76,7 @@ public class ContikiClock extends Clock implements ContikiMoteInterface, PolledB
private long moteTime; /* Microseconds */
private long timeDrift; /* Microseconds */
private double deviation;
/**
* @param mote Mote
@ -89,6 +90,7 @@ public class ContikiClock extends Clock implements ContikiMoteInterface, PolledB
this.moteMem = new VarMemory(mote.getMemory());
timeDrift = 0;
moteTime = 0;
deviation = 1.0;
}
public static String[] getCoreInterfaceDependencies() {
@ -115,6 +117,15 @@ public class ContikiClock extends Clock implements ContikiMoteInterface, PolledB
return moteTime;
}
public void setDeviation(double deviation) {
assert deviation>0.0;
this.deviation = deviation;
}
public double getDeviation() {
return deviation;
}
public void doActionsBeforeTick() {
/* Update time */
setTime(mote.getSimulation().getSimulationTime() + timeDrift);
@ -161,5 +172,4 @@ public class ContikiClock extends Clock implements ContikiMoteInterface, PolledB
public void setConfigXML(Collection<Element> configXML, boolean visAvailable) {
}
}

View file

@ -39,6 +39,7 @@ import org.contikios.cooja.*;
* This observable never notifies.
*
* @author Fredrik Osterlind
* Andreas Löscher
*/
@ClassDescription("Clock")
public abstract class Clock extends MoteInterface {
@ -76,4 +77,21 @@ public abstract class Clock extends MoteInterface {
*/
public abstract long getDrift();
/**
* The clock deviation is a factor that represents with how much speed the
* mote progresses through the simulation in relation to the simulation speed.
*
* A value of 1.0 results in the mote beeing simulated with the same speed
* as the simulation. A value of 0.5 results in the mote beeing simulation
* at half of the simulation speed.
*
* @param deviation Deviation factor
*/
public abstract void setDeviation(double deviation);
/**
* Get deviation factor
*/
public abstract double getDeviation();
}