A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
main-random-walk.cc
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2006,2007 INRIA
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
19
#include "ns3/core-module.h"
20
#include "ns3/mobility-module.h"
21
22
using namespace
ns3
;
23
29
static
void
30
CourseChange
(std::string context,
Ptr<const MobilityModel>
mobility
)
31
{
32
Vector pos =
mobility
->GetPosition ();
33
Vector vel =
mobility
->GetVelocity ();
34
std::cout <<
Simulator::Now
() <<
", model="
<<
mobility
<<
", POS: x="
<< pos.x <<
", y="
<< pos.y
35
<<
", z="
<< pos.z <<
"; VEL:"
<< vel.x <<
", y="
<< vel.y
36
<<
", z="
<< vel.z << std::endl;
37
}
38
39
int
main (
int
argc,
char
*argv[])
40
{
41
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Mode"
,
StringValue
(
"Time"
));
42
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Time"
,
StringValue
(
"2s"
));
43
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Speed"
,
StringValue
(
"ns3::ConstantRandomVariable[Constant=1.0]"
));
44
Config::SetDefault
(
"ns3::RandomWalk2dMobilityModel::Bounds"
,
StringValue
(
"0|200|0|200"
));
45
46
CommandLine
cmd
(__FILE__);
47
cmd
.Parse (argc, argv);
48
49
NodeContainer
c;
50
c.
Create
(100);
51
52
MobilityHelper
mobility
;
53
mobility
.SetPositionAllocator (
"ns3::RandomDiscPositionAllocator"
,
54
"X"
,
StringValue
(
"100.0"
),
55
"Y"
,
StringValue
(
"100.0"
),
56
"Rho"
,
StringValue
(
"ns3::UniformRandomVariable[Min=0|Max=30]"
));
57
mobility
.SetMobilityModel (
"ns3::RandomWalk2dMobilityModel"
,
58
"Mode"
,
StringValue
(
"Time"
),
59
"Time"
,
StringValue
(
"2s"
),
60
"Speed"
,
StringValue
(
"ns3::ConstantRandomVariable[Constant=1.0]"
),
61
"Bounds"
,
StringValue
(
"0|200|0|200"
));
62
mobility
.InstallAll ();
63
Config::Connect
(
"/NodeList/*/$ns3::MobilityModel/CourseChange"
,
64
MakeCallback
(&
CourseChange
));
65
66
Simulator::Stop
(
Seconds
(100.0));
67
68
Simulator::Run
();
69
70
Simulator::Destroy
();
71
return
0;
72
}
ns3::CommandLine
Parse command-line arguments.
Definition:
command-line.h:229
ns3::MobilityHelper
Helper class used to assign positions and mobility models to nodes.
Definition:
mobility-helper.h:43
ns3::NodeContainer
keep track of a set of node pointers.
Definition:
node-container.h:39
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:98
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:74
ns3::Simulator::Stop
static void Stop(void)
Tell the Simulator the calling event should be the last one executed.
Definition:
simulator.cc:180
ns3::Simulator::Destroy
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
Definition:
simulator.cc:136
ns3::Simulator::Run
static void Run(void)
Run the simulation.
Definition:
simulator.cc:172
ns3::Simulator::Now
static Time Now(void)
Return the current simulation virtual time.
Definition:
simulator.cc:195
ns3::StringValue
Hold variables of type string.
Definition:
string.h:41
ns3::Config::SetDefault
void SetDefault(std::string name, const AttributeValue &value)
Definition:
config.cc:849
ns3::Config::Connect
void Connect(std::string path, const CallbackBase &cb)
Definition:
config.cc:920
ns3::Seconds
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition:
nstime.h:1244
CourseChange
static void CourseChange(std::string context, Ptr< const MobilityModel > mobility)
Function called when there is a course change.
Definition:
main-random-walk.cc:30
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::MakeCallback
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Definition:
callback.h:1648
second.cmd
cmd
Definition:
second.py:35
third.mobility
mobility
Definition:
third.py:108
src
mobility
examples
main-random-walk.cc
Generated on Tue Feb 6 2024 19:21:24 for ns-3 by
1.9.1