[Tinyos-beta-commits] CVS: tinyos-1.x/beta/Deluge/delugetools Deluge.java, 1.7, 1.8 Makefile, 1.14, 1.15 Pinger.java, 1.3, 1.4 Rebooter.java, 1.2, 1.3

Jonathan Hui jwhui at users.sourceforge.net
Tue Mar 15 11:55:53 PST 2005


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

Modified Files:
	Deluge.java Makefile Pinger.java Rebooter.java 
Log Message:
- Ping now returns Ident info for currently executing image.

- Reboot confirmation now displays currently executing image.

- Updated Makefile to point to correct STM25P path.



Index: Deluge.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Deluge.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Deluge.java	10 Mar 2005 15:51:12 -0000	1.7
--- Deluge.java	15 Mar 2005 19:55:32 -0000	1.8
***************
*** 150,155 ****
      case S_PING:
  
        for ( int i = 0; i < pinger.getNumImages(); i++ ) {
! 	System.out.println("  Image " + i);
  
  	TOSBootImage image = pinger.getImage(i);
--- 150,158 ----
      case S_PING:
  
+       System.out.println("  Currently Executing:");
+       System.out.println(pinger.getExecutingIdent());
+ 
        for ( int i = 0; i < pinger.getNumImages(); i++ ) {
! 	System.out.println("  Stored Image " + i);
  
  	TOSBootImage image = pinger.getImage(i);

Index: Makefile
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Makefile,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** Makefile	9 Feb 2005 01:07:32 -0000	1.14
--- Makefile	15 Mar 2005 19:55:33 -0000	1.15
***************
*** 12,16 ****
  NCG = ncg java
  
! MSGS = DelugeAdvMsg.java DelugeReqMsg.java DelugeDataMsg.java DelugeDataMsg.java DelugeConsts.java
  
  INITIAL_TARGETS = $(MSGS)
--- 12,16 ----
  NCG = ncg java
  
! MSGS = DelugeAdvMsg.java DelugeReqMsg.java DelugeDataMsg.java DelugeDataMsg.java DelugeConsts.java NetProgMsg.java
  
  INITIAL_TARGETS = $(MSGS)
***************
*** 27,31 ****
  DELUGE_PLATFORM=pc
  DELUGE_LIB=$(TOS)/../beta/Deluge/Deluge
! STM25P_LIB=$(TOS)/../beta/STM25P
  DELUGE_PC_LIB=$(TOS)/../beta/Deluge/pc
  
--- 27,31 ----
  DELUGE_PLATFORM=pc
  DELUGE_LIB=$(TOS)/../beta/Deluge/Deluge
! STM25P_LIB=$(TOS)/../beta/STM25P/STM25P
  DELUGE_PC_LIB=$(TOS)/../beta/Deluge/pc
  
***************
*** 39,42 ****
--- 39,45 ----
  	$(MIG) -java-classname=$(PACKAGE).DelugeDataMsg -I$(DELUGE_PC_LIB) $(DELUGE_LIB)/DelugeMsgs.h DelugeDataMsg -o $@
  
+ NetProgMsg.java:
+ 	$(MIG) -java-classname=$(PACKAGE).NetProgMsg -I$(DELUGE_PC_LIB) $(DELUGE_LIB)/NetProgMsgs.h NetProgMsg -o $@
+ 
  DelugeConsts.java:
  	$(NCG) -java-classname=$(PACKAGE).DelugeConsts -target=$(DELUGE_PLATFORM) -I$(DELUGE_LIB) -I$(STM25P_LIB) -I$(DELUGE_PC_LIB) $(DELUGE_LIB)/DelugeC.nc Deluge.h DelugePageTransfer.h DelugeMsgs.h DelugeConsts -o $@

Index: Pinger.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Pinger.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Pinger.java	2 Mar 2005 17:16:32 -0000	1.3
--- Pinger.java	15 Mar 2005 19:55:33 -0000	1.4
***************
*** 39,42 ****
--- 39,43 ----
  
    private static final short TOS_UART_ADDR = 0x007e;
+   private static final int STRING_SIZE = 16;
  
    private static final int START_PKT = DelugeConsts.DELUGE_CRC_BLOCK_SIZE/DelugeConsts.DELUGE_PKT_PAYLOAD_SIZE;
***************
*** 48,51 ****
--- 49,53 ----
  
    private DelugeAdvMsg advMsg = new DelugeAdvMsg();
+   private NetProgMsg netProgMsg = new NetProgMsg();
  
    private Hashtable pingReplies = new Hashtable();
***************
*** 62,65 ****
--- 64,69 ----
  
    private boolean pingComplete = false;
+   private boolean receivedExecutingIdent = false;
+   private String identString = "";
  
    public Pinger(MoteIF moteif, boolean verbose) {
***************
*** 68,71 ****
--- 72,76 ----
      this.moteif.registerListener(new DelugeAdvMsg(), this);
      this.moteif.registerListener(new DelugeDataMsg(), this);
+     this.moteif.registerListener(new NetProgMsg(), this);
    }
  
***************
*** 83,86 ****
--- 88,115 ----
      setupNewImage();
  
+     // get executing image
+     for (;;) {
+       try {
+ 	Thread.currentThread().sleep(500);
+ 
+ 	if (receivedExecutingIdent)
+ 	  break;
+ 
+ 	netProgMsg.set_sourceAddr(pcAddr);
+ 	send(netProgMsg);
+ 	if (verbose) System.out.print(netProgMsg);
+ 	
+ 	if (!resolvedNodeType) {
+ 	  if (pcAddr == (short)MoteIF.TOS_BCAST_ADDR)
+ 	    pcAddr = TOS_UART_ADDR;
+ 	  else
+ 	    pcAddr = (short)MoteIF.TOS_BCAST_ADDR;
+ 	}
+       } catch (Exception e) {
+ 	e.printStackTrace();
+       }
+     }
+ 
+     // get deluge image info
      for (;;) {
        try {
***************
*** 109,112 ****
--- 138,142 ----
      moteif.deregisterListener(new DelugeAdvMsg(), this);
      moteif.deregisterListener(new DelugeDataMsg(), this);
+     moteif.deregisterListener(new NetProgMsg(), this);
  
    }
***************
*** 147,150 ****
--- 177,184 ----
    }
  
+   public String getExecutingIdent() {
+     return identString;
+   }
+ 
    public void messageReceived(int toAddr, Message m) {
  
***************
*** 165,168 ****
--- 199,226 ----
      switch(m.amType()) {
  
+     case NetProgMsg.AM_TYPE:
+ 
+       netProgMsg = (NetProgMsg)m;
+ 
+       // extract ident information
+       {
+ 	byte tmpBytes[] = new byte[STRING_SIZE];
+ 	for ( int i = 0; i < STRING_SIZE; i++ )
+ 	  tmpBytes[i] = (byte)(netProgMsg.getElement_ident_program_name(i) & 0xff);
+ 
+ 	String name = new String(tmpBytes);
+ 	if (name.indexOf('\0') != -1)
+ 	  name = name.substring(0, name.indexOf('\0'));
+ 
+ 	Date date = new Date(netProgMsg.get_ident_unix_time()*1000);
+ 
+ 	identString = "    Prog Name:   " + name + "\n" +
+ 	  "    Compiled On: " + date + "\n" +
+ 	  "    User Hash:   0x" + Long.toHexString(netProgMsg.get_ident_user_hash());
+ 	receivedExecutingIdent = true;
+       }
+ 
+       break;
+ 
      case DelugeAdvMsg.AM_TYPE:
  
***************
*** 182,195 ****
  	}
        }
! 
!       DelugeReqMsg reqMsg = new DelugeReqMsg();
!       reqMsg.set_sourceAddr(pcAddr);
!       reqMsg.set_dest(pingReply.get_sourceAddr());
!       reqMsg.set_vNum(pingReply.get_imgDesc_vNum());
!       reqMsg.set_imgNum(pingReply.get_imgDesc_imgNum());
!       reqMsg.set_pgNum((short)0);
!       reqMsg.set_requestedPkts(pktsToReceive);
!       if (verbose) System.out.print(reqMsg);
!       send(reqMsg);
  
        break;
--- 240,254 ----
  	}
        }
!       if (curImage == imgNum) {
! 	DelugeReqMsg reqMsg = new DelugeReqMsg();
! 	reqMsg.set_sourceAddr(pcAddr);
! 	reqMsg.set_dest(pingReply.get_sourceAddr());
! 	reqMsg.set_vNum(pingReply.get_imgDesc_vNum());
! 	reqMsg.set_imgNum(pingReply.get_imgDesc_imgNum());
! 	reqMsg.set_pgNum((short)0);
! 	reqMsg.set_requestedPkts(pktsToReceive);
! 	if (verbose) System.out.print(reqMsg);
! 	send(reqMsg);
!       }
  
        break;

Index: Rebooter.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Deluge/delugetools/Rebooter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Rebooter.java	20 Jan 2005 01:37:35 -0000	1.2
--- Rebooter.java	15 Mar 2005 19:55:33 -0000	1.3
***************
*** 46,53 ****
--- 46,55 ----
    private short newVersion;
    private boolean rebootAcked = false;
+   private Pinger pinger;
  
    private DelugeAdvMsg advMsg = new DelugeAdvMsg();
  
    public Rebooter(Pinger pinger, int imageNum, MoteIF moteif, boolean verbose) {
+     this.pinger = pinger;
      this.pingReply = pinger.getPingReply(imageNum);
      this.newImage = pinger.getImage(imageNum);
***************
*** 75,82 ****
      }
  
!     System.out.println("Reboot to image:");
!     
      TOSBootImage image = newImage;
!     System.out.println("  Image: " + pingReply.get_imgDesc_imgNum());
      System.out.println(image);
  
--- 77,86 ----
      }
  
!     System.out.println("  Reboot From Image:");
! 
!     System.out.println(pinger.getExecutingIdent());
! 
      TOSBootImage image = newImage;
!     System.out.println("  To Image: " + pingReply.get_imgDesc_imgNum());
      System.out.println(image);
  



More information about the Tinyos-beta-commits mailing list