From 7a60e64a56d51713af119b386176192060f696f7 Mon Sep 17 00:00:00 2001 From: klueska Date: Sat, 14 Jun 2008 19:24:06 +0000 Subject: [PATCH] Added test application to test the basicsb sensor boards for the micas --- .../apps/TestBasicsbSensors/Makefile | 5 ++ .../TestBasicsbSensorsAppC.nc | 58 +++++++++++++++ .../TestBasicsbSensors/TestBasicsbSensorsC.nc | 72 +++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 apps/tosthreads/apps/TestBasicsbSensors/Makefile create mode 100644 apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsAppC.nc create mode 100644 apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsC.nc diff --git a/apps/tosthreads/apps/TestBasicsbSensors/Makefile b/apps/tosthreads/apps/TestBasicsbSensors/Makefile new file mode 100644 index 00000000..7580f0d4 --- /dev/null +++ b/apps/tosthreads/apps/TestBasicsbSensors/Makefile @@ -0,0 +1,5 @@ +COMPONENT=TestBasicsbSensorsAppC +CFLAGS += -I$(TOSDIR)/sensorboards/basicsb +CFLAGS += -I$(TOSDIR)/lib/tosthreads/sensorboards/basicsb + +include $(MAKERULES) diff --git a/apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsAppC.nc b/apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsAppC.nc new file mode 100644 index 00000000..351628c1 --- /dev/null +++ b/apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsAppC.nc @@ -0,0 +1,58 @@ +/* + * 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 TestBasicsbSensorsAppC { +} +implementation { + components MainC, TestBasicsbSensorsC; + components new ThreadC(100) as MainThread; + + components new BlockingPhotoC(); + components new BlockingTempC(); + components BlockingSerialActiveMessageC; + components new BlockingSerialAMSenderC(100); + + MainC.Boot <- TestBasicsbSensorsC; + TestBasicsbSensorsC.MainThread -> MainThread; + TestBasicsbSensorsC.Photo -> BlockingPhotoC; + TestBasicsbSensorsC.Temp -> BlockingTempC; + TestBasicsbSensorsC.AMControl -> BlockingSerialActiveMessageC; + TestBasicsbSensorsC.BlockingAMSend -> BlockingSerialAMSenderC; + TestBasicsbSensorsC.Packet -> BlockingSerialAMSenderC; + + components LedsC; + TestBasicsbSensorsC.Leds -> LedsC; +} + diff --git a/apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsC.nc b/apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsC.nc new file mode 100644 index 00000000..0288ad20 --- /dev/null +++ b/apps/tosthreads/apps/TestBasicsbSensors/TestBasicsbSensorsC.nc @@ -0,0 +1,72 @@ +/* + * 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 TestBasicsbSensorsC { + uses { + interface Boot; + interface Thread as MainThread; + interface BlockingRead as Photo; + interface BlockingRead as Temp; + interface BlockingStdControl as AMControl; + interface BlockingAMSend; + interface Packet; + interface Leds; + } +} + +implementation { + typedef struct sensor_readings { + uint16_t photo; + uint16_t temp; + } sensor_readings_t; + + event void Boot.booted() { + call MainThread.start(NULL); + } + + event void MainThread.run(void* arg) { + sensor_readings_t* readings; + message_t msg; + readings = call Packet.getPayload(&msg, sizeof(sensor_readings_t)); + + while( call AMControl.start() != SUCCESS ); + for(;;){ + while( call Photo.read(&(readings->photo)) != SUCCESS ); + while( call Temp.read(&(readings->temp)) != SUCCESS ); + while( call BlockingAMSend.send(AM_BROADCAST_ADDR, &msg, sizeof(sensor_readings_t)) != SUCCESS ); + call Leds.led0Toggle(); + } + } +} \ No newline at end of file -- 2.39.2