2010/3/26 Islam Hegazy <[email protected]>: > Hi, > > I am trying to understand the behaviour of CTP's beacon sending. I know that > it is adaptable according to several factors as mentioned in the CTP paper. > However, when I trace the implementation, I get lost. I know that CTP has no > specific intervals to send the beacons. From the code, I see that it depends > on the previous sending time and it calculates a new sending time. But what > is the pattern or distribution used to generate these sending times. I'd > appreciate it if someone can explain to me the purpose of each of the > following functions: > remainingInterval() > decayInterval() > resetInterval() > chooseAdvertiseTime()
For each interval t, you set a timer to fire between t/2 and t (chooseAdvertiseTime), and you wait until t (remainingInterval). Once you are at t, you double the interval (decayInterval) if you haven't reached the max. For reasons such as topological inconsistency, you reset the timer to a small value (resetInterval). > Also, in chooseAdvertiseTime() the following code exists > beaconTimer.stop() > beaconTimer.startOneshot( t ) > > What is the purpose of stop() and startOneshot() already stops any running > timer and start a new one. This is a leftover from debugging. > Also, in StdControl.start() in the CtpRoutingEngineP.nc it call > beaconTimer.startOneshot( ) through the call of resetInterval() and then in > StdControl.startDone() beaconTimer.startOneshot(BEACON_INTERVAL) is called > again. Doesn't the 2nd call cancel the timer set in the first call? Another leftover code. Will clean. - om_p _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
