]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - apps/tests/tkn154/TestData/device/TestDeviceSenderC.nc
- re-designed the radio driver interfaces, restructured/improved the CC2420 radio...
[tinyos-2.x.git] / apps / tests / tkn154 / TestData / device / TestDeviceSenderC.nc
index 4534df2eb491e0b0a1814abea748c36b9ca611d6..279e43e2325417fa82bdd81210374e971ce2a350 100644 (file)
@@ -73,7 +73,7 @@ module TestDeviceSenderC
     payloadRegion = call Packet.getPayload(&m_frame, m_payloadLen);
     if (m_payloadLen <= call Packet.maxPayloadLength()){
       memcpy(payloadRegion, payload, m_payloadLen);
-      call MLME_RESET.request(TRUE, BEACON_ENABLED_PAN);
+      call MLME_RESET.request(TRUE);
     }
   }
 
@@ -110,6 +110,7 @@ module TestDeviceSenderC
                            0                       // security
                         );
   }
+  bool m_ready;
 
   event message_t* MLME_BEACON_NOTIFY.indication (message_t* frame)
   {
@@ -117,6 +118,8 @@ module TestDeviceSenderC
     ieee154_phyCurrentPage_t page = call MLME_GET.phyCurrentPage();
     ieee154_macBSN_t beaconSequenceNumber = call BeaconFrame.getBSN(frame);
 
+    if (m_ready)
+      post packetSendTask();
     if (beaconSequenceNumber & 1)
       call Leds.led2On();
     else
@@ -158,6 +161,7 @@ module TestDeviceSenderC
           NULL                            // security
           );
       post packetSendTask(); 
+      m_ready = TRUE;
     } else
       startApp();
   }
@@ -169,11 +173,12 @@ module TestDeviceSenderC
           &m_frame,                         // frame,
           m_payloadLen,                     // payloadLength,
           0,                                // msduHandle,
-          TX_OPTIONS_ACK                    // TxOptions,
+          TX_OPTIONS_ACK // TxOptions,
           ) == IEEE154_SUCCESS)
       m_sending = TRUE;
   }
 
+  uint8_t m_useLeds = TRUE;
   event void MCPS_DATA.confirm    (
                           message_t *msg,
                           uint8_t msduHandle,
@@ -184,7 +189,8 @@ module TestDeviceSenderC
     m_sending = FALSE;
     if (status == IEEE154_SUCCESS && m_ledCount++ == 20){
       m_ledCount = 0;
-      call Leds.led1Toggle();
+      if (m_useLeds)
+        call Leds.led1Toggle();
     }
     post packetSendTask(); 
   }
@@ -196,7 +202,9 @@ module TestDeviceSenderC
                           uint8_t ChannelPage,
                           ieee154_security_t *security)
   {
-    startApp();
+    m_useLeds = FALSE;
+    call Leds.led1Off();
+    //startApp();
   }
 
   event message_t* MCPS_DATA.indication (message_t* frame)