diff --git a/src/lte/examples/lena-fading.cc b/src/lte/examples/lena-fading.cc new file mode 100644 index 000000000..478bafd4f --- /dev/null +++ b/src/lte/examples/lena-fading.cc @@ -0,0 +1,101 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Manuel Requena + */ + + +#include "ns3/core-module.h" +#include "ns3/network-module.h" +#include "ns3/mobility-module.h" +#include "ns3/lte-module.h" +#include "ns3/config-store.h" +//#include "ns3/gtk-config-store.h" +using namespace ns3; + +int main (int argc, char *argv[]) +{ + CommandLine cmd; + cmd.Parse (argc, argv); + + // to save a template default attribute file run it like this: + // ./waf --command-template="%s --ns3::ConfigStore::Filename=input-defaults.txt --ns3::ConfigStore::Mode=Save --ns3::ConfigStore::FileFormat=RawText" --run src/lte/examples/lena-first-sim + // + // to load a previously created default attribute file + // ./waf --command-template="%s --ns3::ConfigStore::Filename=input-defaults.txt --ns3::ConfigStore::Mode=Load --ns3::ConfigStore::FileFormat=RawText" --run src/lte/examples/lena-first-sim + + //ConfigStore inputConfig; + //inputConfig.ConfigureDefaults (); + + // parse again so you can override default values from the command line + cmd.Parse (argc, argv); + + Ptr lena = CreateObject (); + + //lena->EnableLogComponents (); + + // LogComponentEnable ("LtePhy", LOG_LEVEL_ALL); +// LogComponentEnable ("LteEnbPhy", LOG_LEVEL_ALL); + // LogComponentEnable ("LteUePhy", LOG_LEVEL_ALL); +// LogComponentEnable ("PfFfMacScheduler", LOG_LEVEL_ALL); + LogComponentEnable ("LenaHelper", LOG_LEVEL_ALL); +// LogComponentEnable ("BuildingsPropagationLossModel", LOG_LEVEL_ALL); + LogComponentEnable ("TraceFadingLossModel", LOG_LEVEL_ALL); + + lena->SetAttribute ("FadingModel", StringValue ("ns3::TraceFadingLossModel")); + lena->SetFadingModelAttribute ("TraceFilename", StringValue ("src/lte/model/FadingTraces/fading_trace_EPA_3kmph.fad")); + + // Create Nodes: eNodeB and UE + NodeContainer enbNodes; + NodeContainer ueNodes; + enbNodes.Create (1); + ueNodes.Create (1); + + // Install Mobility Model + MobilityHelper mobility; + mobility.SetMobilityModel ("ns3::BuildingsMobilityModel"); + mobility.Install (enbNodes); + mobility.SetMobilityModel ("ns3::BuildingsMobilityModel"); + mobility.Install (ueNodes); + + // Create Devices and install them in the Nodes (eNB and UE) + NetDeviceContainer enbDevs; + NetDeviceContainer ueDevs; + //lena->SetSchedulerType ("ns3::RrFfMacScheduler"); + lena->SetSchedulerType ("ns3::PfFfMacScheduler"); + enbDevs = lena->InstallEnbDevice (enbNodes); + ueDevs = lena->InstallUeDevice (ueNodes); + + // Attach a UE to a eNB + lena->Attach (ueDevs, enbDevs.Get (0)); + + // Activate an EPS bearer + enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; + EpsBearer bearer (q); + lena->ActivateEpsBearer (ueDevs, bearer); + + + Simulator::Stop (Seconds (0.005)); + + Simulator::Run (); + + //GtkConfigStore config; + //config.ConfigureAttributes (); + + Simulator::Destroy (); + return 0; +}