/**\r
- * Copyright (c) 2004-2005 Crossbow Technology, Inc.\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
* 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
+ * 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
+ * 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
* @author Martin Turon <mturon@xbow.com>\r
- * @author Miguel Freitas\r
+ * @author Hu Siquan <husq@xbow.com>\r
*\r
* $Id$\r
*/\r
\r
-configuration SensorMts300C\r
+//configuration SensorMts300C\r
+generic configuration SensorMts300C()\r
{\r
- provides {\r
- interface Init; //!< Standard Initialization\r
- interface StdControl; //!< Start/Stop for Power Management\r
- interface Read<uint16_t> as Temp; //!< Thermister\r
- interface Read<uint16_t> as Light; //!< Photo sensor\r
- }\r
+ provides\r
+ {\r
+ interface Init; //!< Standard Initialization\r
+ interface StdControl; //!< Start/Stop for Power Management\r
+ interface Read<uint16_t> as Vref; //!< voltage\r
+ interface Read<uint16_t> as Temp; //!< Thermister\r
+ interface Read<uint16_t> as Light; //!< Photo sensor\r
+ interface Read<uint16_t> as Microphone; //!< Mic sensor\r
+ interface Read<uint16_t> as AccelX; //!< Accelerometer sensor\r
+ interface Read<uint16_t> as AccelY; //!< Accelerometer sensor\r
+ interface Read<uint16_t> as MagX; //!< magnetometer sensor\r
+ interface Read<uint16_t> as MagY; //!< magnetometer sensor\r
+ }\r
}\r
-implementation \r
+implementation\r
{\r
- components \r
- SensorMts300P,\r
- SensorMts300DeviceP,\r
- HplAtm128GeneralIOC as IO,\r
- new AdcReadClientC() as SensorADC,\r
- new TimerMilliC() as WarmUpTimer\r
- ;\r
+ components SensorMts300P, HplAtm128GeneralIOC as IO,\r
+ new VoltageC(),\r
+ new PhotoC(),\r
+ new TempC(),\r
+ new MicC(),\r
+ new MagC(),\r
+ new AccelC(),\r
+ new TimerMilliC() as WarmUpTimer;\r
\r
Init = SensorMts300P.Init;\r
+ Init = PhotoC.Init;\r
+ Init = MicC.Init;\r
StdControl = SensorMts300P.StdControl;\r
+ Vref = SensorMts300P.Vref;\r
Temp = SensorMts300P.Temp;\r
Light = SensorMts300P.Light;\r
+ Microphone = SensorMts300P.Microphone;\r
+ AccelX = SensorMts300P.AccelX;\r
+ AccelY = SensorMts300P.AccelY;\r
+ MagX = SensorMts300P.MagX;\r
+ MagY = SensorMts300P.MagY;\r
\r
- SensorADC.Atm128AdcConfig -> SensorMts300DeviceP;\r
- SensorADC.ResourceConfigure -> SensorMts300DeviceP;\r
+ SensorMts300P.WarmUpTimer -> WarmUpTimer;\r
\r
- SensorMts300P.SensorADC -> SensorADC;\r
- SensorMts300P.TempPower -> IO.PortE6;\r
+ SensorMts300P.VrefRead -> VoltageC.Read;\r
+ SensorMts300P.PhotoControl -> PhotoC.StdControl;\r
+ SensorMts300P.TempRead -> TempC.Read;\r
+ SensorMts300P.LightRead -> PhotoC.Read;\r
SensorMts300P.LightPower -> IO.PortE5;\r
- SensorMts300P.WarmUpTimer -> WarmUpTimer;\r
+ SensorMts300P.TempPower -> IO.PortE6;\r
+\r
+ SensorMts300P.MicControl -> MicC.StdControl;\r
+ SensorMts300P.Mic -> MicC.Mic;\r
+ SensorMts300P.MicRead -> MicC.Read;\r
+\r
+ SensorMts300P.MagControl -> MagC.StdControl;\r
+ SensorMts300P.Mag -> MagC.Mag;\r
+ SensorMts300P.MagXRead -> MagC.MagX;\r
+ SensorMts300P.MagYRead -> MagC.MagY;\r
+\r
+ SensorMts300P.AccelControl -> AccelC.StdControl;\r
+ SensorMts300P.AccelXRead -> AccelC.AccelX;\r
+ SensorMts300P.AccelYRead -> AccelC.AccelY;\r
+ \r
}\r