[Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/net/Deluge DelugeC.nc, 1.2, 1.3 DelugeP.nc, 1.1, 1.2 ObjectTransferC.nc, 1.1, 1.2 ObjectTransferP.nc, 1.1, 1.2

Razvan Musaloiu-E. razvanm at users.sourceforge.net
Wed Jun 27 13:05:00 PDT 2007


Update of /cvsroot/tinyos/tinyos-2.x/tos/lib/net/Deluge
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv7406

Modified Files:
	DelugeC.nc DelugeP.nc ObjectTransferC.nc ObjectTransferP.nc 
Log Message:
This commit from Chieh-Jan (Mike) Liang fixes the following issues:
- DelugeStorage is no longer included when DELUGE flag is not defined.
- Fix a problem related to the way MicaZ storage driver allocates volumes in reverse order than the one defined in XML file. The symptom here is that --diss command will disseminate the wrong volume.
- Fix the problem of not changing local node ID properly. The problem was reported by Ryan Stinnett.
- After a page is received and written to flash, sync the flash (especially for AT45DB).


Index: DelugeC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/net/Deluge/DelugeC.nc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DelugeC.nc	2 Jun 2007 00:09:14 -0000	1.2
--- DelugeC.nc	27 Jun 2007 20:04:57 -0000	1.3
***************
*** 26,29 ****
--- 26,30 ----
  
  #include "Deluge.h"
+ #include "StorageVolumes.h"
  
  configuration DelugeC {}
***************
*** 32,54 ****
  {
    components DelugeStorageC;
! 
  #ifdef DELUGE_BASESTATION
    components SerialStarterC;
    components new FlashVolumeManagerC(0xAB);
! 
    DelugeP.ReprogNotify -> FlashVolumeManagerC;
!   FlashVolumeManagerC.BlockRead[0] -> DelugeStorageC.BlockRead[0];
!   FlashVolumeManagerC.BlockWrite[0] -> DelugeStorageC.BlockWrite[0];
!   FlashVolumeManagerC.DelugeStorage[0] -> DelugeStorageC.DelugeStorage[0];
!   FlashVolumeManagerC.BlockRead[1] -> DelugeStorageC.BlockRead[1];
!   FlashVolumeManagerC.BlockWrite[1] -> DelugeStorageC.BlockWrite[1];
!   FlashVolumeManagerC.DelugeStorage[1] -> DelugeStorageC.DelugeStorage[1];
  #endif
    
    components ObjectTransferC;
!   ObjectTransferC.BlockRead[0] -> DelugeStorageC.BlockRead[0];
!   ObjectTransferC.BlockWrite[0] -> DelugeStorageC.BlockWrite[0];
!   ObjectTransferC.BlockRead[1] -> DelugeStorageC.BlockRead[1];
!   ObjectTransferC.BlockWrite[1] -> DelugeStorageC.BlockWrite[1];
    
    components new DisseminatorC(DelugeDissemination, 0xDE00), DisseminationC;
--- 33,55 ----
  {
    components DelugeStorageC;
!   
  #ifdef DELUGE_BASESTATION
    components SerialStarterC;
    components new FlashVolumeManagerC(0xAB);
!   
    DelugeP.ReprogNotify -> FlashVolumeManagerC;
!   FlashVolumeManagerC.BlockRead[VOLUME_DELUGE0] -> DelugeStorageC.BlockRead[VOLUME_DELUGE0];
!   FlashVolumeManagerC.BlockWrite[VOLUME_DELUGE0] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE0];
!   FlashVolumeManagerC.DelugeStorage[VOLUME_DELUGE0] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE0];
!   FlashVolumeManagerC.BlockRead[VOLUME_DELUGE1] -> DelugeStorageC.BlockRead[VOLUME_DELUGE1];
!   FlashVolumeManagerC.BlockWrite[VOLUME_DELUGE1] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE1];
!   FlashVolumeManagerC.DelugeStorage[VOLUME_DELUGE1] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE1];
  #endif
    
    components ObjectTransferC;
!   ObjectTransferC.BlockRead[VOLUME_DELUGE0] -> DelugeStorageC.BlockRead[VOLUME_DELUGE0];
!   ObjectTransferC.BlockWrite[VOLUME_DELUGE0] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE0];
!   ObjectTransferC.BlockRead[VOLUME_DELUGE1] -> DelugeStorageC.BlockRead[VOLUME_DELUGE1];
!   ObjectTransferC.BlockWrite[VOLUME_DELUGE1] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE1];
    
    components new DisseminatorC(DelugeDissemination, 0xDE00), DisseminationC;

Index: DelugeP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/net/Deluge/DelugeP.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** DelugeP.nc	22 May 2007 20:34:22 -0000	1.1
--- DelugeP.nc	27 Jun 2007 20:04:57 -0000	1.2
***************
*** 74,78 ****
        delugeDis.uid = imgDesc->uid;
        delugeDis.vNum = imgDesc->vNum;
!       delugeDis.imgNum = imgDesc->imgNum;
        delugeDis.size = imgDesc->size;
        
--- 74,78 ----
        delugeDis.uid = imgDesc->uid;
        delugeDis.vNum = imgDesc->vNum;
!       delugeDis.imgNum = img_num;
        delugeDis.size = imgDesc->size;
        

Index: ObjectTransferC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/net/Deluge/ObjectTransferC.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ObjectTransferC.nc	22 May 2007 20:34:23 -0000	1.1
--- ObjectTransferC.nc	27 Jun 2007 20:04:57 -0000	1.2
***************
*** 26,29 ****
--- 26,30 ----
  
  #include "DelugePageTransfer.h"
