]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Change to follow TEP 109.
authorpipeng <pipeng>
Wed, 14 Mar 2007 05:41:52 +0000 (05:41 +0000)
committerpipeng <pipeng>
Wed, 14 Mar 2007 05:41:52 +0000 (05:41 +0000)
tos/sensorboards/mts300/MicReadP.nc [new file with mode: 0644]
tos/sensorboards/mts300/MicReadStreamP.nc [new file with mode: 0644]
tos/sensorboards/mts300/MicSetting.nc [new file with mode: 0644]
tos/sensorboards/mts300/MicStreamC.nc [new file with mode: 0644]

diff --git a/tos/sensorboards/mts300/MicReadP.nc b/tos/sensorboards/mts300/MicReadP.nc
new file mode 100644 (file)
index 0000000..491a3e6
--- /dev/null
@@ -0,0 +1,21 @@
+configuration MicReadP\r
+{\r
+  provides \r
+  {\r
+    interface Read<uint16_t>[uint8_t client];\r
+  }\r
+  uses\r
+  {\r
+    interface Read<uint16_t> as ActualRead[uint8_t client];\r
+  }\r
+}\r
+implementation\r
+{\r
+  components MicDeviceP,\r
+  new ArbitratedReadC(uint16_t);\r
+\r
+  Read = ArbitratedReadC;\r
+  ArbitratedReadC.Resource -> MicDeviceP;\r
+  ArbitratedReadC.Service = ActualRead;\r
+}\r
+\r
diff --git a/tos/sensorboards/mts300/MicReadStreamP.nc b/tos/sensorboards/mts300/MicReadStreamP.nc
new file mode 100644 (file)
index 0000000..b2c61a3
--- /dev/null
@@ -0,0 +1,27 @@
+configuration MicReadStreamP\r
+{\r
+  provides \r
+  {\r
+    interface MicSetting;\r
+    interface ReadStream<uint16_t>[uint8_t client];\r
+  }\r
+  uses\r
+  {\r
+    interface ReadStream<uint16_t> as ActualRead[uint8_t client];\r
+  }\r
+}\r
+implementation\r
+{\r
+  enum {\r
+    NMIC_CLIENTS = uniqueCount(UQ_MIC_RESOURCE)\r
+  };\r
+  components MicDeviceP,\r
+  new ArbitratedReadStreamC(NMIC_CLIENTS, uint16_t);\r
+\r
+  MicSetting = MicDeviceP;\r
+\r
+  ReadStream = ArbitratedReadStreamC;\r
+  ArbitratedReadStreamC.Resource -> MicDeviceP;\r
+  ArbitratedReadStreamC.Service = ActualRead;\r
+}\r
+\r
diff --git a/tos/sensorboards/mts300/MicSetting.nc b/tos/sensorboards/mts300/MicSetting.nc
new file mode 100644 (file)
index 0000000..6f86dbf
--- /dev/null
@@ -0,0 +1,89 @@
+// $Id$
+
+/*                                                                     tab:4
+ * "Copyright (c) 2000-2003 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.
+ */
+
+/*
+ * Authors:            Alec Woo
+ * Date last modified:  8/20/02
+ * 
+ * The microphone on the mica sensor board has two methods for control and
+ * one method to read the binary output of the tone detector.  (Note:  The tone
+ * detector's binary output can be configured as an interrupt.  Please see MicInterrupt.ti)
+ *
+ * muxSel allows users to switch the ADC to sample from phase lock loop output of
+ * the tone detector (by setting the value to 0 (default))  or the raw voice-band output 
+ * of the micrphone (by setting the value to 1).
+ *
+ * gainAdjust allows users to adjust the amplification gain on the microphone. The range
+ * is 0 to 255 with 0 being the minmum and 255 being the maximum amplification.  Note that
+ * setting amplification too high can result in clipping (signal distortion).
+ *
+ * If an audio signal at 4.3kHz is picked up by the microphone, the tone
+ * detect will decode it and generate a binary ouput (0 meaning tone is detected, 1 meaning
+ * tone is not detected).  Users can read this output simply by calling readToneDetector().
+ *
+ */
+
+/**
+ * @author Alec Woo
+ */
+
+interface MicSetting {
+  /* Effect:  Set the multiplexer's setting on the microphone
+   * Return:  returns SUCCESS or FAIL
+   */
+  command error_t muxSel(uint8_t sel);
+  /* Effect:  Set the amplificatoin gain  on the microphone
+   * Return:  returns SUCCESS or FAIL
+   */
+  command error_t gainAdjust(uint8_t val);
+
+  /* Effect:  returns the binary tone detector's output
+   * Return:  0 meaning tone is detected, 1 meanning tone is not detected
+   */
+  command uint8_t readToneDetector();
+  /* Effects: disable interrupts
+     Returns: SUCCESS
+  */
+  async command error_t disable();
+
+  /* Effects: enable interrupts
+     Returns: SUCCESS
+  */
+  async command error_t enable();
+
+  /* Interrupt signal for tone detected.  Note that MicInterrupt is automatically disabled
+   * before this event is signaled.  (Upper layer needs to reenable this interrupt for future
+   * tone detect.
+   *
+   *  Returns: SUCCESS
+   */
+  async event error_t toneDetected();
+}
diff --git a/tos/sensorboards/mts300/MicStreamC.nc b/tos/sensorboards/mts300/MicStreamC.nc
new file mode 100644 (file)
index 0000000..1f440c6
--- /dev/null
@@ -0,0 +1,47 @@
+/**\r
+ *  Copyright (c) 2005-2006 Crossbow Technology, Inc.\r
+ *  All rights reserved.\r
+ *\r
+ *  Permission to use, copy, modify, and distribute this software and its\r
+ *  documentation for any purpose, without fee, and without written\r
+ *  agreement is hereby granted, provided that the above copyright\r
+ *  notice, the (updated) modification history and the author appear in\r
+ *  all copies of this source code.\r
+ *\r
+ *  Permission is also granted to distribute this software under the\r
+ *  standard BSD license as contained in the TinyOS distribution.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'\r
+ *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ *  ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS\r
+ *  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
+ *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA,\r
+ *  OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r
+ *  THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+ /*\r
+ *  @author Hu Siquan <husq@xbow.com>\r
+ *\r
+ *  $Id$\r
+ */\r
+\r
+#include "mts300.h"\r
+\r
+generic configuration MicStreamC() {\r
+  provides interface ReadStream<uint16_t>;\r
+  provides interface MicSetting;\r
+}\r
+implementation {\r
+  enum {\r
+    ID = unique(UQ_MIC_RESOURCE)\r
+  };\r
+  components MicReadStreamP, MicDeviceP, new AdcReadStreamClientC();\r
+\r
+  ReadStream = MicReadStreamP.ReadStream[ID];\r
+  MicReadStreamP.ActualRead[ID] -> AdcReadStreamClientC;\r
+  AdcReadStreamClientC.Atm128AdcConfig -> MicDeviceP.Atm128AdcConfig;\r
+  MicSetting = MicReadStreamP;\r
+}\r