X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Flib%2Fmac%2Ftkn154%2FDispatchUnslottedCsmaP.nc;h=6be52f45ea6417af89c5037532b0a4c4f1a3aa83;hb=9b7c447b3ec7173f2b22fce7452151bf209379f5;hp=8415c1ba813e5b39599baee271516852fb91aaa1;hpb=def99df655317b53b7063f9a8fed333fe873b3fe;p=tinyos-2.x.git diff --git a/tos/lib/mac/tkn154/DispatchUnslottedCsmaP.nc b/tos/lib/mac/tkn154/DispatchUnslottedCsmaP.nc index 8415c1ba..6be52f45 100644 --- a/tos/lib/mac/tkn154/DispatchUnslottedCsmaP.nc +++ b/tos/lib/mac/tkn154/DispatchUnslottedCsmaP.nc @@ -61,6 +61,7 @@ module DispatchUnslottedCsmaP { interface Timer as IndirectTxWaitTimer; interface TransferableResource as RadioToken; + interface ResourceRequested as RadioTokenRequested; interface GetNow as IsRadioTokenRequested; interface GetNow as IsRxEnableActive; interface Set as SetMacSuperframeOrder; @@ -261,8 +262,9 @@ implementation else if (call IsRadioTokenRequested.getNow()) { if (call RadioOff.isOff()) { // nothing more to do... just release the Token - m_lock = FALSE; // unlock dbg_serial("DispatchUnslottedCsmaP", "Token requested: releasing it.\n"); + call RadioToken.request(); // we want it back afterwards ... + m_lock = FALSE; // unlock call RadioToken.release(); return; } else @@ -518,4 +520,6 @@ implementation command error_t WasRxEnabled.disable() {return FAIL;} default event void MLME_START.confirm(ieee154_status_t status) {} async event void RadioToken.transferredFrom(uint8_t fromClientID) {ASSERT(0);} + async event void RadioTokenRequested.requested(){ updateState(); } + async event void RadioTokenRequested.immediateRequested(){ updateState(); } }