author | gjc@inescporto.pt |
Wed, 17 Dec 2008 12:42:02 -0800 | |
changeset 4029 | 4267fd454004 |
parent 3816 | edd4928b2046 |
child 4592 | 0001fabf058c |
permissions | -rw-r--r-- |
3785
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
#include "ns3/core-module.h" |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
#include "ns3/mobility-module.h" |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
#include "ns3/simulator-module.h" |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
#include "ns3/helper-module.h" |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
#include "ns3/mobility-module.h" |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
#include <iostream> |
3816
edd4928b2046
remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3785
diff
changeset
|
7 |
#include <fstream> |
3785
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
|
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
using namespace ns3; |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
|
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
static void |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
CourseChange (std::ostream *os, std::string foo, Ptr<const MobilityModel> mobility) |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
{ |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
Vector pos = mobility->GetPosition (); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
Vector vel = mobility->GetVelocity (); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
*os << Simulator::Now () << " POS: x=" << pos.x << ", y=" << pos.y |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
<< ", z=" << pos.z << "; VEL:" << vel.x << ", y=" << vel.y |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
<< ", z=" << vel.z << std::endl; |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
} |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
|
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
int main (int argc, char *argv[]) |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
{ |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
Ns2MobilityHelper mobility(argv[1]); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
std::ofstream os; |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
os.open (argv[2]); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
NodeContainer stas; |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
stas.Create (1); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
|
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
mobility.Install (); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
|
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
31 |
Config::Connect ("/NodeList/*/$ns3::MobilityModel/CourseChange", |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
32 |
MakeBoundCallback (&CourseChange, &os)); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
33 |
|
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
34 |
Simulator::Stop (Seconds (10.0)); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
35 |
Simulator::Run (); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
36 |
Simulator::Destroy (); |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
37 |
return 0; |
c81a20edffab
add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
38 |
} |