[Tinyos-beta-commits] CVS: tinyos-1.x/beta/Deluge/delugetools Downloader.java, 1.2, 1.3 Pinger.java, 1.11, 1.12

Jonathan Hui jwhui at users.sourceforge.net
Tue Jul 12 11:03:39 PDT 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12388

Modified Files:
	Downloader.java Pinger.java 
Log Message:
- Allow resetting of an image's version number.



Index: Downloader.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Downloader.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Downloader.java	29 Jun 2005 01:21:20 -0000	1.2
--- Downloader.java	12 Jul 2005 18:03:37 -0000	1.3
***************
*** 37,40 ****
--- 37,41 ----
  
    private static final int PAGE_SIZE = DelugeConsts.DELUGE_PKTS_PER_PAGE*DelugeConsts.DELUGE_PKT_PAYLOAD_SIZE;
+   private static final int MAX_REQ_ATTEMPTS = 4;
  
    private Pinger pinger;
***************
*** 49,52 ****
--- 50,56 ----
    private String outfile;
  
+   private int reqAttempts;
+   private int reqDest;
+ 
    public Downloader(Pinger pinger, int imageNum,
  		    MoteIF moteif, boolean verbose,
***************
*** 83,88 ****
--- 87,95 ----
      
      setupNextPage();
+     reqDest = pingReply.get_sourceAddr();
+     reqAttempts = MAX_REQ_ATTEMPTS;
      curPage = 0;
  
+     moteif.registerListener(new DelugeAdvMsg(), this);
      moteif.registerListener(new DelugeDataMsg(), this);
  
***************
*** 96,108 ****
  	System.out.print("\rDownloading page [" + (curPage+1) + "] of [" + pingReply.get_imgDesc_numPgs() + "] ...");
  
! 	DelugeReqMsg reqMsg = new DelugeReqMsg();
! 	reqMsg.set_sourceAddr(pinger.getPCAddr());
! 	reqMsg.set_dest(pingReply.get_sourceAddr());
! 	reqMsg.set_vNum(pingReply.get_imgDesc_vNum());
! 	reqMsg.set_imgNum(pingReply.get_imgDesc_imgNum());
! 	reqMsg.set_pgNum(curPage);
! 	reqMsg.set_requestedPkts(pktsToReceive);
! 	if (verbose) System.out.print(reqMsg);
! 	send(reqMsg);
        } catch (Exception e) {
  	e.printStackTrace();
--- 103,128 ----
  	System.out.print("\rDownloading page [" + (curPage+1) + "] of [" + pingReply.get_imgDesc_numPgs() + "] ...");
  
! 	if ( reqAttempts == 0 ) {
! 	  DelugeAdvMsg advMsg = (DelugeAdvMsg)pingReply.clone();
! 	  advMsg.set_sourceAddr(pinger.getPCAddr());
! 	  advMsg.set_version(DelugeConsts.DELUGE_VERSION);
! 	  advMsg.set_type(DelugeConsts.DELUGE_ADV_PING);
! 	  advMsg = DelugeCrc.computeAdvCrc(advMsg);
! 	  if (verbose) System.out.print(advMsg);
! 	  send(advMsg);
! 	  reqDest = MoteIF.TOS_BCAST_ADDR;
! 	}
! 	else {
! 	  DelugeReqMsg reqMsg = new DelugeReqMsg();
! 	  reqMsg.set_sourceAddr(pinger.getPCAddr());
! 	  reqMsg.set_dest(reqDest);
! 	  reqMsg.set_vNum(pingReply.get_imgDesc_vNum());
! 	  reqMsg.set_imgNum(pingReply.get_imgDesc_imgNum());
! 	  reqMsg.set_pgNum(curPage);
! 	  reqMsg.set_requestedPkts(pktsToReceive);
! 	  if (verbose) System.out.print(reqMsg);
! 	  send(reqMsg);
! 	  reqAttempts--;
! 	}
        } catch (Exception e) {
  	e.printStackTrace();
***************
*** 241,244 ****
--- 261,277 ----
      switch(m.amType()) {
  
+     case DelugeAdvMsg.AM_TYPE:
+ 
+       DelugeAdvMsg adv = (DelugeAdvMsg)m;
+ 
+       if ( reqDest == MoteIF.TOS_BCAST_ADDR
+ 	   && adv.get_imgDesc_vNum() == pingReply.get_imgDesc_vNum()
+ 	   && adv.get_imgDesc_numPgsComplete() > curPage ) {
+ 	reqDest = adv.get_sourceAddr();
+ 	reqAttempts = MAX_REQ_ATTEMPTS;
+       }
+       
+       break;
+ 
      case DelugeDataMsg.AM_TYPE:
  
***************
*** 247,264 ****
        short pktNum = data.get_pktNum();
  
!       if (verbose) System.out.print(data);
! 
!       if ((pktsToReceive[pktNum/8] & (0x1 << (pktNum%8))) != 0) {
! 	
! 	pktsToReceive[pktNum/8] &= ~(0x1 << (pktNum%8));
! 	pktsReceived++;
  
! 	System.arraycopy(data.get_data(), 0, imageData,
! 			 pgNum*PAGE_SIZE + pktNum*DelugeConsts.DELUGE_PKT_PAYLOAD_SIZE,
! 			 DelugeConsts.DELUGE_PKT_PAYLOAD_SIZE);
  
! 	if (pktsReceived >= DelugeConsts.DELUGE_PKTS_PER_PAGE) {
! 	  setupNextPage();
! 	  curPage++;
  	}
  
--- 280,304 ----
        short pktNum = data.get_pktNum();
  
!       if ( data.get_imgNum() == pingReply.get_imgDesc_imgNum()
! 	   && data.get_vNum() == pingReply.get_imgDesc_vNum()
! 	   && data.get_pgNum() == curPage ) {
  
! 	reqAttempts = MAX_REQ_ATTEMPTS;
  
! 	if (verbose) System.out.print(data);
! 	
! 	if ((pktsToReceive[pktNum/8] & (0x1 << (pktNum%8))) != 0) {
! 	  
! 	  pktsToReceive[pktNum/8] &= ~(0x1 << (pktNum%8));
! 	  pktsReceived++;
! 	  
! 	  System.arraycopy(data.get_data(), 0, imageData,
! 			   pgNum*PAGE_SIZE + pktNum*DelugeConsts.DELUGE_PKT_PAYLOAD_SIZE,
! 			   DelugeConsts.DELUGE_PKT_PAYLOAD_SIZE);
! 	  
! 	  if (pktsReceived >= DelugeConsts.DELUGE_PKTS_PER_PAGE) {
! 	    setupNextPage();
! 	    curPage++;
! 	  }
  	}
  

Index: Pinger.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Pinger.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** Pinger.java	29 Jun 2005 21:08:32 -0000	1.11
--- Pinger.java	12 Jul 2005 18:03:37 -0000	1.12
***************
*** 87,91 ****
      advMsg.set_sourceAddr(pcAddr);
      advMsg.set_version(DelugeConsts.DELUGE_VERSION);
!     advMsg.set_type((short)DelugeConsts.DELUGE_ADV_PC);
      advMsg.set_nodeDesc_vNum(DelugeConsts.DELUGE_INVALID_VNUM);
      advMsg.set_nodeDesc_imgNum(DelugeConsts.DELUGE_INVALID_IMGNUM);
--- 87,91 ----
      advMsg.set_sourceAddr(pcAddr);
      advMsg.set_version(DelugeConsts.DELUGE_VERSION);
!     advMsg.set_type((short)DelugeConsts.DELUGE_ADV_PING);
      advMsg.set_nodeDesc_vNum(DelugeConsts.DELUGE_INVALID_VNUM);
      advMsg.set_nodeDesc_imgNum(DelugeConsts.DELUGE_INVALID_IMGNUM);



More information about the Tinyos-beta-commits mailing list