+++ /dev/null
-COMPONENT=TestSleepC
-include $(MAKERULES)
-
+++ /dev/null
-/// $Id$
-
-/**
- * "Copyright (c) 2005 Crossbow Technology, Inc.
- * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS 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 COPYRIGHT HOLDERS AND CONTRIBUTORS HAVE BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * THE COPYRIGHT HOLDERS AND CONTRIBUTORS SPECIFICALLY DISCLAIM 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 COPYRIGHT HOLDERS AND CONTRIBUTORS HAVE NO OBLIGATION
- * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
- */
-
-/// @author Martin Turon <mturon@xbow.com>
-
-/**
- * TestSleep simple puts the processor into sleep mode and stays there.
- * The instananeous and average current should be ~20 uA on the ATmega128.
- */
-configuration TestSleepC
-{
-}
-implementation
-{
- components MainC, TestSleepM,
- HplSleepC; // Low-level control just for test purposes
-
- TestSleepM -> MainC.Boot;
-
- TestSleepM.PowerManager -> HplSleepC;
-}
-
+++ /dev/null
-/// $Id$
-
-/**
- * "Copyright (c) 2005 Crossbow Technology, Inc.
- * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS 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 COPYRIGHT HOLDERS AND CONTRIBUTORS HAVE BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * THE COPYRIGHT HOLDERS AND CONTRIBUTORS SPECIFICALLY DISCLAIM 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 COPYRIGHT HOLDERS AND CONTRIBUTORS HAVE NO OBLIGATION
- * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
- */
-
-/// @author Martin Turon <mturon@xbow.com>
-
-module TestSleepM
-{
- uses interface Boot;
-
- uses interface McuSleep as PowerManager;
-}
-implementation
-{
- event void Boot.booted()
- {
- call PowerManager.enable();
- }
-}
-
+++ /dev/null
-COMPONENT=TestTDA5250ControlC
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-/* 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.
- */
-/**
- *
- **/
-
-includes Timer;
-configuration TestTDA5250ControlC {
-}
-implementation {
- components Main, TestTDA5250ControlM
- , new AlarmMilliC() as ModeTimer
- , LedsC
- , TDA5250RadioC
- , RandomLfsrC
- ;
-
- Main.SoftwareInit -> TDA5250RadioC.Init;
- Main.SoftwareInit -> RandomLfsrC.Init;
- Main.SoftwareInit -> LedsC.Init;
- TestTDA5250ControlM -> Main.Boot;
-
- TestTDA5250ControlM.Random -> RandomLfsrC.Random;
- TestTDA5250ControlM.ModeTimer -> ModeTimer;
- TestTDA5250ControlM.Leds -> LedsC;
- TestTDA5250ControlM.TDA5250Control -> TDA5250RadioC.TDA5250Control;
- TestTDA5250ControlM.RadioSplitControl -> TDA5250RadioC.SplitControl;
-}
-
-
-
+++ /dev/null
-// $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.
- */
-
-module TestTDA5250ControlM {
- uses {
- interface Boot;
- interface Alarm<TMilli, uint32_t> as ModeTimer;
- interface Leds;
- interface TDA5250Control;
- interface Random;
- interface SplitControl as RadioSplitControl;
- }
-}
-
-implementation {
-
- #define MODE_TIMER_RATE 500
-
- uint8_t mode;
-
- event void Boot.booted() {
- atomic mode = 0;
- call RadioSplitControl.start();
- }
-
- event void RadioSplitControl.startDone(error_t error) {
- call ModeTimer.start(MODE_TIMER_RATE);
- }
-
- event void RadioSplitControl.stopDone(error_t error) {
- call ModeTimer.stop();
- }
-
- /***********************************************************************
- * Commands and events
- ***********************************************************************/
-
- async event void ModeTimer.fired() {
- switch(mode) {
- case 0:
- call TDA5250Control.TimerMode(call Random.rand16() % MODE_TIMER_RATE/20,
- call Random.rand16() % MODE_TIMER_RATE/20);
- break;
- case 1:
- call TDA5250Control.SelfPollingMode(call Random.rand16() % MODE_TIMER_RATE/20,
- call Random.rand16() % MODE_TIMER_RATE/20);
- break;
- case 2:
- call TDA5250Control.RxMode();
- break;
- case 3:
- call TDA5250Control.TxMode();
- break;
- case 4:
- call TDA5250Control.SleepMode();
- break;
- case 5:
- call TDA5250Control.CCAMode();
- break;
- }
- }
-
- async event void TDA5250Control.PWDDDInterrupt() {
- //call TDA5250Control.RxMode();
- }
-
- async event void TDA5250Control.TimerModeDone(){
- atomic mode = call Random.rand16() % 6;
- call Leds.led0On();
- call Leds.led1On();
- call Leds.led2On();
- call ModeTimer.start(call Random.rand16() % MODE_TIMER_RATE);
- }
- async event void TDA5250Control.SelfPollingModeDone(){
- atomic mode = call Random.rand16() % 6;
- call Leds.led0On();
- call Leds.led1On();
- call Leds.led2Off();
- call ModeTimer.start(call Random.rand16() % MODE_TIMER_RATE);
- }
- async event void TDA5250Control.RxModeDone(){
- atomic mode = call Random.rand16() % 6;
- call Leds.led0On();
- call Leds.led1Off();
- call Leds.led2On();
- call ModeTimer.start(call Random.rand16() % MODE_TIMER_RATE);
- }
- async event void TDA5250Control.TxModeDone(){
- atomic mode = call Random.rand16() % 6;
- call Leds.led0Off();
- call Leds.led1On();
- call Leds.led2On();
- call ModeTimer.start(call Random.rand16() % MODE_TIMER_RATE);
- }
- async event void TDA5250Control.SleepModeDone(){
- atomic mode = call Random.rand16() % 6;
- call Leds.led0Off();
- call Leds.led1Off();
- call Leds.led2On();
- call ModeTimer.start(call Random.rand16() % MODE_TIMER_RATE);
- }
- async event void TDA5250Control.CCAModeDone(){
- atomic mode = call Random.rand16() % 6;
- call Leds.led0On();
- call Leds.led1Off();
- call Leds.led2Off();
- call ModeTimer.start(call Random.rand16() % MODE_TIMER_RATE);
- }
-
-}
-
-
+++ /dev/null
-COMPONENT=TestHPLTDA5250C
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-// $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.
- */
-/**
- *
- **/
-
-includes Timer;
-configuration TestHPLTDA5250C {
-}
-implementation {
- components Main
- , TestHPLTDA5250M
- , new AlarmMilliC() as ModeTimer
- , LedsC
- , TDA5250ConfigC
- ;
-
- TestHPLTDA5250M -> Main.Boot;
-
- Main.SoftwareInit -> LedsC;
- Main.SoftwareInit -> TDA5250ConfigC;
-
- TestHPLTDA5250M.Resource -> TDA5250ConfigC.Resource;
- TestHPLTDA5250M.ModeTimer -> ModeTimer;
- TestHPLTDA5250M.Leds -> LedsC;
- TestHPLTDA5250M.TDA5250Config -> TDA5250ConfigC;
-}
-
-
-
+++ /dev/null
-/*
- * Copyright (c) 2004, Technische Universitat Berlin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universitat Berlin nor the names
- * of its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 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
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) 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.
- * - Revision -------------------------------------------------------------
- * $Revision$
- * $Date$
- * ========================================================================
- */
-
- /**
- * TestTDA5250M Application
- * Test Application for the HPL layer of the TDA5250 radio
- *
- * @author Kevin Klues (klues@tkn.tu-berlin.de)
- */
-
-module TestHPLTDA5250M {
- uses {
- interface Boot;
- interface Leds;
- interface Alarm<TMilli, uint32_t> as ModeTimer;
- interface TDA5250Config;
- interface Resource;
- }
-}
-
-implementation {
-
- uint8_t mode;
-
- event void Boot.booted() {
- mode = 0;
- call Resource.request();
- }
-
- event void Resource.granted() {
- call TDA5250Config.reset();
- call ModeTimer.start(50);
- }
-
- event void Resource.requested() {
- call ModeTimer.stop();
- call Resource.release();
- call Resource.request();
- }
-
- /***********************************************************************
- * Commands and events
- ***********************************************************************/
- async event void ModeTimer.fired() {
- if(mode == 0) {
- call TDA5250Config.SetRxMode();
- mode = 1;
- call Leds.led0Off();
- call Leds.led1Off();
- call Leds.led2Off();
- }
- else if(mode == 1) {
- call TDA5250Config.SetTxMode();
- mode = 2;
- call Leds.led0Off();
- call Leds.led1Off();
- call Leds.led2On();
- }
- else if(mode == 2) {
- call TDA5250Config.SetTimerMode(5, 5);
- mode = 3;
- call Leds.led0Off();
- call Leds.led1On();
- call Leds.led2Off();
- }
- else if(mode == 3) {
- call TDA5250Config.SetSelfPollingMode(5, 5);
- mode = 4;
- call Leds.led0Off();
- call Leds.led1On();
- call Leds.led2On();
- }
- else {
- call TDA5250Config.SetSlaveMode();
- call TDA5250Config.SetSleepMode();
- mode = 0;
- call Leds.led0On();
- call Leds.led1Off();
- call Leds.led2Off();
- }
- call ModeTimer.start(50);
- }
-
- async event void TDA5250Config.PWDDDInterrupt() {
- TOSH_TOGGLE_LED3_PIN();
- }
-}
-
-
+++ /dev/null
-COMPONENT=TestPacketSerializerC
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-/* 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.
- */
-/**
- *
- **/
-
-includes Timer;
-includes TOSMsg;
-configuration TestPacketSerializerC {
-}
-implementation {
- components Main, TestPacketSerializerM
- , new AlarmMilliC() as TxTimer
- , new AlarmMilliC() as RxTimer
- , new AlarmMilliC() as CCATimer
-// , new AlarmMilliC() as TimerTimer
- , new AlarmMilliC() as SelfPollingTimer
-// , new AlarmMilliC() as SleepTimer
- , LedsC
- , TDA5250RadioC
- , RandomLfsrC
- , UARTPhyM
- , PacketSerializerM
- ;
-
- Main.SoftwareInit -> TDA5250RadioC.Init;
- Main.SoftwareInit -> RandomLfsrC.Init;
- Main.SoftwareInit -> LedsC.Init;
- Main.SoftwareInit -> UARTPhyM.Init;
- Main.SoftwareInit -> PacketSerializerM.Init;
- TestPacketSerializerM -> Main.Boot;
-
- TestPacketSerializerM.Random -> RandomLfsrC.Random;
- TestPacketSerializerM.TxTimer -> TxTimer;
- TestPacketSerializerM.RxTimer -> RxTimer;
- TestPacketSerializerM.CCATimer -> CCATimer;
-// TestPacketSerializerM.TimerTimer -> TimerTimer;
- TestPacketSerializerM.SelfPollingTimer -> SelfPollingTimer;
-// TestPacketSerializerM.SleepTimer -> SleepTimer;
- TestPacketSerializerM.Leds -> LedsC;
- TestPacketSerializerM.TDA5250Control -> TDA5250RadioC.TDA5250Control;
- TestPacketSerializerM.RadioSplitControl -> TDA5250RadioC.SplitControl;
- TestPacketSerializerM.Send -> PacketSerializerM.Send;
- TestPacketSerializerM.Receive -> PacketSerializerM.Receive;
-
- UARTPhyM.RadioByteComm -> TDA5250RadioC.RadioByteComm;
-
- PacketSerializerM.RadioByteComm -> UARTPhyM.SerializerRadioByteComm;
- PacketSerializerM.PhyPacketTx -> UARTPhyM.PhyPacketTx;
- PacketSerializerM.PhyPacketRx -> UARTPhyM.PhyPacketRx;
-}
-
-
-
+++ /dev/null
-// $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.
- */
-
-module TestPacketSerializerM {
- uses {
- interface Boot;
- interface Alarm<TMilli, uint32_t> as TxTimer;
- interface Alarm<TMilli, uint32_t> as RxTimer;
-// interface Alarm<TMilli, uint32_t> as TimerTimer;
- interface Alarm<TMilli, uint32_t> as CCATimer;
- interface Alarm<TMilli, uint32_t> as SelfPollingTimer;
-// interface Alarm<TMilli, uint32_t> as SleepTimer;
- interface Leds;
- interface TDA5250Control;
- interface Random;
- interface SplitControl as RadioSplitControl;
- interface Send;
- interface Receive;
- }
-}
-
-implementation {
-
- #define TIMER_RATE 500
- #define NUM_BYTES TOSH_DATA_LENGTH
-
- uint8_t bytes_sent;
- bool sending;
- message_t sendMsg;
-
- event void Boot.booted() {
- uint8_t i;
- bytes_sent = 0;
- sending = FALSE;
- for(i=0; i<NUM_BYTES; i++)
- sendMsg.data[i] = 0x00;//call Random.rand16() / 2;
- call RadioSplitControl.start();
- }
-
- event void RadioSplitControl.startDone(error_t error) {
- call TxTimer.start(call Random.rand16() % TIMER_RATE);
-// call TimerTimer.start(call Random.rand16() % TIMER_RATE);
- call SelfPollingTimer.start(call Random.rand16() % TIMER_RATE);
- call RxTimer.start(call Random.rand16() % TIMER_RATE);
- call CCATimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- event void RadioSplitControl.stopDone(error_t error) {
- call TxTimer.stop();
- }
-
- /***********************************************************************
- * Commands and events
- ***********************************************************************/
-
- async event void TxTimer.fired() {
- atomic {
- if(call TDA5250Control.TxMode() != FAIL) {
- bytes_sent = 0;
- sending = TRUE;
- call Leds.led0On();
- call Leds.led1On();
- call Leds.led2On();
- return;
- }
- }
- call TxTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- async event void RxTimer.fired() {
- if(sending == FALSE)
- if(call TDA5250Control.RxMode() != FAIL)
- return;
- call RxTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- async event void CCATimer.fired() {
- if(sending == FALSE)
- if(call TDA5250Control.CCAMode() != FAIL)
- return;
- call CCATimer.start(call Random.rand16() % TIMER_RATE);
- }
-
-// async event void TimerTimer.fired() {
-// if(sending == FALSE)
-// if(call TDA5250Control.TimerMode(call Random.rand16() % TIMER_RATE/20,
-// call Random.rand16() % TIMER_RATE/20) != FAIL)
-// return;
-// call TimerTimer.start(call Random.rand16() % TIMER_RATE);
-// }
-
- async event void SelfPollingTimer.fired() {
- if(sending == FALSE)
- if(call TDA5250Control.SelfPollingMode(call Random.rand16() % TIMER_RATE/20,
- call Random.rand16() % TIMER_RATE/20) != FAIL)
- return;
- call SelfPollingTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
-// async event void SleepTimer.fired() {
-// if(sending == FALSE)
-// if(call TDA5250Control.SleepMode() != FAIL)
-// return;
-// call SleepTimer.start(call Random.rand16() % TIMER_RATE);
-// }
-
-
- async event void TDA5250Control.TxModeDone(){
- call Send.send(&sendMsg, NUM_BYTES);
- }
-
- event void Send.sendDone(message_t* msg, error_t error) {
- call TDA5250Control.SleepMode();
- sending = FALSE;
- call TxTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) {
- TOSH_TOGGLE_LED3_PIN();
- return msg;
- }
-
- async event void TDA5250Control.TimerModeDone(){
-// call TimerTimer.start(call Random.rand16() % TIMER_RATE);
-// call Leds.led0On();
-// call Leds.led1On();
-// call Leds.led2Off();
- }
- async event void TDA5250Control.SelfPollingModeDone(){
- call SelfPollingTimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0On();
- call Leds.led1Off();
- call Leds.led2On();
- }
- async event void TDA5250Control.RxModeDone(){
- call RxTimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0Off();
- call Leds.led1On();
- call Leds.led2On();
- }
- async event void TDA5250Control.SleepModeDone(){
-// call SleepTimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0Off();
- call Leds.led1Off();
- call Leds.led2On();
- }
- async event void TDA5250Control.CCAModeDone(){
- call CCATimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0On();
- call Leds.led1Off();
- call Leds.led2Off();
- }
-
- async event void TDA5250Control.PWDDDInterrupt() {
- }
-}
-
-
+++ /dev/null
-COMPONENT=TestUARTPhyC
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-/* 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.
- */
-/**
- *
- **/
-
-includes Timer;
-configuration TestUARTPhyC {
-}
-implementation {
- components Main, TestUARTPhyM
- , new AlarmMilliC() as TxTimer
- , LedsC
- , TDA5250RadioC
- , RandomLfsrC
- , UARTPhyM
- ;
-
- Main.SoftwareInit -> TDA5250RadioC.Init;
- Main.SoftwareInit -> RandomLfsrC.Init;
- Main.SoftwareInit -> LedsC.Init;
- Main.SoftwareInit -> UARTPhyM.Init;
- TestUARTPhyM -> Main.Boot;
-
- TestUARTPhyM.Random -> RandomLfsrC.Random;
- TestUARTPhyM.TxTimer -> TxTimer;
- TestUARTPhyM.Leds -> LedsC;
- TestUARTPhyM.TDA5250Control -> TDA5250RadioC.TDA5250Control;
- TestUARTPhyM.RadioSplitControl -> TDA5250RadioC.SplitControl;
- TestUARTPhyM.RadioByteComm -> UARTPhyM.SerializerRadioByteComm;
- TestUARTPhyM.PhyPacketTx -> UARTPhyM.PhyPacketTx;
- TestUARTPhyM.PhyPacketRx -> UARTPhyM.PhyPacketRx;
-
- UARTPhyM.RadioByteComm -> TDA5250RadioC.RadioByteComm;
-}
-
-
-
+++ /dev/null
-// $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.
- */
-
-module TestUARTPhyM {
- uses {
- interface Boot;
- interface Alarm<TMilli, uint32_t> as TxTimer;
- interface Leds;
- interface TDA5250Control;
- interface Random;
- interface SplitControl as RadioSplitControl;
- interface PhyPacketTx;
- interface PhyPacketRx;
- interface RadioByteComm;
- }
-}
-
-implementation {
-
- #define TX_TIMER_RATE 500
- #define NUM_BYTES 36
-
- uint8_t bytes_sent;
-
- event void Boot.booted() {
- bytes_sent = 0;
- call RadioSplitControl.start();
- }
-
- event void RadioSplitControl.startDone(error_t error) {
- call TDA5250Control.TxMode();
- }
-
- event void RadioSplitControl.stopDone(error_t error) {
- call TxTimer.stop();
- }
-
- /***********************************************************************
- * Commands and events
- ***********************************************************************/
-
- async event void TxTimer.fired() {
- call TDA5250Control.TxMode();
- }
-
- async event void TDA5250Control.TxModeDone(){
- call PhyPacketTx.sendHeader(NUM_BYTES);
- }
-
- async event void PhyPacketTx.sendHeaderDone(error_t error) {
- call RadioByteComm.txByte(call Random.rand16() / 2);
- }
-
- async event void RadioByteComm.txByteReady(error_t error) {
- if(++bytes_sent < NUM_BYTES)
- call RadioByteComm.txByte(call Random.rand16() / 2);
- else {
- bytes_sent = 0;
- call PhyPacketTx.sendFooter();
- }
- }
-
- async event void PhyPacketTx.sendFooterDone(error_t error) {
- call TDA5250Control.SleepMode();
- call TxTimer.start(call Random.rand16() % TX_TIMER_RATE);
- call Leds.led0Toggle();
- }
-
- async event void PhyPacketRx.recvHeaderDone(uint8_t length_value) {}
- async event void PhyPacketRx.recvFooterDone(bool error) {}
- async event void RadioByteComm.rxByteReady(uint8_t data) {}
-
- async event void TDA5250Control.PWDDDInterrupt() {
- }
- async event void TDA5250Control.TimerModeDone(){
- }
- async event void TDA5250Control.SelfPollingModeDone(){
- }
- async event void TDA5250Control.RxModeDone(){
- }
- async event void TDA5250Control.SleepModeDone(){
- }
- async event void TDA5250Control.CCAModeDone(){
- }
-
-}
-
-
+++ /dev/null
-COMPONENT=TestUARTPhyC
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-/* 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.
- */
-/**
- *
- **/
-
-includes Timer;
-configuration TestUARTPhyC {
-}
-implementation {
- components Main, TestUARTPhyM
- , new AlarmMilliC() as TxTimer
- , new AlarmMilliC() as RxTimer
- , new AlarmMilliC() as CCATimer
- , new AlarmMilliC() as TimerTimer
-// , new AlarmMilliC() as SelfPollingTimer
-// , new AlarmMilliC() as SleepTimer
- , LedsC
- , TDA5250RadioC
- , RandomLfsrC
- , UARTPhyM
- ;
-
- Main.SoftwareInit -> TDA5250RadioC.Init;
- Main.SoftwareInit -> RandomLfsrC.Init;
- Main.SoftwareInit -> LedsC.Init;
- Main.SoftwareInit -> UARTPhyM.Init;
- TestUARTPhyM -> Main.Boot;
-
- TestUARTPhyM.Random -> RandomLfsrC.Random;
- TestUARTPhyM.TxTimer -> TxTimer;
- TestUARTPhyM.RxTimer -> RxTimer;
- TestUARTPhyM.CCATimer -> CCATimer;
- TestUARTPhyM.TimerTimer -> TimerTimer;
-// TestUARTPhyM.SelfPollingTimer -> SelfPollingTimer;
-// TestUARTPhyM.SleepTimer -> SleepTimer;
- TestUARTPhyM.Leds -> LedsC;
- TestUARTPhyM.TDA5250Control -> TDA5250RadioC.TDA5250Control;
- TestUARTPhyM.RadioSplitControl -> TDA5250RadioC.SplitControl;
- TestUARTPhyM.RadioByteComm -> UARTPhyM.SerializerRadioByteComm;
- TestUARTPhyM.PhyPacketTx -> UARTPhyM.PhyPacketTx;
- TestUARTPhyM.PhyPacketRx -> UARTPhyM.PhyPacketRx;
-
- UARTPhyM.RadioByteComm -> TDA5250RadioC.RadioByteComm;
-}
-
-
-
+++ /dev/null
-// $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.
- */
-
-module TestUARTPhyM {
- uses {
- interface Boot;
- interface Alarm<TMilli, uint32_t> as TxTimer;
- interface Alarm<TMilli, uint32_t> as RxTimer;
- interface Alarm<TMilli, uint32_t> as TimerTimer;
- interface Alarm<TMilli, uint32_t> as CCATimer;
-// interface Alarm<TMilli, uint32_t> as SelfPollingTimer;
-// interface Alarm<TMilli, uint32_t> as SleepTimer;
- interface Leds;
- interface TDA5250Control;
- interface Random;
- interface SplitControl as RadioSplitControl;
- interface PhyPacketTx;
- interface PhyPacketRx;
- interface RadioByteComm;
- }
-}
-
-implementation {
-
- #define TIMER_RATE 500
- #define NUM_BYTES 36
-
- uint8_t bytes_sent;
- bool sending;
-
- event void Boot.booted() {
- bytes_sent = 0;
- sending = FALSE;
- call RadioSplitControl.start();
- }
-
- event void RadioSplitControl.startDone(error_t error) {
- call TxTimer.start(call Random.rand16() % TIMER_RATE);
- call TimerTimer.start(call Random.rand16() % TIMER_RATE);
- call RxTimer.start(call Random.rand16() % TIMER_RATE);
- call CCATimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- event void RadioSplitControl.stopDone(error_t error) {
- call TxTimer.stop();
- }
-
- /***********************************************************************
- * Commands and events
- ***********************************************************************/
-
- async event void TxTimer.fired() {
- atomic {
- if(call TDA5250Control.TxMode() != FAIL) {
- bytes_sent = 0;
- sending = TRUE;
- call Leds.led0On();
- call Leds.led1On();
- call Leds.led2On();
- return;
- }
- }
- call TxTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- async event void RxTimer.fired() {
- if(sending == FALSE)
- if(call TDA5250Control.RxMode() != FAIL)
- return;
- call RxTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- async event void CCATimer.fired() {
- if(sending == FALSE)
- if(call TDA5250Control.CCAMode() != FAIL)
- return;
- call CCATimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- async event void TimerTimer.fired() {
- if(sending == FALSE)
- if(call TDA5250Control.TimerMode(call Random.rand16() % TIMER_RATE/20,
- call Random.rand16() % TIMER_RATE/20) != FAIL)
- return;
- call TimerTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
-// async event void SelfPollingTimer.fired() {
-// if(sending == FALSE)
-// if(call TDA5250Control.SelfPollingMode(call Random.rand16() % TIMER_RATE/20,
-// call Random.rand16() % TIMER_RATE/20) != FAIL)
-// return;
-// call SelfPollingTimer.start(call Random.rand16() % TIMER_RATE);
-// }
-
-// async event void SleepTimer.fired() {
-// if(sending == FALSE)
-// if(call TDA5250Control.SleepMode() != FAIL)
-// return;
-// call SleepTimer.start(call Random.rand16() % TIMER_RATE);
-// }
-
-
- async event void TDA5250Control.TxModeDone(){
- call PhyPacketTx.sendHeader(NUM_BYTES);
- }
-
- async event void PhyPacketTx.sendHeaderDone(error_t error) {
- call RadioByteComm.txByte(call Random.rand16() / 2);
- }
-
- async event void RadioByteComm.txByteReady(error_t error) {
- if(++bytes_sent < NUM_BYTES)
- call RadioByteComm.txByte(call Random.rand16() / 2);
- else {
- bytes_sent = 0;
- call PhyPacketTx.sendFooter();
- }
- }
-
- async event void PhyPacketTx.sendFooterDone(error_t error) {
- call TDA5250Control.SleepMode();
- sending = FALSE;
- call TxTimer.start(call Random.rand16() % TIMER_RATE);
- }
-
- async event void TDA5250Control.TimerModeDone(){
- call TimerTimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0On();
- call Leds.led1On();
- call Leds.led2Off();
- }
- async event void TDA5250Control.SelfPollingModeDone(){
-// call SelfPollingTimer.start(call Random.rand16() % TIMER_RATE);
-// call Leds.led0On();
-// call Leds.led1Off();
-// call Leds.led2On();
- }
- async event void TDA5250Control.RxModeDone(){
- call RxTimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0Off();
- call Leds.led1On();
- call Leds.led2On();
- }
- async event void TDA5250Control.SleepModeDone(){
-// call SleepTimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0Off();
- call Leds.led1Off();
- call Leds.led2On();
- }
- async event void TDA5250Control.CCAModeDone(){
- call CCATimer.start(call Random.rand16() % TIMER_RATE);
- call Leds.led0On();
- call Leds.led1Off();
- call Leds.led2Off();
- }
-
- async event void TDA5250Control.PWDDDInterrupt() {
- }
- async event void PhyPacketRx.recvHeaderDone(uint8_t length_value) {}
- async event void PhyPacketRx.recvFooterDone(bool error) {}
- async event void RadioByteComm.rxByteReady(uint8_t data) {}
-
-}
-
-
+++ /dev/null
-COMPONENT=TestTimerC
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-/* 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.
- */
-/**
- *
- **/
-
-includes Timer;
-configuration TestTimerC {
-}
-implementation {
- components Main, TestTimerM
- , new AlarmMilliC() as Timer0
- , new AlarmMilliC() as Timer1
- , new AlarmMilliC() as Timer2
- , new AlarmMilliC() as Timer3
- , new AlarmMilliC() as Timer4
- , new AlarmMilliC() as Timer5
- , new AlarmMilliC() as Timer6
- , new AlarmMilliC() as Timer7
- , new AlarmMilliC() as Timer8
- ;
-
- TestTimerM -> Main.Boot;
-
- TestTimerM.Timer0 -> Timer0;
- TestTimerM.Timer1 -> Timer1;
- TestTimerM.Timer2 -> Timer2;
- TestTimerM.Timer3 -> Timer3;
- TestTimerM.Timer4 -> Timer4;
- TestTimerM.Timer5 -> Timer5;
- TestTimerM.Timer6 -> Timer6;
- TestTimerM.Timer7 -> Timer7;
- TestTimerM.Timer8 -> Timer8;
-}
-
-
-
+++ /dev/null
-// $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.
- */
-
-module TestTimerM {
- uses {
- interface Boot;
- interface Alarm<TMilli, uint32_t> as Timer0;
- interface Alarm<TMilli, uint32_t> as Timer1;
- interface Alarm<TMilli, uint32_t> as Timer2;
- interface Alarm<TMilli, uint32_t> as Timer3;
- interface Alarm<TMilli, uint32_t> as Timer4;
- interface Alarm<TMilli, uint32_t> as Timer5;
- interface Alarm<TMilli, uint32_t> as Timer6;
- interface Alarm<TMilli, uint32_t> as Timer7;
- interface Alarm<TMilli, uint32_t> as Timer8;
- }
-}
-
-implementation {
-
- #define DELAY 20
-
- event void Boot.booted() {
- call Timer0.start(DELAY);
- }
-
- /***********************************************************************
- * Commands and events
- ***********************************************************************/
-
- async event void Timer0.fired() {
- call Timer1.start(DELAY);
- }
- async event void Timer1.fired() {
- call Timer2.start(DELAY);
- }
- async event void Timer2.fired() {
- call Timer3.start(DELAY);
- }
- async event void Timer3.fired() {
- call Timer4.start(DELAY);
- }
- async event void Timer4.fired() {
- call Timer5.start(DELAY);
- }
- async event void Timer5.fired() {
- call Timer6.start(DELAY);
- }
- async event void Timer6.fired() {
- call Timer7.start(DELAY);
- }
- async event void Timer7.fired() {
- call Timer8.start(DELAY);
- }
- async event void Timer8.fired() {
- call Timer0.start(DELAY);
- }
-
-}
-
-
+++ /dev/null
-COMPONENT=TestADCC\r
-CFLAGS += -I%T/lib/adc -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls\r
-include $(MAKERULES)\r
-\r
+++ /dev/null
-// $Id$\r
-\r
-/* tab:4\r
- * "Copyright (c) 2000-2005 The Regents of the University of California. \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 agreement is\r
- * hereby granted, provided that the above copyright notice, the following\r
- * two paragraphs and the author appear in all copies of this software.\r
- * \r
- * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR\r
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT\r
- * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF\r
- * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- * \r
- * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\r
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\r
- * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO\r
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."\r
- *\r
- * Copyright (c) 2002-2005 Intel Corporation\r
- * All rights reserved.\r
- *\r
- * This file is distributed under the terms in the attached INTEL-LICENSE \r
- * file. If you do not find these files, copies can be found by writing to\r
- * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, \r
- * 94704. Attention: Intel License Inquiry.\r
- *\r
- * Copyright (c) 2004-2005 Crossbow Technology, Inc. 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 agreement is\r
- * hereby granted, provided that the above copyright notice, the following\r
- * two paragraphs and the author appear in all copies of this software. \r
- * IN NO EVENT SHALL CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS BE LIABLE TO \r
- * ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL \r
- * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\r
- * IF CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH \r
- * DAMAGE. \r
- *\r
- * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY \r
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS \r
- * ON AN "AS IS" BASIS, AND NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY \r
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR \r
- * MODIFICATIONS. \r
- */\r
-\r
-/**\r
- *\r
- * @author tinyos-help@millennium.berkeley.edu\r
- * @author Hu Siquan <husq@xbow.com>\r
- **/\r
-\r
-configuration TestADCC\r
-{\r
-}\r
-implementation\r
-{\r
- components Main, TestADCM, DemoSensorC, LedsC;\r
-\r
- TestADCM -> Main.Boot;\r
- Main.SoftwareInit -> LedsC;\r
- TestADCM.Leds -> LedsC;\r
- TestADCM.SensorControl -> DemoSensorC; \r
- TestADCM.AcquireData -> DemoSensorC; \r
-}\r
-\r
+++ /dev/null
-// $Id$\r
-\r
-/* tab:4\r
- * "Copyright (c) 2000-2005 The Regents of the University of California. \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 agreement is\r
- * hereby granted, provided that the above copyright notice, the following\r
- * two paragraphs and the author appear in all copies of this software.\r
- * \r
- * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR\r
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT\r
- * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF\r
- * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- * \r
- * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\r
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\r
- * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO\r
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."\r
- *\r
- * Copyright (c) 2002-2003 Intel Corporation\r
- * All rights reserved.\r
- *\r
- * This file is distributed under the terms in the attached INTEL-LICENSE \r
- * file. If you do not find these files, copies can be found by writing to\r
- * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, \r
- * 94704. Attention: Intel License Inquiry.\r
- * \r
- * Copyright (c) 2004-2005 Crossbow Technology, Inc. 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 agreement is\r
- * hereby granted, provided that the above copyright notice, the following\r
- * two paragraphs and the author appear in all copies of this software. \r
- *\r
- * IN NO EVENT SHALL CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS BE LIABLE TO \r
- * ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL \r
- * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\r
- * IF CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH \r
- * DAMAGE. \r
- *\r
- * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY \r
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS \r
- * ON AN "AS IS" BASIS, AND NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY \r
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR \r
- * MODIFICATIONS. \r
- */\r
-/**\r
- *\r
- * @author Hu Siquan <husq@xbow.com>\r
- *\r
- * Implementation for TestADC application. \r
- * Toggle the green LED when a dataReady event fires.\r
- **/\r
-\r
-\r
-module TestADCM\r
-{\r
- uses interface StdControl as SensorControl;\r
- uses interface AcquireData;\r
- uses interface Leds;\r
- uses interface Boot;\r
-}\r
-implementation\r
-{\r
- event void Boot.booted()\r
- {\r
- call Leds.led0Toggle();\r
- call SensorControl.start();\r
- call AcquireData.getData();\r
- }\r
-\r
- event void AcquireData.dataReady(uint16_t data) {\r
- call SensorControl.stop();\r
- call Leds.led1Toggle();\r
- if (data & 1)\r
- call Leds.led2On();\r
- else\r
- call Leds.led2Off();\r
- }\r
-\r
- event void AcquireData.error(uint16_t info) {\r
- call SensorControl.stop(); \r
- }\r
-}\r
-\r
+++ /dev/null
-COMPONENT=TestI2CC
-CFLAGS += -I%T/lib/oski
-include $(MAKERULES)
-
+++ /dev/null
-// $Id$
-
-/**
- * Copyright (c) 2004-2005 Crossbow Technology, Inc. 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 CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS 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 CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL 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 NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
- * MODIFICATIONS.
- */
-
-/// @author Martin Turon <mturon@xbow.com>
-
-/** This version of TestI2C is designed to test the ATmega128 I2C subsystem. */
-configuration TestI2CC
-{
-}
-implementation
-{
- components
- MainC, TestI2CM, LedsC,
- new OskiTimerMilliC() as Timer0,
- HplI2CBusC as I2C;
- //new HalI2CMasterC(0x58) as I2CPot; // ad5242 for mag on MTS310
-
- TestI2CM -> MainC.Boot;
- MainC.SoftwareInit -> LedsC;
-
- TestI2CM.Timer0 -> Timer0;
- TestI2CM.Leds -> LedsC;
- TestI2CM.I2C -> I2C;
- I2C.Leds -> LedsC;
-}
-
+++ /dev/null
-/**
- * Copyright (c) 2004-2005 Crossbow Technology, Inc.
- * 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.
- *
- * Permission is also granted to distribute this software under the
- * standard BSD license as contained in the TinyOS distribution.
- *
- * 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 Martin Turon <mturon@xbow.com>
- *
- * $Id$
- */
-
-/**
- * Implementation for TestI2C application:
- * Yellow == Every timer, post task for I2C ping if not already running
- * Red & GREEN == task started
- * Red == Device ping FAIL
- * Green == Device ping SUCCESS
- *
- * @version 2005/9/11 mturon Initial version
- */
-
-#define I2C_DEVICE I2C_MTS300_MIC
-
-#define I2C_MTS310_MAG 0x58
-#define I2C_MTS300_MIC 0x5A
-#define I2C_MDA300_ADC 0x94
-#define I2C_MDA300_EE 0xAE
-
-includes Timer;
-
-module TestI2CM
-{
- uses interface Timer<TMilli> as Timer0;
- uses interface Leds;
- uses interface Boot;
- uses interface HplI2CBus as I2C;
-}
-implementation
-{
- bool working;
-
- task void i2c_test() {
- call Leds.led1On();
- call Leds.led0On();
-
- if (call I2C.ping(I2C_DEVICE) == SUCCESS) {
- call Leds.led0Off();
- } else {
- call Leds.led1Off();
- }
-
- working = FALSE;
- }
-
- void i2c_test_start() {
- atomic {
- if (!working) {
- working = TRUE;
- post i2c_test();
- }
- }
- }
-
- event void Boot.booted() {
- working = FALSE;
- call I2C.init();
-
- call Timer0.startPeriodic( 10000 );
-
- call Leds.led2On();
- i2c_test_start();
- }
-
- event void Timer0.fired() {
- call Leds.led2Toggle();
- i2c_test_start();
- }
-
- async event void I2C.symbolSent() { }
-
-}
-
+++ /dev/null
-COMPONENT=TestRadioC
-CFLAGS += -I%T/oski/services -I%T/oski/interfaces -I%T/oski/types -I%T/oski/impls
-include $(MAKERULES)
-
+++ /dev/null
-// $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 TestRadioC
-{
-}
-implementation
-{
- components Main, TestRadioM, new TimerMilli() as Timer0, LedsC, CSMARadioC;
-
- TestRadioM -> Main.Boot;
- Main.SoftwareInit -> LedsC;
- Main.SoftwareInit -> CSMARadioC;
-
- TestRadioM.SplitControl -> CSMARadioC;
- TestRadioM.Send -> CSMARadioC;
- TestRadioM.Receive -> CSMARadioC;
- TestRadioM.Timer0 -> Timer0;
- TestRadioM.Leds -> LedsC;
-
-}
-
+++ /dev/null
-// $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 TestRadio application. Toggle the red LED when a
- * Timer fires.
- **/
-
-includes Timer;
-
-module TestRadioM
-{
- uses interface Timer<TMilli> as Timer0;
- uses interface SplitControl;
- uses interface Send;
- uses interface Receive;
- uses interface Leds;
- uses interface Boot;
-}
-implementation
-{
- message_t msg;
-
- event void Boot.booted()
- {
- call SplitControl.start();
- }
-
- event void SplitControl.startDone(error_t error) {
- call Timer0.startPeriodic( 1000 );
- }
-
- event void SplitControl.stopDone(error_t error) {
- }
-
- event void Timer0.fired()
- {
- call Leds.led0Toggle();
- msg.header.addr = 0xffff;
- msg.header.group = 0x42;
- msg.data[0] = 0xaa;
- msg.data[1] = 0xbb;
- msg.header.length = 2;
- if (call Send.send(&msg, 2) == SUCCESS)
- call Leds.led1Toggle();
- }
-
- event void Send.sendDone(message_t* mmsg, error_t error) {
- call Leds.led2Toggle();
- }
-
- event message_t* Receive.receive(message_t* mmsg, void* payload, uint8_t len) {
- return mmsg;
- }
-}
-
+++ /dev/null
-// $Id$
-
-/**
- * Copyright (c) 2004-2005 Crossbow Technology, Inc. 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 CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS 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 CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL 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 NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
- * MODIFICATIONS.
- */
-
-/// @author Martin Turon <mturon@xbow.com>
-
-/** This version of Blink is designed to test ATmega128 AVR timers. */
-configuration BlinkC
-{
-}
-implementation
-{
- components MainC, new BlinkM(uint8_t), LedsC, HplTimerC;
-
- BlinkM.Boot -> MainC;
- MainC.SoftwareInit -> LedsC;
- BlinkM.Leds -> LedsC;
-
- BlinkM.Timer -> HplTimerC.Timer0;
- BlinkM.Compare -> HplTimerC.Compare0;
-
- BlinkM.FastTimer -> HplTimerC.Timer1;
- BlinkM.FastCompare -> HplTimerC.Compare1A;
-}
-
+++ /dev/null
-// $Id$
-
-/**
- * Copyright (c) 2004-2005 Crossbow Technology, Inc. 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 CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS 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 CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL 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 NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
- * MODIFICATIONS.
- */
-
-/// @author Martin Turon <mturon@xbow.com>
-
-#define SLOW_COMPARE 50
-#define SLOW_COMPARE_ON_CYCLE 320
-#define SLOW_OVERFLOW_CYCLES 500
-
-#define FAST_COMPARE 16000
-#define FAST_COMPARE_ON_CYCLE 4
-#define FAST_OVERFLOW_CYCLES 5
-
-#include <ATm128Timer.h>
-
-/**
- * This version of Blink is designed to test ATmega128 AVR timers.
- */
-generic module BlinkM(typedef timer_size @integer())
-{
- uses interface HplTimer<timer_size> as Timer;
- uses interface HplCompare<timer_size> as Compare;
- uses interface HplTimer<uint16_t> as FastTimer;
- uses interface HplCompare<uint16_t> as FastCompare;
- uses interface Boot;
- uses interface Leds;
-}
-implementation
-{
- norace int scycle = SLOW_OVERFLOW_CYCLES;
- norace int fcycle = FAST_OVERFLOW_CYCLES;
-
- void slow_timer_init() {
- atomic {
- CLR_BIT(ASSR, AS0); // set Timer/Counter0 to use 32,768khz crystal
-
- call Timer.setScale(ATM128_CLK8_DIVIDE_32);
- call Compare.set(SLOW_COMPARE); // trigger compare in middle of range
- call Compare.start();
-
- call Timer.start();
- call Timer.set(0); // overflow after 256-6 = 250 cycles
- }
- }
-
- void fast_timer_init() {
-
- atomic {
- call FastTimer.setScale(AVR_CLOCK_DIVIDE_8);
- call FastCompare.set(FAST_COMPARE); // trigger compare mid pulse
- call FastCompare.start();
-
- call FastTimer.start();
- call FastTimer.set(0); // overflow after 256-6 = 250 cycles
- }
- }
-
- event void Boot.booted() {
- slow_timer_init();
- fast_timer_init();
-
- while(1) {}
- }
-
- async event void Compare.fired() {
- call Leds.led0On();
- call Compare.stop();
- }
-
- async event void Timer.overflow() {
- call Timer.reset();
-
- if (scycle == SLOW_COMPARE_ON_CYCLE) {
- call Compare.reset();
- call Compare.start();
- }
-
- if (scycle++ > SLOW_OVERFLOW_CYCLES) {
- scycle = 0;
- call Leds.led0Off();
- }
- }
-
- async event void FastCompare.fired() {
- if (fcycle == FAST_COMPARE_ON_CYCLE) {
- call Leds.led2On();
- call FastCompare.stop();
- }
- }
-
- async event void FastTimer.overflow() {
- call FastTimer.reset();
-
- if (fcycle == FAST_COMPARE_ON_CYCLE) {
- call FastCompare.reset();
- call FastCompare.start();
- }
-
- if (fcycle++ > FAST_OVERFLOW_CYCLES) {
- fcycle = 0;
- call Leds.led1Toggle(); // toggle overflow led
- call Leds.led2Off(); // clear compare led
- }
- }
-}
-
+++ /dev/null
-COMPONENT=BlinkC
-include $(MAKERULES)
-
+++ /dev/null
-COMPONENT=TestMts300C
-SENSORBOARD=mts300
-CFLAGS += -I%T/lib/oski
-#CFLAGS += -I%T/sensorboards/mts300
-include $(MAKERULES)
+++ /dev/null
-/**
- * Copyright (c) 2004-2005 Crossbow Technology, Inc.
- * 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.
- *
- * Permission is also granted to distribute this software under the
- * standard BSD license as contained in the TinyOS distribution.
- *
- * 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 Martin Turon <mturon@xbow.com>
- *
- * $Id$
- */
-
-/**
- * This application tests the mts300 sensorboard.
- * Specifically, this handles the thermistor and light sensors.
- *
- * @author Martin Turon
- * @date October 19, 2005
- */
-configuration TestMts300C {
-}
-implementation
-{
- components MainC, TestMts300P, LedsC, new OskiTimerMilliC(),
- SensorMts300C;
-
- MainC.SoftwareInit -> LedsC;
- MainC.SoftwareInit -> SensorMts300C;
-
- TestMts300P -> MainC.Boot;
- TestMts300P.Leds -> LedsC;
- TestMts300P.AppTimer -> OskiTimerMilliC;
-
- TestMts300P.SensorControl -> SensorMts300C;
- TestMts300P.Temp -> SensorMts300C.Temp;
- TestMts300P.Light -> SensorMts300C.Light;
-}
-
+++ /dev/null
-/**
- * Copyright (c) 2004-2005 Crossbow Technology, Inc.
- * 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.
- *
- * Permission is also granted to distribute this software under the
- * standard BSD license as contained in the TinyOS distribution.
- *
- * 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 Martin Turon <mturon@xbow.com>
- *
- * $Id$
- */
-
-includes Timer;
-
-/**
- * This application tests the mts300 sensorboard.
- * Specifically, this handles the thermistor and light sensors.
- *
- * @author Martin Turon
- * @date October 19, 2005
- */
-module TestMts300P
-{
- uses {
- interface Boot;
- interface Leds;
- interface Timer<TMilli> as AppTimer;
-
- interface StdControl as SensorControl;
- interface AcquireData as Temp;
- interface AcquireData as Light;
- }
-}
-implementation
-{
- event void Boot.booted() {
- call Leds.led0On();
- call Leds.led1On(); // power led
- call SensorControl.start();
- }
-
- event void AppTimer.fired() {
- call Leds.led0Toggle(); // heartbeat indicator
- call Light.getData();
- call Temp.getData();
- }
-
- event void Light.dataReady(uint16_t data) {
- call Leds.led1Toggle();
- }
-
- event void Temp.dataReady(uint16_t data) {
- call Leds.led2Toggle();
- }
-
- event void Light.error(uint16_t info) {
- }
-
- event void Temp.error(uint16_t info) {
- }
-}
-