[Tinyos-beta-commits] CVS: tinyos-1.x/beta/Deluge/delugetools Deluge.java, 1.5, 1.6 Eraser.java, 1.1, 1.2 ImageInjector.java, 1.2, 1.3 Rebooter.java, 1.1, 1.2

Jonathan Hui jwhui at users.sourceforge.net
Wed Jan 19 17:37:37 PST 2005


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

Modified Files:
	Deluge.java Eraser.java ImageInjector.java Rebooter.java 
Log Message:
- Display an error message when trying to modify image A when image B
is incomplete.



Index: Deluge.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Deluge.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Deluge.java	18 Jan 2005 20:49:16 -0000	1.5
--- Deluge.java	20 Jan 2005 01:37:35 -0000	1.6
***************
*** 200,206 ****
        System.out.println("--------------------------------------------------");
  
!       ImageInjector injector = new ImageInjector(pinger.getPingReply(imageNum), 
! 						 pinger.getImage(imageNum),
! 						 newImage, pinger.getPCAddr(),
  						 moteif, verbose);
  
--- 200,204 ----
        System.out.println("--------------------------------------------------");
  
!       ImageInjector injector = new ImageInjector(pinger, imageNum, newImage,
  						 moteif, verbose);
  
***************
*** 216,223 ****
        }
  
!       Eraser eraser = new Eraser(pinger.getPingReply(imageNum), 
! 				 pinger.getImage(imageNum),
! 				 pinger.getPCAddr(),
! 				 moteif, verbose);
  
        eraser.erase();
--- 214,218 ----
        }
  
!       Eraser eraser = new Eraser(pinger, imageNum, moteif, verbose);
  
        eraser.erase();
***************
*** 232,239 ****
        }
  
!       Rebooter rebooter = new Rebooter(pinger.getPingReply(imageNum),
! 				       pinger.getImage(imageNum),
! 				       pinger.getPCAddr(),
! 				       moteif, verbose);
        rebooter.reboot();
  
--- 227,231 ----
        }
  
!       Rebooter rebooter = new Rebooter(pinger, imageNum, moteif, verbose);
        rebooter.reboot();
  

