00001 #include <set>
00002 #include <cmath>
00003
00004 #include "ConnectionManager.h"
00005 #include "BaseWorldUtility.h"
00006
00007 #ifndef ccEV
00008 #define ccEV (ev.isDisabled()||!coreDebug) ? ev : ev << getName() << ": "
00009 #endif
00010
00011 Define_Module( ConnectionManager );
00012
00013 double ConnectionManager::calcInterfDist()
00014 {
00015 double interfDistance;
00016
00017
00018 double carrierFrequency = par("carrierFrequency").doubleValue();
00019
00020 double pMax = par("pMax").doubleValue();
00021 if (pMax <=0) {
00022 error("Max transmission power is <=0!");
00023 }
00024
00025 double sat = par("sat").doubleValue();
00026
00027 double alpha = par("alpha").doubleValue();
00028
00029 double waveLength = (BaseWorldUtility::speedOfLight/carrierFrequency);
00030
00031 double minReceivePower = pow(10.0, sat/10.0);
00032
00033 interfDistance = pow(waveLength * waveLength * pMax
00034 / (16.0*M_PI*M_PI*minReceivePower),
00035 1.0 / alpha);
00036
00037 ccEV << "max interference distance:" << interfDistance << endl;
00038
00039 return interfDistance;
00040 }
00041