]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
new tutorial app to demonstrate safety checks
authorregehr <regehr>
Thu, 3 Jul 2008 18:10:29 +0000 (18:10 +0000)
committerregehr <regehr>
Thu, 3 Jul 2008 18:10:29 +0000 (18:10 +0000)
apps/tutorials/BlinkFail/BlinkFailAppC.nc [new file with mode: 0644]
apps/tutorials/BlinkFail/BlinkFailC.nc [new file with mode: 0644]
apps/tutorials/BlinkFail/Makefile [new file with mode: 0644]
apps/tutorials/BlinkFail/README.txt [new file with mode: 0644]

diff --git a/apps/tutorials/BlinkFail/BlinkFailAppC.nc b/apps/tutorials/BlinkFail/BlinkFailAppC.nc
new file mode 100644 (file)
index 0000000..9cd663e
--- /dev/null
@@ -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 (file)
index 0000000..76ea293
--- /dev/null
@@ -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<TMilli> as Timer0;
+  uses interface Timer<TMilli> as Timer1;
+  uses interface Timer<TMilli> 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 (file)
index 0000000..c58ac9d
--- /dev/null
@@ -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 (file)
index 0000000..3696539
--- /dev/null
@@ -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$