]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/net/Deluge/DelugePageTransferP.nc
Fix a bug in the checking of the Deluge volumes.
[tinyos-2.x.git] / tos / lib / net / Deluge / DelugePageTransferP.nc
index 2ceb3ed0c1e44c751eed687cf7d83dc5947b78c4..5d9e1a8e3869df90ff6dbaa38435cc53618f8826 100644 (file)
@@ -56,8 +56,8 @@ module DelugePageTransferP
 implementation
 {
   // send/receive page buffers, and state variables for buffers
-  uint8_t pktsToSend[DELUGE_PKT_BITVEC_SIZE];    // bit vec of packets to send
-  uint8_t pktsToReceive[DELUGE_PKT_BITVEC_SIZE]; // bit vec of packets to receive
+  uint8_t pktsToSend[DELUGET2_PKT_BITVEC_SIZE];    // bit vec of packets to send
+  uint8_t pktsToReceive[DELUGET2_PKT_BITVEC_SIZE]; // bit vec of packets to receive
 
   DelugeDataMsg rxQueue[DELUGE_QSIZE];
   uint8_t       head, size;
@@ -133,7 +133,7 @@ implementation
     // send req message
     else {
       uint32_t i;
-      for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+      for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
         pReqMsg->requestedPkts[i] = pktsToReceive[i];
       }
       //memcpy(pReqMsg->requestedPkts, pktsToReceive, DELUGE_PKT_BITVEC_SIZE);
@@ -146,9 +146,8 @@ implementation
   
   storage_addr_t calcOffset(page_num_t pgNum, uint8_t pktNum)
   {
-    return (storage_addr_t)pgNum * (storage_addr_t)DELUGE_BYTES_PER_PAGE
-            + (uint16_t)pktNum * (uint16_t)DELUGE_PKT_PAYLOAD_SIZE;
-            //+ DELUGE_METADATA_SIZE;
+    return (storage_addr_t)pgNum * (storage_addr_t)DELUGET2_BYTES_PER_PAGE
+            + (uint16_t)pktNum * (uint16_t)DELUGET2_PKT_PAYLOAD_SIZE;
   }
   
   void setupDataMsg()
@@ -173,13 +172,12 @@ implementation
       pDataMsg->pktNum = 0;
     }
     
-    if (call BitVecUtils.indexOf(&nextPkt, pDataMsg->pktNum, pktsToSend, DELUGE_PKTS_PER_PAGE) != SUCCESS) {
+    if (call BitVecUtils.indexOf(&nextPkt, pDataMsg->pktNum, pktsToSend, DELUGET2_PKTS_PER_PAGE) != SUCCESS) {
       // no more packets to send
-      //dbg(DBG_USR1, "DELUGE: SEND_DONE\n");
       changeState(S_IDLE);
     } else {
       pDataMsg->pktNum = nextPkt;
-      if (call BlockRead.read[imgNum](calcOffset(pageToSend, nextPkt), pDataMsg->data, DELUGE_PKT_PAYLOAD_SIZE) != SUCCESS) {
+      if (call BlockRead.read[imgNum](calcOffset(pageToSend, nextPkt), pDataMsg->data, DELUGET2_PKT_PAYLOAD_SIZE) != SUCCESS) {
         call Timer.startOneShot(DELUGE_FAILED_SEND_DELAY);
       }
     }
@@ -215,7 +213,7 @@ implementation
       if (objid < objToSend || (objid == objToSend && pgNum < pageToSend)) {
        uint32_t i;
        changeState(S_IDLE);
-       for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+       for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
           pktsToSend[i] = 0x00;
        }
        //memset(pktsToSend, 0x00, DELUGE_PKT_BITVEC_SIZE);
@@ -231,7 +229,7 @@ implementation
   void writeData()
   {
     if(call BlockWrite.write[imgNum](calcOffset(rxQueue[head].pgNum, rxQueue[head].pktNum),
-                            rxQueue[head].data, DELUGE_PKT_PAYLOAD_SIZE) != SUCCESS) {
+                            rxQueue[head].data, DELUGET2_PKT_PAYLOAD_SIZE) != SUCCESS) {
       size = 0;
     }
   }
@@ -245,10 +243,10 @@ implementation
     workingObjid = DELUGE_INVALID_OBJID;
     workingPgNum = DELUGE_INVALID_PGNUM;
     
-    for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+    for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
       pktsToReceive[i] = 0x00;
     }
-    for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+    for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
       pktsToSend[i] = 0x00;
     }
     //memset(pktsToReceive, 0x00, DELUGE_PKT_BITVEC_SIZE);
