A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
lena-fading.cc
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Marco Miozzo <marco.miozzo@cttc.es>
19
*/
20
21
22
#include "ns3/core-module.h"
23
#include "ns3/network-module.h"
24
#include "ns3/mobility-module.h"
25
#include "ns3/lte-module.h"
26
#include "ns3/config-store.h"
27
#include <ns3/string.h>
28
#include <fstream>
29
//#include "ns3/gtk-config-store.h"
30
31
using namespace
ns3;
32
33
int
main
(
int
argc,
char
*argv[])
34
{
35
CommandLine
cmd;
36
cmd.
Parse
(argc, argv);
37
38
// to save a template default attribute file run it like this:
39
// ./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
40
//
41
// to load a previously created default attribute file
42
// ./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
43
44
//ConfigStore inputConfig;
45
//inputConfig.ConfigureDefaults ();
46
47
// parse again so you can override default values from the command line
48
//cmd.Parse (argc, argv);
49
50
Ptr<LteHelper>
lteHelper = CreateObject<LteHelper> ();
51
// Uncomment to enable logging
52
//lteHelper->EnableLogComponents ();
53
54
55
lteHelper->
SetAttribute
(
"FadingModel"
,
StringValue
(
"ns3::TraceFadingLossModel"
));
56
57
std::ifstream ifTraceFile;
58
ifTraceFile.open (
"../../src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"
, std::ifstream::in);
59
if
(ifTraceFile.good ())
60
{
61
// script launched by test.py
62
lteHelper->
SetFadingModelAttribute
(
"TraceFilename"
,
StringValue
(
"../../src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"
));
63
}
64
else
65
{
66
// script launched as an example
67
lteHelper->
SetFadingModelAttribute
(
"TraceFilename"
,
StringValue
(
"src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"
));
68
}
69
70
// these parameters have to setted only in case of the trace format
71
// differs from the standard one, that is
72
// - 10 seconds length trace
73
// - 10,000 samples
74
// - 0.5 seconds for window size
75
// - 100 RB
76
lteHelper->
SetFadingModelAttribute
(
"TraceLength"
,
TimeValue
(
Seconds
(10.0)));
77
lteHelper->
SetFadingModelAttribute
(
"SamplesNum"
,
UintegerValue
(10000));
78
lteHelper->
SetFadingModelAttribute
(
"WindowSize"
,
TimeValue
(
Seconds
(0.5)));
79
lteHelper->
SetFadingModelAttribute
(
"RbNum"
,
UintegerValue
(100));
80
81
// Create Nodes: eNodeB and UE
82
NodeContainer
enbNodes;
83
NodeContainer
ueNodes;
84
enbNodes.
Create
(1);
85
ueNodes.
Create
(1);
86
87
// Install Mobility Model
88
MobilityHelper
mobility;
89
mobility.
SetMobilityModel
(
"ns3::BuildingsMobilityModel"
);
90
mobility.
Install
(enbNodes);
91
mobility.
SetMobilityModel
(
"ns3::BuildingsMobilityModel"
);
92
mobility.
Install
(ueNodes);
93
94
// Create Devices and install them in the Nodes (eNB and UE)
95
NetDeviceContainer
enbDevs;
96
NetDeviceContainer
ueDevs;
97
enbDevs = lteHelper->
InstallEnbDevice
(enbNodes);
98
ueDevs = lteHelper->
InstallUeDevice
(ueNodes);
99
100
// Attach a UE to a eNB
101
lteHelper->
Attach
(ueDevs, enbDevs.
Get
(0));
102
103
// Activate an EPS bearer
104
enum
EpsBearer::Qci
q =
EpsBearer::GBR_CONV_VOICE
;
105
EpsBearer
bearer (q);
106
lteHelper->
ActivateEpsBearer
(ueDevs, bearer,
EpcTft::Default
());
107
108
109
Simulator::Stop
(
Seconds
(0.005));
110
111
Simulator::Run
();
112
113
//GtkConfigStore config;
114
//config.ConfigureAttributes ();
115
116
Simulator::Destroy
();
117
return
0;
118
}
src
lte
examples
lena-fading.cc
Generated on Fri Dec 21 2012 19:00:38 for ns-3 by
1.8.1.2