From 87efa2b92935c1260c54250d895d0b3ca4187d7f Mon Sep 17 00:00:00 2001 From: klueska Date: Fri, 13 Jun 2008 23:00:36 +0000 Subject: [PATCH] Added test applications for the SineSensor stuff --- apps/tosthreads/apps/Blink/Makefile | 1 - apps/tosthreads/apps/TestSineSensor/Makefile | 4 ++ .../apps/TestSineSensor/TestSineSensorAppC.nc | 57 ++++++++++++++++ .../apps/TestSineSensor/TestSineSensorC.nc | 65 +++++++++++++++++++ apps/tosthreads/capps/TestSineSensor/Makefile | 4 ++ .../capps/TestSineSensor/TestSineSensor.c | 52 +++++++++++++++ 6 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 apps/tosthreads/apps/TestSineSensor/Makefile create mode 100644 apps/tosthreads/apps/TestSineSensor/TestSineSensorAppC.nc create mode 100644 apps/tosthreads/apps/TestSineSensor/TestSineSensorC.nc create mode 100644 apps/tosthreads/capps/TestSineSensor/Makefile create mode 100644 apps/tosthreads/capps/TestSineSensor/TestSineSensor.c diff --git a/apps/tosthreads/apps/Blink/Makefile b/apps/tosthreads/apps/Blink/Makefile index 5a42cf1c..7f9fb6b1 100644 --- a/apps/tosthreads/apps/Blink/Makefile +++ b/apps/tosthreads/apps/Blink/Makefile @@ -1,4 +1,3 @@ COMPONENT=BlinkAppC -CFLAGS += -I$(TOS_THREADS_DIR)/tos/sensorboards/tmote_onboard include $(MAKERULES) diff --git a/apps/tosthreads/apps/TestSineSensor/Makefile b/apps/tosthreads/apps/TestSineSensor/Makefile new file mode 100644 index 00000000..f3505239 --- /dev/null +++ b/apps/tosthreads/apps/TestSineSensor/Makefile @@ -0,0 +1,4 @@ +COMPONENT=TestSineSensorAppC +CFLAGS += -I$(TOSDIR)/lib/tosthreads/sensorboards/universal + +include $(MAKERULES) diff --git a/apps/tosthreads/apps/TestSineSensor/TestSineSensorAppC.nc b/apps/tosthreads/apps/TestSineSensor/TestSineSensorAppC.nc new file mode 100644 index 00000000..2a5bdf2a --- /dev/null +++ b/apps/tosthreads/apps/TestSineSensor/TestSineSensorAppC.nc @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2008 Stanford University. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * - Neither the name of the Stanford University nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL STANFORD + * UNIVERSITY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @author Kevin Klues (klueska@cs.stanford.edu) + */ + +configuration TestSineSensorAppC { +} +implementation { + components MainC, TestSineSensorC; + components new ThreadC(100) as MainThread; + + components new BlockingSineSensorC(); + components BlockingSerialActiveMessageC; + components new BlockingSerialAMSenderC(100); + + MainC.Boot <- TestSineSensorC; + MainC.SoftwareInit -> BlockingSineSensorC; + TestSineSensorC.MainThread -> MainThread; + TestSineSensorC.BlockingRead -> BlockingSineSensorC; + TestSineSensorC.AMControl -> BlockingSerialActiveMessageC; + TestSineSensorC.BlockingAMSend -> BlockingSerialAMSenderC; + TestSineSensorC.Packet -> BlockingSerialAMSenderC; + + components LedsC; + TestSineSensorC.Leds -> LedsC; +} + diff --git a/apps/tosthreads/apps/TestSineSensor/TestSineSensorC.nc b/apps/tosthreads/apps/TestSineSensor/TestSineSensorC.nc new file mode 100644 index 00000000..9290a67b --- /dev/null +++ b/apps/tosthreads/apps/TestSineSensor/TestSineSensorC.nc @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2008 Stanford University. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * - Neither the name of the Stanford University nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL STANFORD + * UNIVERSITY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @author Kevin Klues (klueska@cs.stanford.edu) + */ + +module TestSineSensorC { + uses { + interface Boot; + interface Thread as MainThread; + interface BlockingRead; + interface BlockingStdControl as AMControl; + interface BlockingAMSend; + interface Packet; + interface Leds; + } +} + +implementation { + event void Boot.booted() { + call MainThread.start(NULL); + } + + event void MainThread.run(void* arg) { + uint16_t* var; + message_t msg; + var = call Packet.getPayload(&msg, sizeof(uint16_t)); + + while( call AMControl.start() != SUCCESS ); + for(;;){ + while( call BlockingRead.read(var) != SUCCESS ); + while( call BlockingAMSend.send(AM_BROADCAST_ADDR, &msg, sizeof(uint16_t)) != SUCCESS ); + call Leds.led0Toggle(); + } + } +} \ No newline at end of file diff --git a/apps/tosthreads/capps/TestSineSensor/Makefile b/apps/tosthreads/capps/TestSineSensor/Makefile new file mode 100644 index 00000000..4852ecee --- /dev/null +++ b/apps/tosthreads/capps/TestSineSensor/Makefile @@ -0,0 +1,4 @@ +TOSTHREAD_MAIN=TestSineSensor.c +CFLAGS += -I$(TOSDIR)/lib/tosthreads/sensorboards/universal + +include $(MAKERULES) diff --git a/apps/tosthreads/capps/TestSineSensor/TestSineSensor.c b/apps/tosthreads/capps/TestSineSensor/TestSineSensor.c new file mode 100644 index 00000000..a74be6c9 --- /dev/null +++ b/apps/tosthreads/capps/TestSineSensor/TestSineSensor.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2008 Stanford University. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * - Neither the name of the Stanford University nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL STANFORD + * UNIVERSITY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @author Kevin Klues + */ + +#include "tosthread.h" +#include "tosthread_amserial.h" +#include "tosthread_leds.h" +#include "tosthread_sinesensor.h" + +void tosthread_main(void* arg) { + uint16_t* var; + message_t msg; + var = serialGetPayload(&msg, sizeof(uint16_t)); + + while( amSerialStart() != SUCCESS ); + for(;;) { + while( sinesensor_read(var) != SUCCESS ); + while( amSerialSend(AM_BROADCAST_ADDR, &msg, sizeof(uint16_t), 100) != SUCCESS ); + led0Toggle(); + } +} \ No newline at end of file -- 2.39.2