A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
lena-fading.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Marco Miozzo <marco.miozzo@cttc.es>
7
*/
8
9
#include "ns3/buildings-helper.h"
10
#include "ns3/config-store.h"
11
#include "ns3/core-module.h"
12
#include "ns3/lte-module.h"
13
#include "ns3/mobility-module.h"
14
#include "ns3/network-module.h"
15
#include "ns3/string.h"
16
17
#include <fstream>
18
// #include "ns3/gtk-config-store.h"
19
20
using namespace
ns3
;
21
22
int
23
main(
int
argc
,
char
*
argv
[])
24
{
25
CommandLine
cmd
(
__FILE__
);
26
cmd
.Parse(
argc
,
argv
);
27
28
// to save a template default attribute file run it like this:
29
// ./ns3 run src/lte/examples/lena-first-sim --command-template="%s
30
// --ns3::ConfigStore::Filename=input-defaults.txt --ns3::ConfigStore::Mode=Save
31
// --ns3::ConfigStore::FileFormat=RawText"
32
//
33
// to load a previously created default attribute file
34
// ./ns3 run src/lte/examples/lena-first-sim --command-template="%s
35
// --ns3::ConfigStore::Filename=input-defaults.txt --ns3::ConfigStore::Mode=Load
36
// --ns3::ConfigStore::FileFormat=RawText"
37
38
// ConfigStore inputConfig;
39
// inputConfig.ConfigureDefaults ();
40
41
// parse again so you can override default values from the command line
42
// cmd.Parse (argc, argv);
43
44
Ptr<LteHelper>
lteHelper
=
CreateObject<LteHelper>
();
45
// Uncomment to enable logging
46
// lteHelper->EnableLogComponents ();
47
48
lteHelper
->SetAttribute(
"FadingModel"
,
StringValue
(
"ns3::TraceFadingLossModel"
));
49
50
std::ifstream
ifTraceFile
;
51
ifTraceFile
.open(
"../../src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"
,
52
std::ifstream::in);
53
if
(
ifTraceFile
.good())
54
{
55
// script launched by test.py
56
lteHelper
->SetFadingModelAttribute(
57
"TraceFilename"
,
58
StringValue
(
"../../src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"
));
59
}
60
else
61
{
62
// script launched as an example
63
lteHelper
->SetFadingModelAttribute(
64
"TraceFilename"
,
65
StringValue
(
"src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"
));
66
}
67
68
// these parameters have to be set only in case of the trace format
69
// differs from the standard one, that is
70
// - 10 seconds length trace
71
// - 10,000 samples
72
// - 0.5 seconds for window size
73
// - 100 RB
74
lteHelper
->SetFadingModelAttribute(
"TraceLength"
,
TimeValue
(
Seconds
(10)));
75
lteHelper
->SetFadingModelAttribute(
"SamplesNum"
,
UintegerValue
(10000));
76
lteHelper
->SetFadingModelAttribute(
"WindowSize"
,
TimeValue
(
Seconds
(0.5)));
77
lteHelper
->SetFadingModelAttribute(
"RbNum"
,
UintegerValue
(100));
78
79
// Create Nodes: eNodeB and UE
80
NodeContainer
enbNodes
;
81
NodeContainer
ueNodes
;
82
enbNodes
.
Create
(1);
83
ueNodes
.Create(1);
84
85
// Install Mobility Model
86
MobilityHelper
mobility
;
87
mobility
.SetMobilityModel(
"ns3::ConstantPositionMobilityModel"
);
88
mobility
.Install(
enbNodes
);
89
BuildingsHelper::Install
(
enbNodes
);
90
mobility
.SetMobilityModel(
"ns3::ConstantPositionMobilityModel"
);
91
mobility
.Install(
ueNodes
);
92
BuildingsHelper::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
EpsBearer::Qci
q =
EpsBearer::GBR_CONV_VOICE
;
105
EpsBearer
bearer(q);
106
lteHelper
->ActivateDataRadioBearer(
ueDevs
, bearer);
107
108
Simulator::Stop
(
Seconds
(0.005));
109
110
Simulator::Run
();
111
112
// GtkConfigStore config;
113
// config.ConfigureAttributes ();
114
115
Simulator::Destroy
();
116
return
0;
117
}
ns3::BuildingsHelper::Install
static void Install(Ptr< Node > node)
Install the MobilityBuildingInfo to a node.
Definition
buildings-helper.cc:34
ns3::CommandLine
Parse command-line arguments.
Definition
command-line.h:221
ns3::EpsBearer
This class contains the specification of EPS Bearers.
Definition
eps-bearer.h:80
ns3::EpsBearer::Qci
Qci
QoS Class Indicator.
Definition
eps-bearer.h:95
ns3::EpsBearer::GBR_CONV_VOICE
@ GBR_CONV_VOICE
GBR Conversational Voice.
Definition
eps-bearer.h:96
ns3::MobilityHelper
Helper class used to assign positions and mobility models to nodes.
Definition
mobility-helper.h:33
ns3::NetDeviceContainer
holds a vector of ns3::NetDevice pointers
Definition
net-device-container.h:32
ns3::NodeContainer
keep track of a set of node pointers.
Definition
node-container.h:29
ns3::NodeContainer::Create
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
Definition
node-container.cc:73
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
ptr.h:66
ns3::Simulator::Destroy
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
Definition
simulator.cc:131
ns3::Simulator::Run
static void Run()
Run the simulation.
Definition
simulator.cc:167
ns3::Simulator::Stop
static void Stop()
Tell the Simulator the calling event should be the last one executed.
Definition
simulator.cc:175
ns3::StringValue
Hold variables of type string.
Definition
string.h:45
ns3::TimeValue
AttributeValue implementation for Time.
Definition
nstime.h:1431
ns3::UintegerValue
Hold an unsigned integer type.
Definition
uinteger.h:34
ns3::Create
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition
ptr.h:436
ns3::Seconds
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition
nstime.h:1344
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
second.cmd
cmd
Definition
second.py:29
third.mobility
mobility
Definition
third.py:92
src
lte
examples
lena-fading.cc
Generated on Mon Dec 15 2025 15:21:56 for ns-3 by
1.9.8