X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=blobdiff_plain;f=tos%2Flib%2Fmac%2Ftkn154%2FCoordBroadcastP.nc;h=e6000157fbaac0a06b045ac5b5a1e1071499f009;hp=8ba9c136e5849a801d9456bcbe930def5d68eadf;hb=e9bfab607e051bae6afb47b44892ce37541d1b44;hpb=adf1de6c009d13b7b52e68535c63b28f59c97400 diff --git a/tos/lib/mac/tkn154/CoordBroadcastP.nc b/tos/lib/mac/tkn154/CoordBroadcastP.nc index 8ba9c136..e6000157 100644 --- a/tos/lib/mac/tkn154/CoordBroadcastP.nc +++ b/tos/lib/mac/tkn154/CoordBroadcastP.nc @@ -49,10 +49,8 @@ module CoordBroadcastP } uses { interface Queue; interface FrameTxNow as CapTransmitNow; - interface ResourceTransfer as TokenToCap; - interface ResourceTransferred as TokenTransferred; - interface GetNow as BeaconFramePendingBit; - interface Leds; + interface TransferableResource as RadioToken; + interface SuperframeStructure as OutgoingSF; } } implementation @@ -90,7 +88,7 @@ implementation command ieee154_status_t RealignmentTx.transmit(ieee154_txframe_t *frame) { atomic { - if (!m_realignmentFrame){ + if (!m_realignmentFrame) { m_realignmentFrame = frame; return IEEE154_SUCCESS; } else @@ -106,20 +104,18 @@ implementation return (m_realignmentFrame != NULL || m_queueHead != NULL); } - event void TokenTransferred.transferred() + async event void RadioToken.transferredFrom(uint8_t fromClient) { // CAP has started - are there any broadcast frames to be transmitted? - if (call BeaconFramePendingBit.getNow()){ + if (call OutgoingSF.isBroadcastPending()) { ieee154_txframe_t *broadcastFrame = m_realignmentFrame; if (broadcastFrame == NULL) broadcastFrame = m_queueHead; - if (broadcastFrame){ - m_lock = TRUE; - call CapTransmitNow.transmitNow(broadcastFrame); - } else - call Leds.led0On(); // internal error! + ASSERT(broadcastFrame != NULL); + m_lock = TRUE; + call CapTransmitNow.transmitNow(broadcastFrame); } - call TokenToCap.transfer(); + call RadioToken.transferTo(RADIO_CLIENT_COORDCAP); } async event void CapTransmitNow.transmitNowDone(ieee154_txframe_t *txFrame, ieee154_status_t status) @@ -133,14 +129,16 @@ implementation { if (!m_lock) return; - if (m_transmittedFrame == m_realignmentFrame){ + if (m_transmittedFrame == m_realignmentFrame) { m_realignmentFrame = NULL; signal RealignmentTx.transmitDone(m_transmittedFrame, m_status); - } else if (m_transmittedFrame == m_queueHead){ + } else if (m_transmittedFrame == m_queueHead) { call Queue.dequeue(); m_queueHead = call Queue.head(); signal BroadcastDataFrame.transmitDone(m_transmittedFrame, m_status); } m_lock = FALSE; } + + event void RadioToken.granted(){ ASSERT(0); } }