Update LenaHelper for managing Friss and Constant Spectrum Propagation models
authorMarco Miozzo <marco.miozzo@cttc.es>
Mon, 19 Sep 2011 11:29:32 +0200
changeset 8240 b77560c84e4f
parent 8239 30a445e1f68b
child 8241 6b3ef9a2baed
Update LenaHelper for managing Friss and Constant Spectrum Propagation models
src/lte/helper/lena-helper.cc
--- a/src/lte/helper/lena-helper.cc	Fri Sep 16 16:50:42 2011 +0200
+++ b/src/lte/helper/lena-helper.cc	Mon Sep 19 11:29:32 2011 +0200
@@ -67,21 +67,31 @@
   NS_LOG_FUNCTION (this);
   m_downlinkChannel = CreateObject<SingleModelSpectrumChannel> ();
   m_uplinkChannel = CreateObject<SingleModelSpectrumChannel> ();
-  //Ptr<SpectrumPropagationLossModel> dlPropagationModel = m_propagationModelFactory.Create<SpectrumPropagationLossModel> ();
-  //Ptr<SpectrumPropagationLossModel> ulPropagationModel = m_propagationModelFactory.Create<SpectrumPropagationLossModel> ();
-  //m_downlinkChannel->AddSpectrumPropagationLossModel (dlPropagationModel);
-  //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_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_downlinkChannel->AddPropagationLossModel (m_downlinkPropagationLossModel);
-  m_uplinkChannel->AddPropagationLossModel (m_uplinkPropagationLossModel);
+  if ((m_dlPropagationModelFactory.GetTypeId ().GetName ().compare ( "ns3::FriisSpectrumPropagationLossModel") == 0) || (m_dlPropagationModelFactory.GetTypeId ().GetName ().compare ( "ns3::ConstantSpectrumPropagationLossModel") == 0) )
+    {
+      Ptr<SpectrumPropagationLossModel> dlPropagationModel = m_dlPropagationModelFactory.Create<SpectrumPropagationLossModel> ();
+      Ptr<SpectrumPropagationLossModel> ulPropagationModel = m_ulPropagationModelFactory.Create<SpectrumPropagationLossModel> ();
+      m_downlinkChannel->AddSpectrumPropagationLossModel (dlPropagationModel);
+      m_uplinkChannel->AddSpectrumPropagationLossModel (ulPropagationModel);
+    }
+  else if (m_dlPropagationModelFactory.GetTypeId ().GetName ().compare ( "ns3::BuildingsPropagationLossModel") == 0)
+    {
+      //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_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_downlinkChannel->AddPropagationLossModel (m_downlinkPropagationLossModel);
+      m_uplinkChannel->AddPropagationLossModel (m_uplinkPropagationLossModel);
+    }
+  else
+    {
+      NS_LOG_ERROR ("Unknown propagation model");
+    }
   m_macStats = CreateObject<MacStatsCalculator> ();
   m_rlcStats = CreateObject<RlcStatsCalculator> ();
   Object::DoStart ();