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
grid-animation.cc
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* This program is free software; you can redistribute it and/or modify
4
* it under the terms of the GNU General Public License version 2 as
5
* published by the Free Software Foundation;
6
*
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU General Public License for more details.
11
*
12
* You should have received a copy of the GNU General Public License
13
* along with this program; if not, write to the Free Software
14
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15
*
16
* Author: Josh Pelkey <jpelkey@gatech.edu>
17
*/
18
19
#include <iostream>
20
21
#include "ns3/core-module.h"
22
#include "ns3/network-module.h"
23
#include "ns3/internet-module.h"
24
#include "ns3/point-to-point-module.h"
25
#include "ns3/netanim-module.h"
26
#include "ns3/applications-module.h"
27
#include "ns3/point-to-point-layout-module.h"
28
29
using namespace
ns3;
30
31
int
main
(
int
argc,
char
*argv[])
32
{
33
Config::SetDefault
(
"ns3::OnOffApplication::PacketSize"
,
UintegerValue
(512));
34
Config::SetDefault
(
"ns3::OnOffApplication::DataRate"
,
StringValue
(
"500kb/s"
));
35
36
uint32_t xSize = 5;
37
uint32_t ySize = 5;
38
std::string animFile =
"grid-animation.xml"
;
39
40
CommandLine
cmd;
41
cmd.
AddValue
(
"xSize"
,
"Number of rows of nodes"
, xSize);
42
cmd.
AddValue
(
"ySize"
,
"Number of columns of nodes"
, ySize);
43
cmd.
AddValue
(
"animFile"
,
"File Name for Animation Output"
, animFile);
44
45
cmd.
Parse
(argc,argv);
46
if
(xSize < 1 || ySize < 1 || (xSize < 2 && ySize < 2))
47
{
48
NS_FATAL_ERROR
(
"Need more nodes for grid."
);
49
}
50
51
PointToPointHelper
pointToPoint;
52
pointToPoint.
SetDeviceAttribute
(
"DataRate"
,
StringValue
(
"5Mbps"
));
53
pointToPoint.
SetChannelAttribute
(
"Delay"
,
StringValue
(
"2ms"
));
54
55
// Create Grid
56
PointToPointGridHelper
grid (xSize, ySize, pointToPoint);
57
58
// Install stack on Grid
59
InternetStackHelper
stack;
60
grid.
InstallStack
(stack);
61
62
// Assign Addresses to Grid
63
grid.
AssignIpv4Addresses
(
Ipv4AddressHelper
(
"10.1.1.0"
,
"255.255.255.0"
),
64
Ipv4AddressHelper
(
"10.2.1.0"
,
"255.255.255.0"
));
65
66
67
OnOffHelper
clientHelper (
"ns3::UdpSocketFactory"
,
Address
());
68
clientHelper.
SetAttribute
(
"OnTime"
,
StringValue
(
"ns3::ConstantRandomVariable[Constant=1]"
));
69
clientHelper.
SetAttribute
(
"OffTime"
,
StringValue
(
"ns3::ConstantRandomVariable[Constant=0]"
));
70
ApplicationContainer
clientApps;
71
72
// Create an on/off app sending packets
73
AddressValue
remoteAddress (
InetSocketAddress
(grid.
GetIpv4Address
(xSize-1,ySize-1), 1000));
74
clientHelper.
SetAttribute
(
"Remote"
, remoteAddress);
75
clientApps.
Add
(clientHelper.
Install
(grid.
GetNode
(0,0)));
76
77
clientApps.
Start
(
Seconds
(0.0));
78
clientApps.
Stop
(
Seconds
(1.5));
79
80
// Set the bounding box for animation
81
grid.
BoundingBox
(1, 1, 100, 100);
82
83
// Create the animation object and configure for specified output
84
AnimationInterface
anim (animFile);
85
86
// Set up the actual simulation
87
Ipv4GlobalRoutingHelper::PopulateRoutingTables
();
88
89
Simulator::Run
();
90
Simulator::Destroy
();
91
return
0;
92
}
src
netanim
examples
grid-animation.cc
Generated on Tue Nov 13 2012 10:32:19 for ns-3 by
1.8.1.2