samples/main-ns2-mob.cc
author Tom Henderson <tomh@tomh.org>
Thu, 02 Jul 2009 21:57:00 -0700
changeset 4646 c25ca2e38845
parent 4592 0001fabf058c
permissions -rw-r--r--
some fixes to the manual for IPv4 refactoring
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ();
4592
0001fabf058c fix mingw regression tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3816
diff changeset
    37
0001fabf058c fix mingw regression tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3816
diff changeset
    38
  os.close ();
3785
c81a20edffab add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
  return 0;
c81a20edffab add ns2 mobility sample.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
}