interface FrameTx as CfpTx;
interface Purge;
} uses {
- interface Resource as Token;
interface ResourceTransferred as TokenTransferred;
interface ResourceRequested as TokenRequested;
interface ResourceTransfer as TokenToBeaconSync;
async event void TokenTransferred.transferred()
{
- // the CFP has started, this component now owns the token.
- // because GTS is not implemented we release the token
- // (or pass it back to BeaconSynchronizeP if
- // we are not transmitting beacons)
- if (call IsSendingBeacons.getNow())
- call Token.release();
- else
- call TokenToBeaconSync.transfer();
+ // the CFP has started, this component now owns the token -
+ // because GTS is not implemented we pass it back to the
+ // BeaconTransmitP component
+ // Note: this component must not use the Resource
+ // interface to release the token!
+ call TokenToBeaconSync.transfer();
}
async event void CfpEndAlarm.fired() {}
async event void TokenRequested.requested()
{
- // someone requested access to the radio, you might
- // consider releasing it...
+ // someone (e.g. SCAN component) requested access to the radio, we
+ // should pass the token back to BeaconSynchronizeP, which can release it
+ // call TokenToBeaconSync.transfer();
}
async event void TokenRequested.immediateRequested(){ }
- event void Token.granted(){ }
}