@@ -268,7 +266,7 @@ implementation
     workingObjid = new_objid;
     workingPgNum = new_pgNum;
     
-    for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+    for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
       pktsToReceive[i] = 0xFF;
     }
     //memset(pktsToReceive, (nx_uint8_t)0xff, DELUGE_PKT_BITVEC_SIZE);
@@ -321,9 +319,6 @@ implementation
     page_num_t pgNum;
     int i;
     
-    //dbg(DBG_USR1, "DELUGE: Received REQ_MSG(dest=%d,vNum=%d,imgNum=%d,pgNum=%d,pkts=%x)\n",
-    //    rxReqMsg->dest, rxReqMsg->vNum, rxReqMsg->imgNum, rxReqMsg->pgNum, rxReqMsg->requestedPkts[0]);
-    
     if (state == S_DISABLED) {
       return msg;
     }
@@ -346,7 +341,7 @@ implementation
            && objid == objToSend
            && pgNum == pageToSend)) {
       // take union of packet bit vectors
-      for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+      for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
         pktsToSend[i] |= rxReqMsg->requestedPkts[i];
       }
     }
@@ -386,9 +381,6 @@ if (error == SUCCESS) {
       return msg;
     }
     
-    //dbg(DBG_USR1, "DELUGE: Received DATA_MSG(vNum=%d,imgNum=%d,pgNum=%d,pktNum=%d)\n",
-    //    rxDataMsg->vNum, rxDataMsg->imgNum, rxDataMsg->pgNum, rxDataMsg->pktNum);
-    
     // check if need to suppress req or data messages
     suppressMsgs(rxDataMsg->objid, rxDataMsg->pgNum);
     
@@ -401,14 +393,10 @@ if (error == SUCCESS) {
 // For collecting stats
 if (rxDataMsg->pktNum == 0) {
   //call StatsCollector.startRecvPageTransTime(0);
-  dbg("Deluge", "%.3f 115 116 116 117 115 1 %d\n", ((float)((sim_time() * 1000) / sim_ticks_per_sec())) / 1000, CC2420_DEF_CHANNEL);
 }
 call Leds.led1Toggle();
 //call Leds.set(rxDataMsg->pktNum);
       
-      //dbg(DBG_USR1, "DELUGE: SAVING(pgNum=%d,pktNum=%d)\n", 
-      //    rxDataMsg->pgNum, rxDataMsg->pktNum);
-      
       // copy data
       memcpy(&rxQueue[head^size], rxDataMsg, sizeof(DelugeDataMsg));
       if (++size == 1) {
@@ -460,7 +448,7 @@ call Leds.led1Toggle();
     // failed to write
     if (error != SUCCESS) {
       uint32_t i;
-      for (i = 0; i < DELUGE_PKT_BITVEC_SIZE; i++) {
+      for (i = 0; i < DELUGET2_PKT_BITVEC_SIZE; i++) {
         pktsToReceive[i] = 0xFF;
       }
       size = 0;
@@ -472,11 +460,11 @@ call Leds.led1Toggle();
     head = (head + 1) % DELUGE_QSIZE;
     size--;
     
-    if (call BitVecUtils.indexOf(&tmp, 0, pktsToReceive, DELUGE_PKTS_PER_PAGE) != SUCCESS) {
+    if (call BitVecUtils.indexOf(&tmp, 0, pktsToReceive, DELUGET2_PKTS_PER_PAGE) != SUCCESS) {
 // For collecting stats
 //call StatsCollector.endRecvPageTransTime(publisher_addr);
-dbg("Deluge", "%.3f 115 116 116 117 115 2 %d\n", ((float)((sim_time() * 1000) / sim_ticks_per_sec())) / 1000, publisher_addr);
 
+call Leds.led1Off();
       signal DelugePageTransfer.receivedPage(workingObjid, workingPgNum);
       changeState(S_IDLE);
       size = 0;
@@ -496,4 +484,5 @@ dbg("Deluge", "%.3f 115 116 116 117 115 2 %d\n", ((float)((sim_time() * 1000) /
   default command error_t BlockRead.read[uint8_t img_num](storage_addr_t addr, void* buf, storage_len_t len) { return FAIL; }
   default command error_t BlockWrite.write[uint8_t img_num](storage_addr_t addr, void* buf, storage_len_t len) { return FAIL; }
   default async command void Leds.led1Toggle() {}
+  default async command void Leds.led1Off() {}
 }