Index: Eraser.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Eraser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Eraser.java	17 Jan 2005 19:48:18 -0000	1.1
--- Eraser.java	20 Jan 2005 01:37:35 -0000	1.2
***************
*** 37,40 ****
--- 37,41 ----
  public class Eraser implements MessageListener {
  
+   private Pinger pinger;
    private DelugeAdvMsg advMsg;
    private DelugeAdvMsg pingReply;
***************
*** 44,58 ****
    private boolean injectAcked = false;
  
!   public Eraser(DelugeAdvMsg pingReply, 
! 		TOSBootImage oldTOSBootImage,
! 		short pcAddr, MoteIF moteif, boolean verbose) {
  
!     this.pingReply = pingReply;
!     this.oldTOSBootImage = oldTOSBootImage;
      this.moteif = moteif;
      this.verbose = verbose;
  
      advMsg = (DelugeAdvMsg)pingReply.clone();
!     advMsg.set_sourceAddr(pcAddr);
      advMsg.set_type(DelugeConsts.DELUGE_ADV_PC);
      advMsg.set_imgDesc_vNum(DelugeConsts.DELUGE_INVALID_VNUM);
--- 45,59 ----
    private boolean injectAcked = false;
  
!   public Eraser(Pinger pinger, int imageNum, 
! 		MoteIF moteif, boolean verbose) {
  
!     this.pinger = pinger;
!     this.pingReply = pinger.getPingReply(imageNum);
!     this.oldTOSBootImage = pinger.getImage(imageNum);
      this.moteif = moteif;
      this.verbose = verbose;
  
      advMsg = (DelugeAdvMsg)pingReply.clone();
!     advMsg.set_sourceAddr(pinger.getPCAddr());
      advMsg.set_type(DelugeConsts.DELUGE_ADV_PC);
      advMsg.set_imgDesc_vNum(DelugeConsts.DELUGE_INVALID_VNUM);
***************
*** 66,69 ****
--- 67,80 ----
      short newVersion;
  
+     for ( int i = 0; i < pinger.getNumImages() && i < pingReply.get_imgDesc_imgNum(); i++ ) {
+       DelugeAdvMsg tmpAdvMsg = pinger.getPingReply(i);
+       if (tmpAdvMsg.get_imgDesc_numPgs() != tmpAdvMsg.get_imgDesc_numPgsComplete()) {
+ 	System.out.println("ERROR: Image " + i + " is incomplete.");
+ 	System.out.println("       Please complete or erase image " + i + " before");
+ 	System.out.println("       modifying image " + pingReply.get_imgDesc_imgNum() + ".");
+ 	System.exit(0);
+       }
+     }
+ 
      if (pingReply.get_imgDesc_numPgsComplete() == 0) {
        System.out.println("ERROR: Image already erased.");

Index: ImageInjector.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/ImageInjector.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ImageInjector.java	18 Jan 2005 20:46:56 -0000	1.2
--- ImageInjector.java	20 Jan 2005 01:37:35 -0000	1.3
***************
*** 36,39 ****
--- 36,40 ----
  public class ImageInjector implements MessageListener {
  
+   private Pinger pinger;
    private DelugeAdvMsg advMsg;
    private DelugeAdvMsg pingReply;
***************
*** 47,59 ****
    private boolean injectAcked = false;
  
!   public ImageInjector(DelugeAdvMsg pingReply, 
! 		       TOSBootImage oldTOSBootImage,
  		       TOSBootImage newTOSBootImage, 
! 		       short pcAddr, MoteIF moteif, boolean verbose) {
  
      byte[] tbimageBytes = newTOSBootImage.getBytes();
  
!     this.pingReply = pingReply;
!     this.oldTOSBootImage = oldTOSBootImage;
      this.newTOSBootImage = newTOSBootImage;
      this.delugeImage = new DelugeImage(tbimageBytes, tbimageBytes.length);
--- 48,60 ----
    private boolean injectAcked = false;
  
!   public ImageInjector(Pinger pinger, int imageNum,
  		       TOSBootImage newTOSBootImage, 
! 		       MoteIF moteif, boolean verbose) {
  
      byte[] tbimageBytes = newTOSBootImage.getBytes();
  
!     this.pinger = pinger;
!     this.pingReply = pinger.getPingReply(imageNum);
!     this.oldTOSBootImage = pinger.getImage(imageNum);
      this.newTOSBootImage = newTOSBootImage;
      this.delugeImage = new DelugeImage(tbimageBytes, tbimageBytes.length);
***************
*** 62,66 ****
  
      advMsg = (DelugeAdvMsg)pingReply.clone();
!     advMsg.set_sourceAddr(pcAddr);
      advMsg.set_type(DelugeConsts.DELUGE_ADV_PC);
      advMsg.set_imgDesc_vNum(DelugeConsts.DELUGE_INVALID_VNUM);
--- 63,67 ----
  
      advMsg = (DelugeAdvMsg)pingReply.clone();
!     advMsg.set_sourceAddr(pinger.getPCAddr());
      advMsg.set_type(DelugeConsts.DELUGE_ADV_PC);
      advMsg.set_imgDesc_vNum(DelugeConsts.DELUGE_INVALID_VNUM);
***************
*** 75,78 ****
--- 76,89 ----
      short newVersion;
  
+     for ( int i = 0; i < pinger.getNumImages() && i < pingReply.get_imgDesc_imgNum(); i++ ) {
+       DelugeAdvMsg tmpAdvMsg = pinger.getPingReply(i);
+       if (tmpAdvMsg.get_imgDesc_numPgs() != tmpAdvMsg.get_imgDesc_numPgsComplete()) {
+ 	System.out.println("ERROR: Image " + i + " is incomplete.");
+ 	System.out.println("       Please complete or erase image " + i + " before");
+ 	System.out.println("       modifying image " + pingReply.get_imgDesc_imgNum() + ".");
+ 	System.exit(0);
+       }
+     }
+ 
      if (pingReply.get_imgDesc_numPgsComplete() == 0) {
        System.out.println("Replace empty image with:");

Index: Rebooter.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Rebooter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Rebooter.java	17 Jan 2005 19:48:18 -0000	1.1
--- Rebooter.java	20 Jan 2005 01:37:35 -0000	1.2
***************
*** 49,57 ****
    private DelugeAdvMsg advMsg = new DelugeAdvMsg();
  
!   public Rebooter(DelugeAdvMsg pingReply, TOSBootImage newImage, 
! 		  short pcAddr, MoteIF moteif, boolean verbose) {
!     this.pingReply = pingReply;
!     this.newImage = newImage;
!     this.pcAddr = pcAddr;
      this.moteif = moteif;
      this.verbose = verbose;
--- 49,56 ----
    private DelugeAdvMsg advMsg = new DelugeAdvMsg();
  
!   public Rebooter(Pinger pinger, int imageNum, MoteIF moteif, boolean verbose) {
!     this.pingReply = pinger.getPingReply(imageNum);
!     this.newImage = pinger.getImage(imageNum);
!     this.pcAddr = pinger.getPCAddr();
      this.moteif = moteif;
      this.verbose = verbose;



More information about the Tinyos-beta-commits mailing list