]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/mac/tkn154/CoordBroadcastP.nc
Merge TinyOS 2.1.1 into master.
[tinyos-2.x.git] / tos / lib / mac / tkn154 / CoordBroadcastP.nc
index 8ba9c136e5849a801d9456bcbe930def5d68eadf..e6000157fbaac0a06b045ac5b5a1e1071499f009 100644 (file)
@@ -49,10 +49,8 @@ module CoordBroadcastP
   } uses {
     interface Queue<ieee154_txframe_t*>; 
     interface FrameTxNow as CapTransmitNow;
-    interface ResourceTransfer as TokenToCap;
-    interface ResourceTransferred as TokenTransferred;
-    interface GetNow<bool> 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); }
 }