Support in the mote clock interface for time deviation
This commit is contained in:
parent
2059be3a43
commit
ff4aee68bd
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue