[Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/shockfish/tools/java_tc65/src/com/shockfish/tinyos/apps/demo
Makefile, NONE, 1.1 OscopeDataCaptureThread.java, NONE,
1.1 MamaBoardDemo.java, 1.1, 1.2 MamaBoardDemoManager.java, 1.1, 1.2
rogmeier
rogmeier at users.sourceforge.net
Mon Sep 11 06:40:07 PDT 2006
- Previous message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/shockfish/tools/java_tc65/src/com/shockfish/tinyos/tools
Tc65Listen.java, NONE, 1.1 tc65listen.jad, NONE,
1.1 MamaBoardManager.java, 1.1, 1.2 Tc65Manager.java, 1.1, 1.2
- Next message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/shockfish/tools/java_tc65
build.xml, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-1.x/contrib/shockfish/tools/java_tc65/src/com/shockfish/tinyos/apps/demo
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28926/src/com/shockfish/tinyos/apps/demo
Modified Files:
MamaBoardDemo.java MamaBoardDemoManager.java
Added Files:
Makefile OscopeDataCaptureThread.java
Log Message:
TC65/TinyNode foundations.
--- NEW FILE: Makefile ---
TOS = $(shell ncc -print-tosdir)
PACKAGE = com.shockfish.tinyos.apps.demo
APP = ${TOSROOT}/apps/Oscilloscope
MIG = mig -target=tinynode -I ${TOSROOT}/contrib/shockfish/tos/platform/tinynode cldcjava
MSGS = OscopeMsg.java
all: cleanmig ${MSGS}
INITIAL_TARGETS = $(MSGS)
OTHER_CLEAN = cleanmig
OscopeMsg.java:
$(MIG) -v -java-classname=$(PACKAGE).OscopeMsg ${APP}/OscopeMsg.h OscopeMsg -o $@
cleanmig:
rm -f $(MSGS)
--- NEW FILE: OscopeDataCaptureThread.java ---
package com.shockfish.tinyos.apps.demo;
import java.io.IOException;
import com.shockfish.tinyos.tools.MamaBoardManager;
import com.shockfish.tinyos.gateway.TOSBuffer;
import com.shockfish.tinyos.tools.CldcLogger;
import com.shockfish.tinyos.message.tinynode.TOSMsg;
import com.shockfish.tinyos.packet.CldcPacketizer;
import net.tinyos.util.PrintStreamMessenger;
public class OscopeDataCaptureThread extends Thread {
public final static int SENSOR_SAMPLING = 10;
private CldcPacketizer serialPacketizer;
public TOSBuffer buffer;
boolean running;
public OscopeDataCaptureThread(MamaBoardManager mamaBoardManager) {
this.serialPacketizer = mamaBoardManager.serialAsc0Packetizer;
this.buffer = new TOSBuffer();
}
public void run() {
int samples = 0;
try {
serialPacketizer.open(PrintStreamMessenger.err);
} catch (IOException e) {
CldcLogger.severe("Error on opening the packetizer:"+e.getMessage());
return;
}
running = true;
// capture loop
while (running) {
byte[] packet = null;
try {
packet = serialPacketizer.readPacket();
} catch (IOException ioe) {
CldcLogger.severe("Error on reading packet :"+ioe.getMessage());
continue;
}
TOSMsg tosMsg = new TOSMsg(packet);
// Cldc does support reflection, so we have to DIY
if (tosMsg.get_type() == OscopeMsg.AM_TYPE) {
OscopeMsg oscopeMsg = new OscopeMsg();
oscopeMsg.dataSet(tosMsg.dataGet(), tosMsg.offset_data(0), 0,tosMsg.get_length());
// dump the packet in pretty format
System.out.println(oscopeMsg);
// we are only interested in the light sensor.
if (oscopeMsg.get_channel() == 2) {
samples++;
if (samples >= SENSOR_SAMPLING) {
samples = 0;
buffer.addElement(oscopeMsg.dataGet());
}
}
}
}
// try to close (even though we may have been closed already in stopRequest
closePacketizer();
return;
}
public void stopRequest() {
running = false;
closePacketizer();
}
private void closePacketizer() {
try {
serialPacketizer.close();
} catch (Exception e) {
//CldcLogger.severe("Error on closing the packetizer:"+.e.getMessage());
}
}
}
Index: MamaBoardDemo.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/shockfish/tools/java_tc65/src/com/shockfish/tinyos/apps/demo/MamaBoardDemo.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MamaBoardDemo.java 22 Jun 2006 17:36:41 -0000 1.1
--- MamaBoardDemo.java 11 Sep 2006 13:40:02 -0000 1.2
***************
*** 1,67 ****
package com.shockfish.tinyos.apps.demo;
! import javax.microedition.midlet.*;
! import java.io.*;
! import javax.microedition.io.*;
! import com.siemens.icm.io.*;
! import com.shockfish.tinyos.tools.Tc65Manager;
! import javax.microedition.midlet.*;
! import java.io.*;
! import javax.microedition.io.*;
! import com.siemens.icm.io.*;
! import net.tinyos.message.Dump;
! import net.tinyos.util.PrintStreamMessenger;
! import com.shockfish.tinyos.packet.CldcNetworkByteSource;
! import com.shockfish.tinyos.packet.Tc65SerialByteSource;
! import com.shockfish.tinyos.packet.CldcPacketizer;
! //import com.shockfish.tinyos.message.*;
! //TODO cleanup imports
public class MamaBoardDemo extends MIDlet {
!
! MamaBoardDemoManager mbdm;
! Tc65SerialByteSource tsb;
! CldcPacketizer packetizer;
!
! public MamaBoardDemo() {
!
! }
!
! public void startApp() throws MIDletStateChangeException {
!
!
! tsb = null;
! packetizer = null;
! System.out.println("Shockfish GPRS module");
! System.out.println("Available COM Ports: " + System.getProperty("microedition.commports"));
!
! try {
! tsb = new Tc65SerialByteSource("SERIAL", 0);
! packetizer = new CldcPacketizer("SERIAL",tsb, 0); // 0 is tinynode
!
! // simulation : init the bridge now
! mbdm = new MamaBoardDemoManager(packetizer);
! mbdm.runBridge();
! } catch (Exception e) {
! e.printStackTrace();
! }
!
!
! // destroyApp(true);
! }
!
! public void pauseApp() {
! System.out.println("pauseApp()");
! }
!
! public void destroyApp(boolean cond) {
! notifyDestroyed();
! }
!
! }
--- 1,31 ----
package com.shockfish.tinyos.apps.demo;
! /**
! * @author Pierre Metrailler, Shockfish SA
! */
! import javax.microedition.midlet.MIDlet;
! import javax.microedition.midlet.MIDletStateChangeException;
public class MamaBoardDemo extends MIDlet {
!
! private static MamaBoardDemoManager mbdm;
! public MamaBoardDemo() { }
! public void startApp() throws MIDletStateChangeException {
! try {
! mbdm = new MamaBoardDemoManager();
! } catch (Exception e) {
! e.printStackTrace();
! }
! }
! public void pauseApp() { }
+ public void destroyApp(boolean cond) {
+ notifyDestroyed();
+ }
+
+ }
Index: MamaBoardDemoManager.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/shockfish/tools/java_tc65/src/com/shockfish/tinyos/apps/demo/MamaBoardDemoManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MamaBoardDemoManager.java 22 Jun 2006 17:36:41 -0000 1.1
--- MamaBoardDemoManager.java 11 Sep 2006 13:40:02 -0000 1.2
***************
*** 1,67 ****
package com.shockfish.tinyos.apps.demo;
import com.shockfish.tinyos.tools.MamaBoardManager;
! import com.shockfish.tinyos.packet.CldcPacketizer;
! import com.shockfish.tinyos.bridge.CldcBridgeThread;
! import net.tinyos.util.PrintStreamMessenger;
! import java.io.*;
! import javax.microedition.io.*;
- public class MamaBoardDemoManager extends MamaBoardManager {
! CldcPacketizer serialPacketizer;
- public MamaBoardDemoManager(CldcPacketizer serialPacketizer) {
- super();
- this.serialPacketizer = serialPacketizer;
! }
! // TODO implemented registration-like system.
! protected void OtapCommandCalled(String command, String args) {
! if (command.startsWith("SET")) {
! String prop = command.substring(3);
! setProp(prop, args);
! // read it for fun : TODO remove
! readProp(prop);
! return;
! }
! if (command.equals("SENDSTATUSSMS")) {
! sendSms(args, getTc65Status());
! return;
! }
! if (command.equals("STARTBR")) {
! runBridge();
}
!
!
}
! public void runBridge() {
! // this.nsb = new CldcNetworkByteSource("www2.shockfish.com", 2020,
! // manager.getGprsConf());
! CldcBridgeThread br = new CldcBridgeThread(serialPacketizer, this,
! "xxx.xxx.xxx.xxx", 2020);
! br.start();
try {
! serialPacketizer.open(PrintStreamMessenger.err);
! } catch (IOException e) {
e.printStackTrace();
}
- int packetCnt = 0;
- for (;;) {
- try {
-
- byte[] packet = serialPacketizer.readPacket();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
}
!
! }
--- 1,90 ----
package com.shockfish.tinyos.apps.demo;
+ import java.util.Timer;
+
import com.shockfish.tinyos.tools.MamaBoardManager;
! import com.shockfish.tinyos.net.CldcFtpClient;
! import com.shockfish.tinyos.gateway.UpdateDate;
! import com.shockfish.tinyos.gateway.SenderTask;
! import com.shockfish.tinyos.gateway.SenderTimerControl;
! import com.shockfish.tinyos.tools.CldcLogger;
! public class MamaBoardDemoManager extends MamaBoardManager implements SenderTimerControl {
! private final static String OTAP_SECRET = "mysecret";
!
! private OscopeDataCaptureThread oscopeThread;
! private SenderTask senderTask;
! private Timer senderTimer;
! private UpdateDate updateDate;
!
! public MamaBoardDemoManager() {
! super();
! // GPIO and packetizer are initialized after this.
! CldcLogger.setLevelOfDisplay(CldcLogger.DEBUG_LEVEL);
!
! oscopeThread = new OscopeDataCaptureThread(this);
!
! // kick the capture thread
! oscopeThread.start();
! // kick the sender thread
! startSenderTimer();
!
! // kick the time update thread
! updateDate= new UpdateDate(this);
! updateDate.start();
! }
!
! // this is terribly ugly and needs to be changed.
! public void startSenderTimer() {
! this.senderTask = new SenderTask(this, oscopeThread.buffer, this);
! this.senderTimer = new Timer();
! this.senderTimer.schedule(senderTask, 20 * 1000);
! }
!
! public void stopSenderTimer() {
! senderTimer.cancel();
! }
!
! protected String getSecret() {
! return OTAP_SECRET;
! }
!
! public void enterBridgeMode() {
! // TODO stop the capture thread
! }
! public void leaveBridgeMode() {
! // TODO restart the capture thread
! }
!
! protected boolean customCommandHandler(String command, String args) {
+ if (command.equals("SENDSTATUSFTP")) {
+ uploadStatus();
+ return true;
}
! return false;
}
! void uploadStatus() {
try {
! CldcLogger.info("Uploading ");
! CldcFtpClient ftp = new CldcFtpClient();
! String report = "Report\n" + getTc65Status();
! String fileName = "gprseport" + System.currentTimeMillis() + ".txt";
! ftp.connect("shockfish.com", 21, "tinynodetest", "shockfish", getGprsConf());
! ftp.ascii();
! ftp.putData(report, fileName);
! ftp.disconnect();
! } catch (Exception e) {
e.printStackTrace();
}
}
! }
\ No newline at end of file
- Previous message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/shockfish/tools/java_tc65/src/com/shockfish/tinyos/tools
Tc65Listen.java, NONE, 1.1 tc65listen.jad, NONE,
1.1 MamaBoardManager.java, 1.1, 1.2 Tc65Manager.java, 1.1, 1.2
- Next message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/shockfish/tools/java_tc65
build.xml, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-contrib-commits
mailing list