[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