A Discrete-Event Network Simulator
QKDNetSim v2.0 (NS-3 v3.41) @ (+)
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
v
w
Enumerator
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Functions
:
a
b
c
d
e
g
h
i
j
l
m
n
o
p
q
r
s
t
u
w
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
c
e
i
l
o
r
s
t
v
Macros
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
main-grid-topology.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006,2007 INRIA
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*/
17
18
#include "ns3/core-module.h"
19
#include "ns3/mobility-module.h"
20
#include "ns3/network-module.h"
21
22
using namespace
ns3
;
23
24
int
25
main(
int
argc,
char
* argv[])
26
{
27
CommandLine
cmd
(__FILE__);
28
cmd
.Parse(argc, argv);
29
30
NodeContainer
nodes
;
31
32
// create an array of empty nodes for testing purposes
33
nodes
.
Create
(120);
34
35
MobilityHelper
mobility
;
36
// setup the grid itself: objects are laid out
37
// started from (-100,-100) with 20 objects per row,
38
// the x interval between each object is 5 meters
39
// and the y interval between each object is 20 meters
40
mobility
.SetPositionAllocator(
"ns3::GridPositionAllocator"
,
41
"MinX"
,
42
DoubleValue
(-100.0),
43
"MinY"
,
44
DoubleValue
(-100.0),
45
"DeltaX"
,
46
DoubleValue
(5.0),
47
"DeltaY"
,
48
DoubleValue
(20.0),
49
"GridWidth"
,
50
UintegerValue
(20),
51
"LayoutType"
,
52
StringValue
(
"RowFirst"
));
53
// each object will be attached a static position.
54
// i.e., once set by the "position allocator", the
55
// position will never change.
56
mobility
.SetMobilityModel(
"ns3::ConstantPositionMobilityModel"
);
57
58
// finalize the setup by attaching to each object
59
// in the input array a position and initializing
60
// this position with the calculated coordinates.
61
mobility
.Install(
nodes
);
62
63
// iterate our nodes and print their position.
64
for
(
auto
j =
nodes
.
Begin
(); j !=
nodes
.
End
(); ++j)
65
{
66
Ptr<Node>
object
= *j;
67
Ptr<MobilityModel>
position =
object
->
GetObject
<
MobilityModel
>();
68
NS_ASSERT
(position);
69
Vector pos = position->
GetPosition
();
70
std::cout <<
"x="
<< pos.x <<
", y="
<< pos.y <<
", z="
<< pos.z << std::endl;
71
}
72
73
Simulator::Destroy
();
74
return
0;
75
}
ns3::CommandLine
Parse command-line arguments.
Definition:
command-line.h:232
ns3::DoubleValue
This class can be used to hold variables of floating point type such as 'double' or 'float'.
Definition:
double.h:42
ns3::MobilityHelper
Helper class used to assign positions and mobility models to nodes.
Definition:
mobility-helper.h:44
ns3::MobilityModel
Keep track of the current position and velocity of an object.
Definition:
mobility-model.h:40
ns3::MobilityModel::GetPosition
Vector GetPosition() const
Definition:
mobility-model.cc:67
ns3::NodeContainer
keep track of a set of node pointers.
Definition:
node-container.h:40
ns3::NodeContainer::End
Iterator End() const
Get an iterator which indicates past-the-last Node in the container.
Definition:
node-container.cc:66
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:84
ns3::NodeContainer::Begin
Iterator Begin() const
Get an iterator which refers to the first Node in the container.
Definition:
node-container.cc:60
ns3::Object::GetObject
Ptr< T > GetObject() const
Get a pointer to the requested aggregated Object.
Definition:
object.h:471
ns3::Ptr< Node >
ns3::Simulator::Destroy
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
Definition:
simulator.cc:142
ns3::StringValue
Hold variables of type string.
Definition:
string.h:56
ns3::UintegerValue
Hold an unsigned integer type.
Definition:
uinteger.h:45
NS_ASSERT
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Definition:
assert.h:66
nodes
NodeContainer nodes
Definition:
lr-wpan-bootstrap.cc:53
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
second.cmd
cmd
Definition:
second.py:40
third.mobility
mobility
Definition:
third.py:105
src
mobility
examples
main-grid-topology.cc
Generated on Sun Mar 3 2024 17:11:05 for ns-3 by
1.9.1