00001 /* 00002 * Copyright (c) 2007 Regents of the SIGNET lab, University of Padova. 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 3. Neither the name of the University of Padova (SIGNET lab) nor the 00014 * names of its contributors may be used to endorse or promote products 00015 * derived from this software without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00018 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 00019 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00020 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00021 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00022 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00023 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00024 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00025 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00026 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 00027 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00028 */ 00029 00030 #ifndef UMTS_WIRELESSCH_H 00031 #define UMTS_WIRELESSCH_H 00032 00033 #include <channel-module.h> 00034 00035 #define SPEED_OF_LIGHT 300000000.0 // 3 * 10^8 m/s 00036 #define PI 3.1415926535897 00037 00038 class ChSAP; 00039 00040 /*------------------------------------------------------------------------------ 00041 UmtsWirelessChModule is an optimized version of the Dumb Wireless Channel 00042 which avoids the transmission of useless copies of the ME packet directed to 00043 its BS (i.e., in UPLINK direction) to all the others MEs 00044 00045 -------------------------------------------------------------------------------*/ 00046 00047 class UmtsWirelessChModule : public ChannelModule 00048 { 00049 public: 00050 UmtsWirelessChModule(); 00051 virtual ~ UmtsWirelessChModule(); 00052 //virtual void recv(Packet *p); 00053 virtual void recv(Packet *p, ChSAP *chsap); 00054 00055 virtual int command(int argc, const char*const* argv); 00056 00057 protected: 00058 double getPropDelay(Position *source, Position* dest); 00059 void sendUpPhy(Packet *p,ChSAP *chsap); 00060 00061 private: 00062 ChSAP* BSchsap_; 00063 00064 }; 00065 00066 00067 #endif /* UMTS_WIRELESSCH_H */