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
main-random-walk.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006,2007 INRIA
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*/
6
7
#include "ns3/core-module.h"
8
#include "ns3/mobility-module.h"
9
10
using namespace
ns3
;
11
12
/**
13
* Function called when there is a course change
14
* \param context event context
15
* \param mobility a pointer to the mobility model
16
*/
17
static
void
18
CourseChange
(std::string context,
Ptr<const MobilityModel>
mobility)
19
{
20
Vector pos = mobility->GetPosition();
21
Vector vel = mobility->GetVelocity();
22
std::cout <<
Simulator::Now
() <<
", model="
<< mobility <<
", POS: x="
<< pos.x
23
<<
", y="
<< pos.y <<
", z="
<< pos.z <<
"; VEL:"
<< vel.x <<
", y="
<< vel.y
24
<<
", z="
<< vel.z << std::endl;
25
}
26
27
int
28
main(
int
argc,
char
* argv[])
29
{
30
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Mode"
,
StringValue
(
"Time"
));
31
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Time"
,
StringValue
(
"2s"
));
32
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Speed"
,
33
StringValue
(
"ns3::ConstantRandomVariable[Constant=1.0]"
));
34
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Bounds"
,
StringValue
(
"0|200|0|200"
));
35
36
CommandLine
cmd
(__FILE__);
37
cmd
.Parse(argc, argv);
38
39
NodeContainer
c;
40
c.
Create
(100);
41
42
MobilityHelper
mobility
;
43
mobility
.SetPositionAllocator(
"ns3::RandomDiscPositionAllocator"
,
44
"X"
,
45
StringValue
(
"100.0"
),
46
"Y"
,
47
StringValue
(
"100.0"
),
48
"Rho"
,
49
StringValue
(
"ns3::UniformRandomVariable[Min=0|Max=30]"
));
50
mobility
.SetMobilityModel(
"ns3::RandomWalk2dMobilityModel"
,
51
"Mode"
,
52
StringValue
(
"Time"
),
53
"Time"
,
54
StringValue
(
"2s"
),
55
"Speed"
,
56
StringValue
(
"ns3::ConstantRandomVariable[Constant=1.0]"
),
57
"Bounds"
,
58
StringValue
(
"0|200|0|200"
));
59
mobility
.InstallAll();
60
Config::Connect
(
"/NodeList/*/$ns3::MobilityModel/CourseChange"
,
MakeCallback
(&
CourseChange
));
61
62
Simulator::Stop
(
Seconds
(100.0));
63
64
Simulator::Run
();
65
66
Simulator::Destroy
();
67
return
0;
68
}
ns3::CommandLine
Parse command-line arguments.
Definition
command-line.h:221
ns3::MobilityHelper
Helper class used to assign positions and mobility models to nodes.
Definition
mobility-helper.h:33
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
mpi-test-fixtures.h:37
ns3::Simulator::Destroy
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
Definition
simulator.cc:131
ns3::Simulator::Now
static Time Now()
Return the current simulation virtual time.
Definition
simulator.cc:197
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::Config::SetDefault
void SetDefault(std::string name, const AttributeValue &value)
Definition
config.cc:883
ns3::Config::Connect
void Connect(std::string path, const CallbackBase &cb)
Definition
config.cc:967
ns3::Seconds
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition
nstime.h:1308
CourseChange
static void CourseChange(std::string context, Ptr< const MobilityModel > mobility)
Function called when there is a course change.
Definition
main-random-walk.cc:18
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::MakeCallback
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Definition
callback.h:684
second.cmd
cmd
Definition
second.py:29
third.mobility
mobility
Definition
third.py:92
src
mobility
examples
main-random-walk.cc
Generated on Fri Nov 8 2024 13:59:04 for ns-3 by
1.11.0