+ #include "StorageVolumes.h"
  
  configuration ObjectTransferC
***************
*** 41,48 ****
    
    ObjectTransfer = ObjectTransferP;
!   BlockRead[0] = DelugePageTransferC.BlockRead[0];
!   BlockWrite[0] = DelugePageTransferC.BlockWrite[0];
!   BlockRead[1] = DelugePageTransferC.BlockRead[1];
!   BlockWrite[1] = DelugePageTransferC.BlockWrite[1];
    ObjectTransferP.DelugePageTransfer -> DelugePageTransferC.DelugePageTransfer;
    
--- 42,49 ----
    
    ObjectTransfer = ObjectTransferP;
!   BlockRead[VOLUME_DELUGE0] = DelugePageTransferC.BlockRead[VOLUME_DELUGE0];
!   BlockWrite[VOLUME_DELUGE0] = DelugePageTransferC.BlockWrite[VOLUME_DELUGE0];
!   BlockRead[VOLUME_DELUGE1] = DelugePageTransferC.BlockRead[VOLUME_DELUGE1];
!   BlockWrite[VOLUME_DELUGE1] = DelugePageTransferC.BlockWrite[VOLUME_DELUGE1];
    ObjectTransferP.DelugePageTransfer -> DelugePageTransferC.DelugePageTransfer;
    
***************
*** 65,70 ****
    DelugePageTransferC.AMPacket -> SendDataMsg;
    
!   ObjectTransferP.BlockWrite[0] = BlockWrite[0];
!   ObjectTransferP.BlockWrite[1] = BlockWrite[1];
    
    components MainC, LedsC, NoLedsC;
--- 66,71 ----
    DelugePageTransferC.AMPacket -> SendDataMsg;
    
!   ObjectTransferP.BlockWrite[VOLUME_DELUGE0] = BlockWrite[VOLUME_DELUGE0];
!   ObjectTransferP.BlockWrite[VOLUME_DELUGE1] = BlockWrite[VOLUME_DELUGE1];
    
    components MainC, LedsC, NoLedsC;

Index: ObjectTransferP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/net/Deluge/ObjectTransferP.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ObjectTransferP.nc	22 May 2007 20:34:23 -0000	1.1
--- ObjectTransferP.nc	27 Jun 2007 20:04:57 -0000	1.2
***************
*** 56,59 ****
--- 56,60 ----
    enum {
      S_ERASE,
+     S_SYNC,
      S_INITIALIZING_PUB,
      S_INITIALIZING_RECV,
***************
*** 111,115 ****
      } else {
        call DelugePageTransfer.setWorkingPage(DELUGE_INVALID_OBJID, DELUGE_INVALID_PGNUM);
!       post signalObjRecvDone();
      }
    }
--- 112,117 ----
      } else {
        call DelugePageTransfer.setWorkingPage(DELUGE_INVALID_OBJID, DELUGE_INVALID_PGNUM);
!       state = S_SYNC;
!       call BlockWrite.sync[cont_receive_img_num]();
      }
    }
***************
*** 151,155 ****
          //dbg(DBG_USR1, "DELUGE: Sent ADV_MSG(imgNum=%d)\n", imgDesc->imgNum);
  //call StatsCollector.msg_bcastReq();
- call Leds.led0Toggle();
          isBusy_pMsgBuf = TRUE;
        }
--- 153,156 ----
***************
*** 216,220 ****
      cont_receive_img_num = img_num;
      
!     error = call BlockWrite.erase[img_num]();
      if (error == SUCCESS) {
        state = S_ERASE;
--- 217,221 ----
      cont_receive_img_num = img_num;
      
!     error = call BlockWrite.erase[cont_receive_img_num]();
      if (error == SUCCESS) {
        state = S_ERASE;
***************
*** 247,255 ****
        } else {
          call DelugePageTransfer.setWorkingPage(curObjDesc.objid, curObjDesc.numPgsComplete);
!         post signalObjRecvDone();
        }
      }
    }
    
    event void DelugePageTransfer.suppressMsgs(object_id_t new_objid)
    {
--- 248,267 ----
        } else {
          call DelugePageTransfer.setWorkingPage(curObjDesc.objid, curObjDesc.numPgsComplete);
!         state = S_SYNC;
!         call BlockWrite.sync[cont_receive_img_num]();
        }
      }
    }
    
+   event void BlockWrite.syncDone[uint8_t img_num](error_t error)
+   {
+     if (state == S_SYNC) {
+       if (error != SUCCESS) {
+         call Leds.led2On();
+       }
+       post signalObjRecvDone();
+     }
+   }
+   
    event void DelugePageTransfer.suppressMsgs(object_id_t new_objid)
    {
***************
*** 327,330 ****
--- 339,344 ----
    
    default command error_t BlockWrite.erase[uint8_t img_num]() { return FAIL; }
+   default command error_t BlockWrite.sync[uint8_t img_num]() { return FAIL; }
+   
    event void BlockWrite.writeDone[uint8_t img_num](storage_addr_t addr, void* buf, storage_len_t len, error_t error) {}
    event void BlockWrite.eraseDone[uint8_t img_num](error_t error)
***************
*** 334,337 ****
      }
    }
-   event void BlockWrite.syncDone[uint8_t img_num](error_t error) {}
  }
--- 348,350 ----



More information about the Tinyos-2-commits mailing list