+++ /dev/null
-configuration AccelReadP
-{
- provides {
- interface Read<uint16_t> as ReadX[uint8_t client];
- interface Read<uint16_t> as ReadY[uint8_t client];
- }
-}
-implementation
-{
- components AccelConfigP,
- new MultiplexedReadC(uint16_t) as MultiplexX,
- new MultiplexedReadC(uint16_t) as MultiplexY,
- new AdcReadClientC() as AdcX,
- new AdcReadClientC() as AdcY;
-
- ReadX = MultiplexX;
- MultiplexX.Resource -> AccelConfigP;
- MultiplexX.Service -> AdcX;
- AdcX.Atm128AdcConfig -> AccelConfigP.ConfigX;
-
- ReadY = MultiplexY;
- MultiplexY.Resource -> AccelConfigP;
- MultiplexY.Service -> AdcY;
- AdcY.Atm128AdcConfig -> AccelConfigP.ConfigY;
-}
-
+++ /dev/null
-configuration AccelReadStreamP
-{
- provides {
- interface ReadStream<uint16_t> as ReadStreamX[uint8_t client];
- interface ReadStream<uint16_t> as ReadStreamY[uint8_t client];
- }
- uses {
- interface ReadStream<uint16_t> as ActualX[uint8_t client];
- interface ReadStream<uint16_t> as ActualY[uint8_t client];
- }
-}
-implementation
-{
- enum {
- NACCEL_CLIENTS = uniqueCount(UQ_ACCEL_RESOURCE)
- };
- components AccelConfigP,
- new ArbitratedReadStreamC(NACCEL_CLIENTS, uint16_t) as MultiplexX,
- new ArbitratedReadStreamC(NACCEL_CLIENTS, uint16_t) as MultiplexY;
-
- ReadStreamX = MultiplexX;
- MultiplexX.Resource -> AccelConfigP;
- MultiplexX.Service = ActualX;
-
- ReadStreamY = MultiplexY;
- MultiplexY.Resource -> AccelConfigP;
- MultiplexY.Service = ActualY;
-}
-
+++ /dev/null
-/* $Id$
- * Copyright (c) 2006 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.
- */
-/**
- * Acceldiode of the basicsb sensor board.
- *
- * @author David Gay
- */
-
-#include "mts300.h"
-
-generic configuration AccelXC() {
- provides interface Read<uint16_t>;
-}
-implementation {
- components AccelReadP;
-
- Read = AccelReadP.ReadX[unique(UQ_ACCEL_RESOURCE)];
-}
+++ /dev/null
-/* $Id$
- * Copyright (c) 2006 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.
- */
-/**
- * AccelXdiode of the basicsb sensor board.
- *
- * @author David Gay
- */
-
-#include "mts300.h"
-
-generic configuration AccelXStreamC() {
- provides interface ReadStream<uint16_t>;
-}
-implementation {
- enum {
- ID = unique(UQ_ACCEL_RESOURCE)
- };
- components AccelReadStreamP, AccelConfigP, new AdcReadStreamClientC();
-
- ReadStream = AccelReadStreamP.ReadStreamX[ID];
- AccelReadStreamP.ActualX[ID] -> AdcReadStreamClientC;
- AdcReadStreamClientC.Atm128AdcConfig -> AccelConfigP.ConfigX;
-}
+++ /dev/null
-/* $Id$
- * Copyright (c) 2006 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.
- */
-/**
- * Acceldiode of the basicsb sensor board.
- *
- * @author David Gay
- */
-
-#include "mts300.h"
-
-generic configuration AccelXC() {
- provides interface Read<uint16_t>;
-}
-implementation {
- components AccelReadP;
-
- Read = AccelReadP.ReadY[unique(UQ_ACCEL_RESOURCE)];
-}
+++ /dev/null
-/* $Id$
- * Copyright (c) 2006 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.
- */
-/**
- * AccelXdiode of the basicsb sensor board.
- *
- * @author David Gay
- */
-
-#include "mts300.h"
-
-generic configuration AccelYStreamC() {
- provides interface ReadStream<uint16_t>;
-}
-implementation {
- enum {
- ID = unique(UQ_ACCEL_RESOURCE)
- };
- components AccelReadStreamP, AccelConfigP, new AdcReadStreamClientC();
-
- ReadStream = AccelReadStreamP.ReadStreamY[ID];
- AccelReadStreamP.ActualY[ID] -> AdcReadStreamClientC;
- AdcReadStreamClientC.Atm128AdcConfig -> AccelConfigP.ConfigY;
-}
+++ /dev/null
-configuration ArbitratedPhotoDeviceP
-{
- provides interface Read<uint16_t>[uint8_t client];
-}
-implementation
-{
- components PhotoTempDeviceC,
- new ArbitratedReadC(uint16_t) as ArbitrateRead;
-
- Read = ArbitrateRead;
- ArbitrateRead.Service -> PhotoTempDeviceC.ReadPhoto;
- ArbitrateRead.Resource -> PhotoTempDeviceC.PhotoResource;
-}
+++ /dev/null
-/* $Id$
- * Copyright (c) 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.
- */
-/**
- * Demo sensor for basicsb sensorboard.
- *
- * @author David Gay
- */
-
-generic configuration DemoSensorC() {
- provides interface Read<uint16_t>;
-}
-implementation {
- components new PhotoC() as Sensor;
-
- Read = Sensor;
-}
+++ /dev/null
-/* $Id$
- * Copyright (c) 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.
- */
-/**
- * Demo sensor for basicsb sensorboard.
- *
- * @author David Gay
- */
-
-generic configuration DemoSensorStreamC() {
- provides interface ReadStream<uint16_t>;
-}
-implementation {
- components new PhotoStreamC() as SensorStream;
-
- ReadStream = SensorStream;
-}
+++ /dev/null
-interface Mts300Sounder
-{
- command void beep(uint16_t length);
-}
+++ /dev/null
-configuration PhotoConfigP
-{
-}
-implementation
-{
-}
+++ /dev/null
-generic module PhotoTempControlP()
-{
- provides {
- interface SplitControl;
- interface Read<uint16_t>[uint8_t client];
- }
- uses {
- interface Resource as PhotoTempResource;
- interface Timer<TMilli>;
- interface GeneralIO as Power;
- interface Read<uint16_t> as ActualRead;
- }
-}
-implementation
-{
- command error_t SplitControl.start() {
- call PhotoTempResource.request();
- return SUCCESS;
- }
-
- event void PhotoTempResource.granted() {
- call Power.makeOutput();
- call Power.set();
- call Timer.startOneShot(10);
- }
-
- event void Timer.fired() {
- signal SplitControl.startDone(SUCCESS);
- }
-
- task void stopDone() {
- call PhotoTempResource.release();
- signal SplitControl.stopDone(SUCCESS);
- }
-
- command error_t SplitControl.stop() {
- call Power.clr();
- call Power.makeInput();
- post stopDone();
- return SUCCESS;
- }
-
- uint8_t id;
-
- command error_t Read.read[uint8_t client]() {
- id = client;
- return call ActualRead.read();
- }
-
- event void ActualRead.readDone(error_t result, uint16_t val) {
- signal Read.readDone[id](result, val);
- }
-
- default event void Read.readDone[uint8_t x](error_t result, uint16_t val) { }
-}
+++ /dev/null
-#include "mts300.h"
-
-configuration PhotoTempDeviceC
-{
- provides interface Resource as PhotoResource[uint8_t client];
- provides interface Resource as TempResource[uint8_t client];
- provides interface Read<uint16_t> as ReadPhoto[uint8_t client];
- provides interface Read<uint16_t> as ReadTemp[uint8_t client];
-}
-implementation
-{
- components MicaBusC, PhotoTempP,
- new RoundRobinArbiterC(UQ_PHOTOTEMP_RESOURCE) as SharingArbiter,
- new RoundRobinArbiterC(UQ_PHOTO_RESOURCE) as PhotoArbiter,
- new RoundRobinArbiterC(UQ_TEMP_RESOURCE) as TempArbiter,
- new SplitControlPowerManagerC() as PhotoPower,
- new SplitControlPowerManagerC() as TempPower,
- new PhotoTempControlP() as PhotoControl,
- new PhotoTempControlP() as TempControl,
- new TimerMilliC() as WarmupTimer,
- new AdcReadClientC() as Adc;
-
- PhotoResource = PhotoArbiter;
- PhotoPower.ResourceDefaultOwner -> PhotoArbiter;
- PhotoPower.ArbiterInfo -> PhotoArbiter;
- PhotoPower.SplitControl -> PhotoControl;
- PhotoControl.PhotoTempResource -> SharingArbiter.Resource[unique(UQ_PHOTOTEMP_RESOURCE)];
- PhotoControl.Timer -> WarmupTimer;
- PhotoControl.Power -> MicaBusC.Int1;
- ReadPhoto = PhotoControl;
- PhotoControl.ActualRead -> Adc;
-
- TempResource = TempArbiter;
- TempPower.ResourceDefaultOwner -> TempArbiter;
- TempPower.ArbiterInfo -> TempArbiter;
- TempPower.SplitControl -> TempControl;
- TempControl.PhotoTempResource -> SharingArbiter.Resource[unique(UQ_PHOTOTEMP_RESOURCE)];
- TempControl.Timer -> WarmupTimer;
- TempControl.Power -> MicaBusC.Int2;
- ReadTemp = TempControl;
- TempControl.ActualRead -> Adc;
-
- Adc.Atm128AdcConfig -> PhotoTempP;
- PhotoTempP.PhotoTempAdc -> MicaBusC.Adc1;
-}
+++ /dev/null
-generic configuration PhotoTempSetupP(const char *resname)
-{
- provides interface Resource[uint8_t client];
- uses {
- interface Timer;
- interface Resource as SharingResource;
- interface GeneralIO as Power;
- }
-}
-implementation
-{
- components
- new RoundRobinArbiterC(resname) as Arbiter,
- new SplitControlPowerManager() as Power,
- new PhotoTempControlP() as Control;
-
- Resource = Arbiter;
- Power.ResourceDefaultOwner -> Arbiter;
- Power.ArbiterInfo -> Arbiter;
- Power.SplitControl -> Control;
-
- Control.Resource = SharingResource;
- Control.Power = Power;
- Control.Timer = Timer;
-}
+++ /dev/null
-/* $Id$
- * Copyright (c) 2006 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.
- */
-/**
- * Internal component for basicsb photodiode. Arbitrates access to the photo
- * diode and automatically turns it on or off based on user requests.
- *
- * @author David Gay
- */
-
-configuration WireAccelP {
- provides interface Resource[uint8_t client];
-}
-implementation {
- components AccelP, MicaBusC, new TimerMilliC() as WarmupTimer,
- new RounRobinArbiterC(UQ_ACCEL_RESOURCE) as Arbiter,
- new SplitControlPowerManagerC() as PowerManager;
-
- Resource = Arbiter;
-
- PowerManager.ResourceDefaultOwner -> Arbiter;
- PowerManager.ArbiterInfo -> Arbiter;
- PowerManager.SplitControl -> AccelP;
-
- AccelP.Timer -> WarmupTimer;
- AccelP.AccelPin -> MicaBusC.PW4;
- AccelP.AccelAdcX -> MicaBusC.Adc3;
- AccelP.AccelAdcY -> MicaBusC.Adc4;
-}