+++ /dev/null
-/* tab:4\r
- * "Copyright (c) 2005 Stanford University. All rights reserved.\r
- *\r
- * Permission to use, copy, modify, and distribute this software and\r
- * its documentation for any purpose, without fee, and without written\r
- * agreement is hereby granted, provided that the above copyright\r
- * notice, the following two paragraphs and the author appear in all\r
- * copies of this software.\r
- * \r
- * IN NO EVENT SHALL STANFORD UNIVERSITY BE LIABLE TO ANY PARTY FOR\r
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES\r
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\r
- * IF STANFORD UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\r
- * DAMAGE.\r
- * \r
- * STANFORD UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE\r
- * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND STANFORD UNIVERSITY\r
- * HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,\r
- * ENHANCEMENTS, OR MODIFICATIONS."\r
- */\r
-\r
-/**\r
- * The Active Message layer for the CC2420 radio. This configuration\r
- * just layers the AM dispatch (CC2420ActiveMessageM) on top of the\r
- * underlying CC2420 radio packet (CC2420CsmaRadioC), which is\r
- * inherently an AM packet (acknowledgements based on AM destination\r
- * addr and group). Note that snooping may not work, due to CC2420\r
- * early packet rejection if acknowledgements are enabled.\r
- *\r
- * @author Philip Levis\r
- * @version $Revision$ $Date$\r
- */\r
-\r
-#include "CC2420.h"\r
-\r
-configuration CC2420ActiveMessageC {\r
- provides {\r
- interface SplitControl;\r
- interface AMSend[am_id_t id];\r
- interface Receive[am_id_t id];\r
- interface Receive as Snoop[am_id_t id];\r
- interface AMPacket;\r
- interface Packet;\r
- interface CC2420Packet;\r
- interface PacketAcknowledgements;\r
- interface CsmaBackoff[am_id_t amId];\r
- interface LowPowerListening;\r
- }\r
-}\r
-implementation {\r
-\r
- components CC2420ActiveMessageP as AM;\r
- components CC2420CsmaC as Radio;\r
- components ActiveMessageAddressC as Address;\r
- \r
- CsmaBackoff = Radio;\r
- Packet = AM;\r
- AMSend = AM;\r
- Receive = AM.Receive;\r
- Snoop = AM.Snoop;\r
- AMPacket = AM;\r
- \r
-#ifdef LOW_POWER_LISTENING\r
- components CC2420LowPowerListeningC as Lpl;\r
- LowPowerListening = Lpl;\r
- AM.SubSend -> Lpl.Send;\r
- AM.SubReceive -> Lpl.Receive;\r
- SplitControl = Lpl;\r
- \r
-#else\r
- components CC2420LplDummyP;\r
- LowPowerListening = CC2420LplDummyP;\r
- AM.SubSend -> Radio.Send;\r
- AM.SubReceive -> Radio.Receive;\r
- SplitControl = Radio;\r
-#endif\r
-\r
- AM.amAddress -> Address;\r
- Radio.AMPacket -> AM;\r
-\r
- components CC2420PacketC;\r
- CC2420Packet = CC2420PacketC;\r
- PacketAcknowledgements = CC2420PacketC;\r
-\r
-\r
-}\r