From 58f043adfb4e8a321a9f93f4262122183fa92245 Mon Sep 17 00:00:00 2001 From: mmaroti Date: Thu, 15 May 2008 07:04:12 +0000 Subject: [PATCH] resurrect the dummy low power listening --- tos/chips/rf230/DefaultMacC.nc | 11 +++-- tos/chips/rf230/DummyLayerC.nc | 15 ++----- tos/chips/rf230/DummyLayerP.nc | 50 ++++++++++++++++++++++ tos/chips/rf230/LowPowerListeningLayerC.nc | 2 + 4 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 tos/chips/rf230/DummyLayerP.nc diff --git a/tos/chips/rf230/DefaultMacC.nc b/tos/chips/rf230/DefaultMacC.nc index 1e767293..105100ed 100644 --- a/tos/chips/rf230/DefaultMacC.nc +++ b/tos/chips/rf230/DefaultMacC.nc @@ -72,16 +72,19 @@ implementation RF230LayerC.lastTouch -> DefaultPacketC.lastTouch; components ActiveMessageLayerC; -#if defined(LOW_POWER_LISTENING) +#ifdef LOW_POWER_LISTENING components LowPowerListeningLayerC; #else components new DummyLayerC() as LowPowerListeningLayerC; -#endif +#endif components MessageBufferLayerC; components UniqueLayerC; components TrafficMonitorLayerC; +#ifdef RF230_SLOTTED_MAC + components SlottedCollisionLayerC as CollisionAvoidanceLayerC; +#else components RandomCollisionLayerC as CollisionAvoidanceLayerC; -// components SlottedCollisionLayerC as CollisionAvoidanceLayerC; +#endif components SoftwareAckLayerC; components new DummyLayerC() as CsmaLayerC; components RF230LayerC; @@ -102,9 +105,11 @@ implementation LowPowerListeningLayerC.SubControl -> MessageBufferLayerC; LowPowerListeningLayerC.SubSend -> MessageBufferLayerC; LowPowerListeningLayerC.SubReceive -> MessageBufferLayerC; +#ifdef LOW_POWER_LISTENING LowPowerListeningLayerC.PacketSleepInterval -> DefaultPacketC; LowPowerListeningLayerC.IEEE154Packet -> IEEE154PacketC; LowPowerListeningLayerC.PacketAcknowledgements -> DefaultPacketC; +#endif MessageBufferLayerC.Packet -> DefaultPacketC; MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC; diff --git a/tos/chips/rf230/DummyLayerC.nc b/tos/chips/rf230/DummyLayerC.nc index f1f6f699..e3c55dea 100644 --- a/tos/chips/rf230/DummyLayerC.nc +++ b/tos/chips/rf230/DummyLayerC.nc @@ -36,9 +36,6 @@ generic configuration DummyLayerC() interface RadioCCA; interface DummyConfig as UnconnectedConfig; - interface PacketField as UnconnectedPacketSleepInterval; - interface IEEE154Packet as UnconnectedIEEE154Packet; - interface PacketAcknowledgements as UnconnectedPacketAcknowledgments; } uses @@ -52,11 +49,6 @@ generic configuration DummyLayerC() interface Receive as SubReceive; interface DummyConfig as Config; - interface PacketField as PacketSleepInterval; - interface IEEE154Packet; - interface PacketAcknowledgements; - - interface LowPowerListening as UnconnectedLowPowerListening; } } @@ -72,8 +64,7 @@ implementation Receive = SubReceive; Config = UnconnectedConfig; - PacketSleepInterval = UnconnectedPacketSleepInterval; - IEEE154Packet = UnconnectedIEEE154Packet; - PacketAcknowledgements = UnconnectedPacketAcknowledgments; - LowPowerListening = UnconnectedLowPowerListening; + + components DummyLayerP; + LowPowerListening = DummyLayerP.LowPowerListening; } diff --git a/tos/chips/rf230/DummyLayerP.nc b/tos/chips/rf230/DummyLayerP.nc new file mode 100644 index 00000000..8ce32610 --- /dev/null +++ b/tos/chips/rf230/DummyLayerP.nc @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2007, Vanderbilt University + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose, without fee, and without written agreement is + * hereby granted, provided that the above copyright notice, the following + * two paragraphs and the author appear in all copies of this software. + * + * IN NO EVENT SHALL THE VANDERBILT UNIVERSITY 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 VANDERBILT + * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE VANDERBILT UNIVERSITY 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 VANDERBILT UNIVERSITY HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Author: Miklos Maroti + */ + +module DummyLayerP +{ + provides interface LowPowerListening; +} + +implementation +{ + command void LowPowerListening.setLocalSleepInterval(uint16_t sleepIntervalMs) { } + + command uint16_t LowPowerListening.getLocalSleepInterval() { return 0; } + + command void LowPowerListening.setLocalDutyCycle(uint16_t dutyCycle) { } + + command uint16_t LowPowerListening.getLocalDutyCycle() { return 10000; } + + command void LowPowerListening.setRxSleepInterval(message_t *msg, uint16_t sleepIntervalMs) { } + + command uint16_t LowPowerListening.getRxSleepInterval(message_t *msg) { return 0; } + + command void LowPowerListening.setRxDutyCycle(message_t *msg, uint16_t dutyCycle) { } + + command uint16_t LowPowerListening.getRxDutyCycle(message_t *msg) { return 10000; } + + command uint16_t LowPowerListening.dutyCycleToSleepInterval(uint16_t dutyCycle) { return 0; } + + command uint16_t LowPowerListening.sleepIntervalToDutyCycle(uint16_t sleepInterval) { return 10000; } +} diff --git a/tos/chips/rf230/LowPowerListeningLayerC.nc b/tos/chips/rf230/LowPowerListeningLayerC.nc index a60ff739..b1efca25 100644 --- a/tos/chips/rf230/LowPowerListeningLayerC.nc +++ b/tos/chips/rf230/LowPowerListeningLayerC.nc @@ -21,6 +21,8 @@ * Author: Miklos Maroti */ +#warning "*** USING LOW POWER LISTENING LAYER" + configuration LowPowerListeningLayerC { provides -- 2.39.2