⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc2420activemessagec.nc

📁 tinyos2.0版本驱动
💻 NC
字号:
/* * "Copyright (c) 2005 Stanford 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 STANFORD 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 STANFORD UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * STANFORD 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 STANFORD UNIVERSITY * HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS." *//** * The Active Message layer for the CC2420 radio. This configuration * just layers the AM dispatch (CC2420ActiveMessageM) on top of the * underlying CC2420 radio packet (CC2420CsmaCsmaCC), which is * inherently an AM packet (acknowledgements based on AM destination * addr and group). Note that snooping may not work, due to CC2420 * early packet rejection if acknowledgements are enabled. * * @author Philip Levis * @author David Moss * @version $Revision: 1.12 $ $Date: 2008/06/11 00:46:23 $ */#include "CC2420.h"#include "AM.h"configuration CC2420ActiveMessageC {  provides {    interface SplitControl;    interface AMSend[am_id_t id];    interface Receive[am_id_t id];    interface Receive as Snoop[am_id_t id];    interface AMPacket;    interface Packet;    interface CC2420Packet;    interface PacketAcknowledgements;    interface LinkPacketMetadata;    interface RadioBackoff[am_id_t amId];    interface LowPowerListening;    interface PacketLink;    interface SendNotifier[am_id_t amId];  }}implementation {  components CC2420ActiveMessageP as AM;  components CC2420CsmaC as CsmaC;  components ActiveMessageAddressC;  components UniqueSendC;  components UniqueReceiveC;  components CC2420TinyosNetworkC;  components CC2420PacketC;  components CC2420ControlC;  #if defined(LOW_POWER_LISTENING) || defined(ACK_LOW_POWER_LISTENING)  components DefaultLplC as LplC;#else  components DummyLplC as LplC;#endif#if defined(PACKET_LINK)  components PacketLinkC as LinkC;#else  components PacketLinkDummyC as LinkC;#endif    RadioBackoff = AM;  Packet = AM;  AMSend = AM;  SendNotifier = AM;  Receive = AM.Receive;  Snoop = AM.Snoop;  AMPacket = AM;  PacketLink = LinkC;  LowPowerListening = LplC;  CC2420Packet = CC2420PacketC;  PacketAcknowledgements = CC2420PacketC;  LinkPacketMetadata = CC2420PacketC;    // SplitControl Layers  SplitControl = LplC;  LplC.SubControl -> CsmaC;    // Send Layers  AM.SubSend -> UniqueSendC;  UniqueSendC.SubSend -> LinkC;  LinkC.SubSend -> LplC.Send;  LplC.SubSend -> CC2420TinyosNetworkC.Send;  CC2420TinyosNetworkC.SubSend -> CsmaC;    // Receive Layers  AM.SubReceive -> LplC;  LplC.SubReceive -> UniqueReceiveC.Receive;  UniqueReceiveC.SubReceive -> CC2420TinyosNetworkC.Receive;  CC2420TinyosNetworkC.SubReceive -> CsmaC;  AM.ActiveMessageAddress -> ActiveMessageAddressC;  AM.CC2420Packet -> CC2420PacketC;  AM.CC2420PacketBody -> CC2420PacketC;  AM.CC2420Config -> CC2420ControlC;    AM.SubBackoff -> CsmaC;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -