]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Remove TestLogStorage and add changes to BaseStation app
authorklueska <klueska>
Wed, 18 Jun 2008 19:34:56 +0000 (19:34 +0000)
committerklueska <klueska>
Wed, 18 Jun 2008 19:34:56 +0000 (19:34 +0000)
apps/tosthreads/apps/BaseStation/BaseSendReceiveP.nc
apps/tosthreads/apps/BaseStation/BaseStationAppC.nc
apps/tosthreads/apps/BaseStation/BaseStationC.nc
apps/tosthreads/apps/BaseStation/stack.h
apps/tosthreads/apps/TestBlockStorage/README
apps/tosthreads/apps/TestLogStorage/Makefile [deleted file]
apps/tosthreads/apps/TestLogStorage/TestLogStorageAppC.nc [deleted file]
apps/tosthreads/apps/TestLogStorage/TestLogStorageP.nc [deleted file]
apps/tosthreads/apps/TestLogStorage/volumes-at45db.xml [deleted file]
apps/tosthreads/apps/TestLogStorage/volumes-stm25p.xml [deleted file]

index 3caa02c7dfdb5c9e797cdd5d410b8388a5e04b7e..063fa3a0ad521736d07f262fb7a75714cfbe62c5 100644 (file)
  * OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*
- * Copyright (c) 2008 Johns Hopkins University.
- * 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 (updated) modification history and the author appear in
- * all copies of this source code.
- *
- * 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 THE COPYRIGHT HOLDERS OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA,
- * OR PROFITS) 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>
  * @author Chieh-Jan Mike Liang <cliang4@cs.jhu.edu>
@@ -60,6 +38,7 @@ generic module BaseSendReceiveP() {
   uses {
     interface Boot;
     interface Thread as ReceiveThread;
+    interface Thread as SnoopThread;
     interface Thread as SendThread;
     interface ConditionVariable;
     interface Mutex;
@@ -68,6 +47,7 @@ generic module BaseSendReceiveP() {
     interface Leds;
     
     interface BlockingReceive as BlockingReceiveAny;
+    interface BlockingReceive as BlockingSnoopAny;
     interface BlockingAMSend as BlockingAMSend[uint8_t id];
     interface Packet as ReceivePacket;
     interface Packet as SendPacket;
@@ -86,6 +66,7 @@ implementation {
     call Mutex.init(&m_queue);
     call Mutex.init(&m_pool);
     call ReceiveThread.start(NULL);
+    call SnoopThread.start(NULL);
     call SendThread.start(NULL);
   }
   
@@ -116,6 +97,33 @@ implementation {
     }
   }
   
+  event void SnoopThread.run(void* arg) {   
+    message_t* msg;
+    call Mutex.lock(&m_pool);
+      msg = call Pool.get();
+    call Mutex.unlock(&m_pool);
+    for(;;) {
+      if(call BlockingSnoopAny.receive(msg, 0) == SUCCESS) {
+        call Leds.led0Toggle();
+        
+        call Mutex.lock(&m_queue);
+          call Queue.enqueue(msg);
+        call Mutex.unlock(&m_queue);
+        if( call Queue.size() == 1 ) {
+          call ConditionVariable.signalAll(&c_queue);
+        }
+        
+        call Mutex.lock(&m_pool);
+          while( call Pool.empty() )
+            call ConditionVariable.wait(&c_pool, &m_pool);
+          msg = call Pool.get();
+        call Mutex.unlock(&m_pool);
+        
+      }
+      else call Leds.led2Toggle();
+    }
+  }
+  
   event void SendThread.run(void* arg) {  
     message_t* msg;
     am_id_t id;
@@ -149,4 +157,12 @@ implementation {
       }
     }
   }
+  
+  default command error_t BlockingSnoopAny.receive(message_t* m, uint32_t timeout) { return FAIL; }
+  default command void* BlockingSnoopAny.getPayload(message_t* msg, uint8_t len) { return NULL; }
+  default command error_t SnoopThread.start(void* arg) { return FAIL; }
+  default command error_t SnoopThread.stop() { return FAIL; }
+  default command error_t SnoopThread.pause() { return FAIL; }
+  default command error_t SnoopThread.resume() { return FAIL; }
+  default command error_t SnoopThread.sleep(uint32_t milli) { return FAIL; }   
 }
index a83de933b2b288af94accc41fe22bc78a05b4b5b..46f26a53f8df13d2eeca75264cb2dd1acae1ac77 100644 (file)
  * OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*
- * Copyright (c) 2008 Johns Hopkins University.
- * 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 (updated) modification history and the author appear in
- * all copies of this source code.
- *
- * 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 THE COPYRIGHT HOLDERS OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA,
- * OR PROFITS) 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>
  * @author Chieh-Jan Mike Liang <cliang4@cs.jhu.edu>
@@ -71,6 +49,7 @@ implementation
              
              new ThreadC(BOOT_THREAD_STACK_SIZE) as BootThread,
              new ThreadC(RADIO_RECEIVE_THREAD_STACK_SIZE) as RadioReceiveThread,
+             new ThreadC(RADIO_SNOOP_THREAD_STACK_SIZE) as RadioSnoopThread,
              new ThreadC(SERIAL_SEND_THREAD_STACK_SIZE) as SerialSendThread,
              new ThreadC(SERIAL_RECEIVE_THREAD_STACK_SIZE) as SerialReceiveThread,
              new ThreadC(RADIO_SEND_THREAD_STACK_SIZE) as RadioSendThread,
@@ -89,6 +68,7 @@ implementation
 
   BaseStationC.BootThread -> BootThread;
   RadioReceiveSerialSendP.ReceiveThread -> RadioReceiveThread;
+  RadioReceiveSerialSendP.SnoopThread -> RadioSnoopThread;
   RadioReceiveSerialSendP.SendThread -> SerialSendThread;
   SerialReceiveRadioSendP.ReceiveThread -> SerialReceiveThread;
   SerialReceiveRadioSendP.SendThread -> RadioSendThread;  
@@ -116,6 +96,7 @@ implementation
   RadioReceiveSerialSendP.ReceiveAMPacket -> BlockingRadioActiveMessageC;
   RadioReceiveSerialSendP.SendAMPacket -> BlockingSerialActiveMessageC;             
   RadioReceiveSerialSendP.BlockingReceiveAny -> BlockingRadioActiveMessageC.BlockingReceiveAny;
+  RadioReceiveSerialSendP.BlockingSnoopAny -> BlockingRadioActiveMessageC.BlockingSnoopAny;
   RadioReceiveSerialSendP.BlockingAMSend -> BlockingSerialActiveMessageC;
   
   SerialReceiveRadioSendP.ReceivePacket -> BlockingSerialActiveMessageC;
index db79050712518711f3241fb2c4fab0a9aa6f8bf2..268978d6ea90fcacc2db81419b41186bfbddec38 100644 (file)
@@ -55,5 +55,5 @@ implementation {
     call BlockingRadioAMControl.start();
     call BlockingSerialAMControl.start();
     signal BaseStationBoot.booted();
-  }
+  }  
 }
index ad68cf4cc551ba86fe13a662f3c9686b84f61856..0fdaa44c6166d81c3aade34ca5003af3838f89c2 100644 (file)
@@ -39,6 +39,7 @@
 enum {
   BOOT_THREAD_STACK_SIZE                   = 200,
   RADIO_RECEIVE_THREAD_STACK_SIZE   = 600,
+  RADIO_SNOOP_THREAD_STACK_SIZE     = 600,
   SERIAL_SEND_THREAD_STACK_SIZE     = 600,
   SERIAL_RECEIVE_THREAD_STACK_SIZE  = 600,
   RADIO_SEND_THREAD_STACK_SIZE      = 600,
index dac5ad39f7adf5d6fb0c5d4f5220409ecd602892..38455e304aecbee136436fe8396b3164e38380dc 100644 (file)
@@ -1,2 +1,27 @@
-This program erases volume, then randomly write (then verified by read).
-Led0 is ON during the test, and Led1 is ON if all tests pass. If there is a problem, all three LEDs will be ON.
+README for TOSThreads TestBlockStorage 
+Author/Contact: tinyos-help@millennium.berkeley.edu
+
+Description:
+
+This application is used to test the threaded version of the API for performing
+block storage.
+
+You can install TestBlockStorage on a mote via the following comand:
+  make <platform> threads install
+  
+Valid platforms are currently: tmote, telosb, mica2, and micaz 
+
+This application first erases a block storage volume, then randomly writes records to it,
+followed by a verification with read.
+
+Successful running of this application results in LED0 being ON throughout the duration
+of the erase, write, and read sequence, followed by LED1 turning ON if all tests pass, and
+all three LEDs turning on if there is a problem.
+
+Tools:
+  None.
+
+Known bugs/limitations:
+  None.
+
+
diff --git a/apps/tosthreads/apps/TestLogStorage/Makefile b/apps/tosthreads/apps/TestLogStorage/Makefile
deleted file mode 100644 (file)
index 8d40569..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-COMPONENT=TestLogStorageAppC
-
-include $(MAKERULES)
diff --git a/apps/tosthreads/apps/TestLogStorage/TestLogStorageAppC.nc b/apps/tosthreads/apps/TestLogStorage/TestLogStorageAppC.nc
deleted file mode 100644 (file)
index 76def4b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2008 Johns Hopkins University.
- * 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 (updated) modification history and the author appear in
- * all copies of this source code.
- *
- * 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 THE COPYRIGHT HOLDERS OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA,
- * OR PROFITS) 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 Chieh-Jan Mike Liang <cliang4@cs.jhu.edu>
- */
-
-#include "StorageVolumes.h"
-
-configuration TestLogStorageAppC {}
-
-implementation
-{
-  components new BlockingLogStorageC(VOLUME_TESTLOGSTORAGE, TRUE);
-}
diff --git a/apps/tosthreads/apps/TestLogStorage/TestLogStorageP.nc b/apps/tosthreads/apps/TestLogStorage/TestLogStorageP.nc
deleted file mode 100644 (file)
index cd9d258..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2008 Johns Hopkins University.
- * 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 (updated) modification history and the author appear in
- * all copies of this source code.
- *
- * 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 THE COPYRIGHT HOLDERS OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA,
- * OR PROFITS) 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 Chieh-Jan Mike Liang <cliang4@cs.jhu.edu>
- */
-
-#include "Storage.h"
-
-module TestLogStorageP
-{
-  uses {
-    interface Boot;
-  }
-}
-
-implementation
-{
-  event void Boot.booted() {
-  }
-}
diff --git a/apps/tosthreads/apps/TestLogStorage/volumes-at45db.xml b/apps/tosthreads/apps/TestLogStorage/volumes-at45db.xml
deleted file mode 100644 (file)
index 4987899..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<volume_table>
-  <volume name="TESTLOGSTORAGE" size="262144" type="log" />
-</volume_table>
diff --git a/apps/tosthreads/apps/TestLogStorage/volumes-stm25p.xml b/apps/tosthreads/apps/TestLogStorage/volumes-stm25p.xml
deleted file mode 100644 (file)
index 4e0bdee..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<volume_table>
-  <volume name="TESTLOGSTORAGE" size="1048576" type="log"/>
-</volume_table>