src/lte/examples/lena-profiling.cc
author Nicola Baldo <nbaldo@cttc.es>
Mon, 05 Dec 2011 21:27:44 +0100
changeset 8463 cc818aa536a5
parent 8460 fbb53bda0ec7
child 8540 5e6afc302fb2
child 8556 f859539f5dd3
permissions -rw-r--r--
renamed LteTft --> EpcTft
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     2
/*
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     4
 *
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     7
 * published by the Free Software Foundation;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     8
 *
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    12
 * GNU General Public License for more details.
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    13
 *
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    17
 *
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    18
 * Author: Jaume Nin <jnin@cttc.es>
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    19
 */
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    20
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    21
#include "ns3/core-module.h"
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    22
#include "ns3/network-module.h"
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    23
#include "ns3/mobility-module.h"
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    24
#include "ns3/lte-module.h"
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    25
#include "ns3/config-store.h"
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
    26
#include <ns3/buildings-propagation-loss-model.h>
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    27
#include <iomanip>
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    28
#include <string>
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    29
#include <vector>
8429
fb109ecf2718 Name refactoring of example simulation scripts
Jaume Nin
parents: 8395
diff changeset
    30
//#include "ns3/gtk-config-store.h"
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    31
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    32
using namespace ns3;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    33
using std::vector;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    34
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    35
int
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    36
main (int argc, char *argv[])
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    37
{
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    38
  uint32_t nEnbPerFloor = 1;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    39
  uint32_t nUe = 1;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    40
  uint32_t nFloors = 0;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    41
  double simTime = 1.0;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    42
  std::string traceDirectory = "";
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    43
  CommandLine cmd;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    44
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    45
  cmd.AddValue("nEnb", "Number of eNodeBs per floor", nEnbPerFloor);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    46
  cmd.AddValue("nUe", "Number of UEs", nUe);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    47
  cmd.AddValue("nFloors", "Number of floors, 0 for Friis propagation model",
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    48
      nFloors);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    49
  cmd.AddValue("simTime", "Total duration of the simulation (in seconds)",
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    50
      simTime);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    51
  cmd.AddValue("traceDirectory",
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    52
      "Destination folder where the traces will be stored", traceDirectory);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    53
  cmd.Parse(argc, argv);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    54
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    55
  ConfigStore inputConfig;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    56
  inputConfig.ConfigureDefaults();
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
    57
  
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    58
  // parse again so you can override default values from the command line
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    59
  cmd.Parse(argc, argv);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    60
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    61
  // Geometry of the scenario (in meters)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    62
  // Assume squared building
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    63
  double nodeHeight = 1.5;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    64
  double roomHeight = 3;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    65
  double roomLength = 8;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    66
  uint32_t nRooms = ceil (sqrt (nEnbPerFloor));
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    67
  uint32_t nEnb;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    68
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
    69
  Ptr < LteHelper > lteHelper = CreateObject<LteHelper> ();
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
    70
  //lteHelper->EnableLogComponents ();
8327
f317a8ae693e disable logging in lena-runtime-profiler
Nicola Baldo <nbaldo@cttc.es>
parents: 8326
diff changeset
    71
  //LogComponentEnable ("BuildingsPropagationLossModel", LOG_LEVEL_ALL);
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    72
  if (nFloors == 0)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    73
    {
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
    74
      lteHelper->SetAttribute("PathlossModel",
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    75
          StringValue("ns3::FriisPropagationLossModel"));
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    76
      nEnb = nEnbPerFloor;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    77
    }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    78
  else
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    79
    {
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
    80
      lteHelper->SetAttribute("PathlossModel",
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    81
          StringValue("ns3::BuildingsPropagationLossModel"));
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    82
      nEnb = nFloors * nEnbPerFloor;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    83
    }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    84
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    85
  // Create Nodes: eNodeB and UE
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    86
  NodeContainer enbNodes;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    87
  vector < NodeContainer > ueNodes;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    88
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    89
  enbNodes.Create(nEnb);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    90
  for (uint32_t i = 0; i < nEnb; i++)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    91
    {
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    92
      NodeContainer ueNode;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    93
      ueNode.Create(nUe);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    94
      ueNodes.push_back(ueNode);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    95
    }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    96
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    97
  MobilityHelper mobility;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    98
  vector<Vector> enbPosition;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
    99
  Ptr < ListPositionAllocator > positionAlloc = CreateObject<ListPositionAllocator> ();
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   100
  Ptr < Building > building;
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   101
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   102
  if (nFloors == 0)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   103
    {
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   104
      mobility.SetMobilityModel("ns3::ConstantPositionMobilityModel");
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   105
      // Position of eNBs
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   106
      uint32_t plantedEnb = 0;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   107
      for (uint32_t row = 0; row < nRooms; row++)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   108
        {
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   109
          for (uint32_t column = 0; column < nRooms && plantedEnb < nEnbPerFloor; column++, plantedEnb++)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   110
            {
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   111
              Vector v(roomLength * (column + 0.5), roomLength * (row + 0.5), nodeHeight);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   112
              positionAlloc->Add(v);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   113
              enbPosition.push_back(v);
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   114
              mobility.Install(ueNodes[plantedEnb]);
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   115
            }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   116
        }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   117
      mobility.SetPositionAllocator(positionAlloc);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   118
      mobility.Install (enbNodes);
8315
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   119
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   120
      // Position of UEs attached to eNB
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   121
     for (uint32_t i = 0; i < nEnb; i++)
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   122
       {
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   123
         UniformVariable posX(enbPosition[i].x - roomLength * 0.5,
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   124
            enbPosition[i].x + roomLength * 0.5);
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   125
         UniformVariable posY(enbPosition[i].y - roomLength * 0.5,
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   126
            enbPosition[i].y + roomLength * 0.5);
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   127
        positionAlloc = CreateObject<ListPositionAllocator> ();
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   128
        for (uint32_t j = 0; j < nUe; j++)
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   129
          {
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   130
            positionAlloc->Add(Vector(posX.GetValue(), posY.GetValue(), nodeHeight));
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   131
            mobility.SetPositionAllocator(positionAlloc);
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   132
          }
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   133
         mobility.Install(ueNodes[i]);
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   134
     }
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   135
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   136
    }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   137
  else
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   138
    {
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   139
      building = Create<Building> (0.0, nRooms * roomLength,
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   140
                                                    0.0, nRooms * roomLength,
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   141
                                                    0.0, nFloors* roomHeight);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   142
      building->SetBuildingType(Building::Residential);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   143
      building->SetExtWallsType(Building::ConcreteWithWindows);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   144
      building->SetFloorsNumber(nFloors);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   145
      building->SetNumberRoomX(nRooms);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   146
      building->SetNumberRoomY(nRooms);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   147
      mobility.SetMobilityModel("ns3::BuildingsMobilityModel");
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   148
      mobility.Install (enbNodes);
8326
1ce4fe5083c3 FixBug in lena-runtime-profiler on nEnb generated per floor
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8315
diff changeset
   149
      uint32_t plantedEnb = 0;
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   150
      for (uint32_t floor = 0; floor < nFloors; floor++)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   151
        {
8326
1ce4fe5083c3 FixBug in lena-runtime-profiler on nEnb generated per floor
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8315
diff changeset
   152
          uint32_t plantedEnbPerFloor = 0;
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   153
          for (uint32_t row = 0; row < nRooms; row++)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   154
            {
8326
1ce4fe5083c3 FixBug in lena-runtime-profiler on nEnb generated per floor
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8315
diff changeset
   155
              for (uint32_t column = 0; column < nRooms && plantedEnbPerFloor < nEnbPerFloor; column++, plantedEnb++, plantedEnbPerFloor++)
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   156
                {
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   157
                  Vector v (roomLength * (column + 0.5),
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   158
                            roomLength * (row + 0.5),
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   159
                            nodeHeight + roomHeight * floor);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   160
                  positionAlloc->Add(v);
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   161
                  enbPosition.push_back(v);
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   162
                  Ptr<BuildingsMobilityModel> mmEnb = enbNodes.Get (plantedEnb)->GetObject<BuildingsMobilityModel> ();
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   163
                  mmEnb->SetPosition (v);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   164
                  mmEnb->SetIndoor (building);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   165
                  mmEnb->SetFloorNumber (floor);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   166
                  mmEnb->SetRoomNumberX (row);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   167
                  mmEnb->SetRoomNumberY (column);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   168
                  
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   169
                  // Positioning UEs attached to eNB
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   170
                  mobility.Install(ueNodes[plantedEnb]);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   171
                  for (uint32_t ue = 0; ue < nUe; ue++)
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   172
                    {
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   173
                      Ptr<BuildingsMobilityModel> mmUe = ueNodes[plantedEnb].Get (ue)->GetObject<BuildingsMobilityModel> ();
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   174
                      Vector vUe (v.x, v.y, v.z);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   175
                      mmUe->SetPosition (vUe);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   176
                      mmUe->SetIndoor (building);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   177
                      mmUe->SetFloorNumber (floor);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   178
                      mmUe->SetRoomNumberX (row);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   179
                      mmUe->SetRoomNumberY (column);
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   180
                    }
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   181
                }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   182
            }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   183
        }
8268
2228db567a14 Update lena-runtime-profiler with buildings initialization
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8266
diff changeset
   184
      
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   185
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   186
    }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   187
8315
2c49ce1438a5 Fixed bug in positioning the UEs for the Friis propagation model
root@pc125
parents: 8268
diff changeset
   188
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   189
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   190
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   191
  // Create Devices and install them in the Nodes (eNB and UE)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   192
  NetDeviceContainer enbDevs;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   193
  vector < NetDeviceContainer > ueDevs;
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
   194
  enbDevs = lteHelper->InstallEnbDevice(enbNodes);
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   195
  for (uint32_t i = 0; i < nEnb; i++)
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   196
    {
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
   197
      NetDeviceContainer ueDev = lteHelper->InstallUeDevice(ueNodes[i]);
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   198
      ueDevs.push_back(ueDev);
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
   199
      lteHelper->Attach(ueDev, enbDevs.Get(i));
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   200
      enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   201
      EpsBearer bearer(q);
8463
cc818aa536a5 renamed LteTft --> EpcTft
Nicola Baldo <nbaldo@cttc.es>
parents: 8460
diff changeset
   202
      lteHelper->ActivateEpsBearer(ueDev, bearer, EpcTft::Default ());
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   203
    }
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   204
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   205
  Simulator::Stop(Seconds(simTime));
8460
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
   206
  lteHelper->SetTraceDirectory(traceDirectory);
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
   207
  lteHelper->EnableRlcTraces();
fbb53bda0ec7 renamed LenaHelper --> LteHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 8429
diff changeset
   208
  lteHelper->EnableMacTraces();
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   209
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   210
  Simulator::Run();
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   211
8331
1823cde6f40b Removed GTK pop up on example script. Set values for profiling script to the standard ones
Jaume Nin
parents: 8330
diff changeset
   212
  /*GtkConfigStore config;
1823cde6f40b Removed GTK pop up on example script. Set values for profiling script to the standard ones
Jaume Nin
parents: 8330
diff changeset
   213
  config.ConfigureAttributes ();*/
8261
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   214
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   215
  Simulator::Destroy();
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   216
  return 0;
9d0b65bcc294 Simulation script to profile simulation time
jaumenin
parents:
diff changeset
   217
}