From: regehr Date: Thu, 3 Jul 2008 18:10:29 +0000 (+0000) Subject: new tutorial app to demonstrate safety checks X-Git-Tag: release_tinyos_2_1_0_0~112 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=3a5ecf8ba0cf8a1b425fdb0e58a56f7d767a9354 new tutorial app to demonstrate safety checks --- diff --git a/apps/tutorials/BlinkFail/BlinkFailAppC.nc b/apps/tutorials/BlinkFail/BlinkFailAppC.nc new file mode 100644 index 00000000..9cd663e3 --- /dev/null +++ b/apps/tutorials/BlinkFail/BlinkFailAppC.nc @@ -0,0 +1,58 @@ +// $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-2005 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. + */ + +/** + * Blink is a basic application that toggles the a mote LED periodically. + * It does so by starting a Timer that fires every second. It uses the + * OSKI TimerMilli service to achieve this goal. + * + * @author tinyos-help@millennium.berkeley.edu + **/ + +configuration BlinkFailAppC +{ +} +implementation +{ + components MainC, BlinkFailC, LedsC; + components new TimerMilliC() as Timer0; + components new TimerMilliC() as Timer1; + components new TimerMilliC() as Timer2; + + + BlinkFailC -> MainC.Boot; + + BlinkFailC.Timer0 -> Timer0; + BlinkFailC.Timer1 -> Timer1; + BlinkFailC.Timer2 -> Timer2; + BlinkFailC.Leds -> LedsC; +} + diff --git a/apps/tutorials/BlinkFail/BlinkFailC.nc b/apps/tutorials/BlinkFail/BlinkFailC.nc new file mode 100644 index 00000000..76ea293d --- /dev/null +++ b/apps/tutorials/BlinkFail/BlinkFailC.nc @@ -0,0 +1,78 @@ +// $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. + */ + +/** + * Implementation for Blink application. Toggle the red LED when a + * Timer fires. + **/ + +#include "Timer.h" + +module BlinkFailC @safe() +{ + uses interface Timer as Timer0; + uses interface Timer as Timer1; + uses interface Timer as Timer2; + uses interface Leds; + uses interface Boot; +} +implementation +{ + event void Boot.booted() + { + call Timer0.startPeriodic( 250 ); + call Timer1.startPeriodic( 500 ); + call Timer2.startPeriodic( 1000 ); + } + + event void Timer0.fired() + { + dbg("BlinkFailC", "Timer 0 fired @ %s.\n", sim_time_string()); + call Leds.led0Toggle(); + } + + int a[10]; + int i; + + event void Timer1.fired() + { + dbg("BlinkFailC", "Timer 1 fired @ %s \n", sim_time_string()); + call Leds.led1Toggle(); + a[i++] = 1; + } + + event void Timer2.fired() + { + dbg("BlinkFailC", "Timer 2 fired @ %s.\n", sim_time_string()); + call Leds.led2Toggle(); + } +} + diff --git a/apps/tutorials/BlinkFail/Makefile b/apps/tutorials/BlinkFail/Makefile new file mode 100644 index 00000000..c58ac9db --- /dev/null +++ b/apps/tutorials/BlinkFail/Makefile @@ -0,0 +1,3 @@ +COMPONENT=BlinkFailAppC +include $(MAKERULES) + diff --git a/apps/tutorials/BlinkFail/README.txt b/apps/tutorials/BlinkFail/README.txt new file mode 100644 index 00000000..3696539e --- /dev/null +++ b/apps/tutorials/BlinkFail/README.txt @@ -0,0 +1,22 @@ +README for Blink +Author/Contact: tinyos-help@millennium.berkeley.edu + +Description: + +Blink is a simple application that blinks the 3 mote LEDs. It tests +that the boot sequence and millisecond timers are working properly. +The three LEDs blink at 1Hz, 2Hz, and 4Hz. Because each is driven by +an independent timer, visual inspection can determine whether there are +bugs in the timer system that are causing drift. Note that this +method is different than RadioCountToLeds, which fires a single timer +at a steady rate and uses the bottom three bits of a counter to display +on the LEDs. + +Tools: + +Known bugs/limitations: + +None. + + +$Id$