Update LenaHelper for set the BuildingPropagationLossModel parameter automatically with earfcn parameter
authorMarco Miozzo <marco.miozzo@cttc.es>
Thu, 15 Sep 2011 13:36:02 +0200
changeset 8234 ee0d91b3de95
parent 8233 0b9d402b3b1d
child 8235 3a2689468f7f
Update LenaHelper for set the BuildingPropagationLossModel parameter automatically with earfcn parameter
src/lte/helper/lena-helper.cc
--- a/src/lte/helper/lena-helper.cc	Wed Sep 14 15:17:35 2011 +0200
+++ b/src/lte/helper/lena-helper.cc	Thu Sep 15 13:36:02 2011 +0200
@@ -47,6 +47,8 @@
 
 #include <ns3/buildings-propagation-loss-model.h>
 
+#include <ns3/lte-spectrum-value-helper.h>
+
 
 NS_LOG_COMPONENT_DEFINE ("LenaHelper");
 
@@ -71,13 +73,13 @@
   //m_uplinkChannel->AddSpectrumPropagationLossModel (ulPropagationModel);
   //m_downlinkPropagationLossModel = CreateObject<BuildingsPropagationLossModel> ();
   m_downlinkPropagationLossModel = m_dlPropagationModelFactory.Create<PropagationLossModel> ();
-  m_downlinkPropagationLossModel->SetAttribute ("Frequency", DoubleValue (2.1140e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
-  m_downlinkPropagationLossModel->SetAttribute ("Lambda", DoubleValue (300000000.0 /2.1140e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
+//   m_downlinkPropagationLossModel->SetAttribute ("Frequency", DoubleValue (2.1140e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
+//   m_downlinkPropagationLossModel->SetAttribute ("Lambda", DoubleValue (300000000.0 /2.1140e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
   //m_uplinkPropagationLossModel = CreateObject<BuildingsPropagationLossModel> ();
   m_uplinkPropagationLossModel = m_ulPropagationModelFactory.Create<PropagationLossModel> ();
   
-  m_uplinkPropagationLossModel->SetAttribute ("Frequency", DoubleValue (1.950e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
-  m_uplinkPropagationLossModel->SetAttribute ("Lambda", DoubleValue (300000000.0 /1.950e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
+//   m_uplinkPropagationLossModel->SetAttribute ("Frequency", DoubleValue (1.950e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
+//   m_uplinkPropagationLossModel->SetAttribute ("Lambda", DoubleValue (300000000.0 /1.950e9)); // E_UTRA BAND #1 see table 5.5-1 of 36.101
   m_downlinkChannel->AddPropagationLossModel (m_downlinkPropagationLossModel);
   m_uplinkChannel->AddPropagationLossModel (m_uplinkPropagationLossModel);
   m_macStats = CreateObject<MacStatsCalculator> ();
@@ -114,7 +116,7 @@
                    MakeStringChecker ())
     .AddAttribute ("PropagationModel",
                    "The type of propagation model to be used",
-                   StringValue ("ns3::FriisSpectrumPropagationLossModel"),
+                   StringValue ("ns3::BuildingsPropagationLossModel"),
                    MakeStringAccessor (&LenaHelper::SetPropagationModelType),
                    MakeStringChecker ())
   ;
@@ -247,7 +249,20 @@
 
   n->AddDevice (dev);
   ulPhy->SetGenericPhyRxEndOkCallback (MakeCallback (&LteEnbPhy::PhyPduReceived, phy));
-
+  // set the propagation model frequencies
+  if (m_dlPropagationModelFactory.GetTypeId ().GetName ().compare ( "ns3::BuildingsPropagationLossModel") == 0)
+    {
+      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 ();
   return dev;
 }