Update BuildingPropagationLossModel frequency set for updating also lambda and update leha-helper consequently

This commit is contained in:
Marco Miozzo
2011-10-25 17:09:43 +02:00
parent e44fd5449b
commit f9fa7fb8a0
3 changed files with 16 additions and 3 deletions

View File

@@ -97,7 +97,7 @@ BuildingsPropagationLossModel::GetTypeId (void)
.AddAttribute ("Frequency",
"The Frequency (default is 2.106 GHz).",
DoubleValue (2160e6),
MakeDoubleAccessor (&BuildingsPropagationLossModel::m_frequency),
MakeDoubleAccessor (&BuildingsPropagationLossModel::SetFrequency),
MakeDoubleChecker<double> ())
.AddAttribute ("ShadowSigmaOutdoor",
@@ -204,12 +204,25 @@ BuildingsPropagationLossModel::SetLambda (double lambda)
m_frequency = 300000000 / lambda;
}
void
BuildingsPropagationLossModel::SetFrequency (double freq)
{
m_frequency = freq;
m_lambda = 300000000 * m_frequency;
}
double
BuildingsPropagationLossModel::GetLambda (void) const
{
return m_lambda;
}
double
BuildingsPropagationLossModel::GetFrequency (void) const
{
return m_frequency;
}
void
BuildingsPropagationLossModel::SetMinDistance (double minDistance)
{

View File

@@ -84,11 +84,13 @@ public:
void SetEnvironment (Environment env);
void SetCitySize (CitySize size);
void SetLambda (double lambda);
void SetFrequency (double freq);
void SetMinDistance (double minDistance);
Environment GetEnvironment (void) const;
CitySize GetCitySize (void) const;
double GetMinDistance (void) const;
double GetLambda (void) const;
double GetFrequency (void) const;
// void SetLambda (double frequency, double speed);

View File

@@ -290,13 +290,11 @@ LenaHelper::InstallSingleEnbDevice (Ptr<Node> n)
{
double dlFreq = LteSpectrumValueHelper::GetCarrierFrequency (dev->GetDlEarfcn ());
m_downlinkPropagationLossModel->SetAttribute ("Frequency", DoubleValue (dlFreq));
m_downlinkPropagationLossModel->SetAttribute ("Lambda", DoubleValue (300000000.0 /dlFreq));
}
if (m_ulPropagationModelFactory.GetTypeId ().GetName ().compare ( "ns3::BuildingsPropagationLossModel") == 0)
{
double ulFreq = LteSpectrumValueHelper::GetCarrierFrequency (dev->GetUlEarfcn ());
m_uplinkPropagationLossModel->SetAttribute ("Frequency", DoubleValue (ulFreq));
m_uplinkPropagationLossModel->SetAttribute ("Lambda", DoubleValue (300000000.0 /ulFreq));
}
dev->Start ();