From 26aff7555efd1c66b28f8ff294291dea62be93a4 Mon Sep 17 00:00:00 2001 From: bengreenstein Date: Mon, 30 Oct 2006 23:49:50 +0000 Subject: [PATCH] renamed files --- apps/tests/TestSerial/Makefile | 12 +-- apps/tests/TestSerial/TestSerialC.nc | 102 +++++---------------- apps/tests/TestSerial/TestSerialP.nc | 129 +++++++++++++++++++++++++++ 3 files changed, 155 insertions(+), 88 deletions(-) create mode 100644 apps/tests/TestSerial/TestSerialP.nc diff --git a/apps/tests/TestSerial/Makefile b/apps/tests/TestSerial/Makefile index aeadd476..3c85f292 100644 --- a/apps/tests/TestSerial/Makefile +++ b/apps/tests/TestSerial/Makefile @@ -1,13 +1,13 @@ COMPONENT=TestSerialC CFLAGS += -I%T/lib/oski -#BUILD_EXTRA_DEPS += TestSerial.class -#CLEAN_EXTRA = *.class TestSerialMsg.java +BUILD_EXTRA_DEPS += TestSerial.class +CLEAN_EXTRA = *.class TestSerialMsg.java -#TestSerial.class: $(wildcard *.java) TestSerialMsg.java -# javac *.java +TestSerial.class: $(wildcard *.java) TestSerialMsg.java + javac *.java -#TestSerialMsg.java: -# mig java -target=null $(CFLAGS) -java-classname=TestSerialMsg TestSerial.h TestSerialMsg -o $@ +TestSerialMsg.java: + mig java -target=null $(CFLAGS) -java-classname=TestSerialMsg TestSerial.h TestSerialMsg -o $@ include $(MAKERULES) diff --git a/apps/tests/TestSerial/TestSerialC.nc b/apps/tests/TestSerial/TestSerialC.nc index 4f3f351e..9316a9f8 100644 --- a/apps/tests/TestSerial/TestSerialC.nc +++ b/apps/tests/TestSerial/TestSerialC.nc @@ -20,7 +20,7 @@ * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * - * Copyright (c) 2002-2003 Intel Corporation + * Copyright (c) 2002-2005 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE @@ -31,7 +31,14 @@ /** * Application to test that the TinyOS java toolchain can communicate - * with motes over the serial port. + * with motes over the serial port. The application sends packets to + * the serial port at 1Hz: the packet contains an incrementing + * counter. When the application receives a counter packet, it + * displays the bottom three bits on its LEDs. This application is + * very similar to RadioCountToLeds, except that it operates over the + * serial port. There is Java application for testing the mote + * application: run TestSerial to print out the received packets and + * send packets to the mote. * * @author Gilman Tolle * @author Philip Levis @@ -40,90 +47,21 @@ * **/ -#include "Timer.h" #include "TestSerial.h" -module TestSerialC { - uses { - interface SplitControl as Control; - interface Leds; - interface Boot; - interface Receive; - interface AMSend; - interface Timer as MilliTimer; - interface Packet; - } -} +configuration TestSerialC {} implementation { + components TestSerialP, LedsC, MainC; + components SerialActiveMessageC as AM; + components new TimerMilliC(); - message_t packet; - - bool locked = FALSE; - uint16_t counter = 0; - - event void Boot.booted() { - call Control.start(); - } - - event void MilliTimer.fired() { - counter++; - if (locked) { - return; - } - else { - TestSerialMsg* rcm = (TestSerialMsg*)call Packet.getPayload(&packet, NULL); - if (call Packet.maxPayloadLength() < sizeof(TestSerialMsg)) { - return; - } - - rcm->counter = counter; - if (call AMSend.send(AM_BROADCAST_ADDR, &packet, sizeof(TestSerialMsg)) == SUCCESS) { - locked = TRUE; - } - } - } - - event message_t* Receive.receive(message_t* bufPtr, - void* payload, uint8_t len) { - if (len != sizeof(TestSerialMsg)) {return bufPtr;} - else { - TestSerialMsg* rcm = (TestSerialMsg*)payload; - if (rcm->counter & 0x1) { - call Leds.led0On(); - } - else { - call Leds.led0Off(); - } - if (rcm->counter & 0x2) { - call Leds.led1On(); - } - else { - call Leds.led1Off(); - } - if (rcm->counter & 0x4) { - call Leds.led2On(); - } - else { - call Leds.led2Off(); - } - return bufPtr; - } - } - - event void AMSend.sendDone(message_t* bufPtr, error_t error) { - if (&packet == bufPtr) { - locked = FALSE; - } - } - - event void Control.startDone(error_t err) { - if (err == SUCCESS) { - call MilliTimer.startPeriodic(1000); - } - } - event void Control.stopDone(error_t err) {} + TestSerialP.Boot -> MainC.Boot; + TestSerialP.Control -> AM; + TestSerialP.Receive -> AM.Receive[AM_TESTSERIALMSG]; + TestSerialP.AMSend -> AM.AMSend[AM_TESTSERIALMSG]; + TestSerialP.Leds -> LedsC; + TestSerialP.MilliTimer -> TimerMilliC; + TestSerialP.Packet -> AM; } - - diff --git a/apps/tests/TestSerial/TestSerialP.nc b/apps/tests/TestSerial/TestSerialP.nc new file mode 100644 index 00000000..78003fe1 --- /dev/null +++ b/apps/tests/TestSerial/TestSerialP.nc @@ -0,0 +1,129 @@ +// $Id$ + +/* tab:4 + * "Copyright (c) 2000-2005 The Regents of the University of California. + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose, without fee, and without written agreement is + * hereby granted, provided that the above copyright notice, the following + * two paragraphs and the author appear in all copies of this software. + * + * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF + * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." + * + * Copyright (c) 2002-2003 Intel Corporation + * All rights reserved. + * + * This file is distributed under the terms in the attached INTEL-LICENSE + * file. If you do not find these files, copies can be found by writing to + * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, + * 94704. Attention: Intel License Inquiry. + */ + +/** + * Application to test that the TinyOS java toolchain can communicate + * with motes over the serial port. + * + * @author Gilman Tolle + * @author Philip Levis + * + * @date Aug 12 2005 + * + **/ + +#include "Timer.h" +#include "TestSerial.h" + +module TestSerialP { + uses { + interface SplitControl as Control; + interface Leds; + interface Boot; + interface Receive; + interface AMSend; + interface Timer as MilliTimer; + interface Packet; + } +} +implementation { + + message_t packet; + + bool locked = FALSE; + uint16_t counter = 0; + + event void Boot.booted() { + call Control.start(); + } + + event void MilliTimer.fired() { + counter++; + if (locked) { + return; + } + else { + TestSerialMsg* rcm = (TestSerialMsg*)call Packet.getPayload(&packet, NULL); + if (call Packet.maxPayloadLength() < sizeof(TestSerialMsg)) { + return; + } + + rcm->counter = counter; + if (call AMSend.send(AM_BROADCAST_ADDR, &packet, sizeof(TestSerialMsg)) == SUCCESS) { + locked = TRUE; + } + } + } + + event message_t* Receive.receive(message_t* bufPtr, + void* payload, uint8_t len) { + if (len != sizeof(TestSerialMsg)) {return bufPtr;} + else { + TestSerialMsg* rcm = (TestSerialMsg*)payload; + if (rcm->counter & 0x1) { + call Leds.led0On(); + } + else { + call Leds.led0Off(); + } + if (rcm->counter & 0x2) { + call Leds.led1On(); + } + else { + call Leds.led1Off(); + } + if (rcm->counter & 0x4) { + call Leds.led2On(); + } + else { + call Leds.led2Off(); + } + return bufPtr; + } + } + + event void AMSend.sendDone(message_t* bufPtr, error_t error) { + if (&packet == bufPtr) { + locked = FALSE; + } + } + + event void Control.startDone(error_t err) { + if (err == SUCCESS) { + call MilliTimer.startPeriodic(1000); + } + } + event void Control.stopDone(error_t err) {} +} + + + + -- 2.39.2