mmac.h

Go to the documentation of this file.
00001 /* -*-  Mode:C++ -*- */
00002 /*
00003  * Copyright (c) 2007 Regents of the SIGNET lab, University of Padova.
00004  * All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  * 1. Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  * 2. Redistributions in binary form must reproduce the above copyright
00012  *    notice, this list of conditions and the following disclaimer in the
00013  *    documentation and/or other materials provided with the distribution.
00014  * 3. Neither the name of the University of Padova (SIGNET lab) nor the 
00015  *    names of its contributors may be used to endorse or promote products 
00016  *    derived from this software without specific prior written permission.
00017  *
00018  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
00019  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
00020  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
00021  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
00022  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
00023  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
00024  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
00025  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
00026  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
00027  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
00028  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00029  */
00030 
00042 #ifndef MMAC_H 
00043 #define MMAC_H
00044 
00045 #include<module.h>
00046 
00047 
00048 
00049 class MMac : public Module
00050 {
00051 
00052 public:
00053 
00054   MMac();
00055   virtual ~MMac();
00056  
00057   void recv(Packet* p);
00058   virtual int recvSyncClMsg(ClMessage* m);
00059   virtual int command(int argc, const char*const* argv);
00060 
00061 protected:
00062 
00074   virtual void Phy2MacEndTx(const Packet* p);
00075 
00089   virtual void Phy2MacStartRx(const Packet* p);
00090 
00103   virtual void Phy2MacEndRx(Packet* p);
00104 
00105 
00111   virtual void recvFromUpperLayers(Packet* p);
00112 
00113   virtual void Phy2MacCCA(bool cca);  
00114 
00115 
00122   void Mac2PhyStartTx(Packet* p);
00123 
00124 
00126 
00133   void Mac2PhyStartTx(int moduleId, Packet* p);
00134 
00140   double Mac2PhyTxDuration(Packet* p);
00141 
00148   double Mac2PhyTxDuration(int moduleId, Packet* p);
00149 
00153   void Mac2PhyTurnOn();
00154 
00160   void Mac2PhyTurnOn(int moduleId);
00161 
00165   void Mac2PhyTurnOff();
00166   
00172   void Mac2PhyTurnOff(int moduleId);
00173 
00178   bool Mac2PhyOnOffSwitchStatus();
00179  
00186   bool Mac2PhyOnOffSwitchStatus(int moduleId);
00187 
00189 
00198   double mac2phy_delay_;
00199 
00200 
00205   int addr;
00206 
00207 };
00208 
00209 
00210 
00211 
00212 
00213 
00214 #endif /* MMAC_H */

Generated on Wed Nov 26 15:47:28 2008 for NS-MIRACLE library by  doxygen 1.5.2