diff --git a/src/mobility/examples/bonnmotion-ns2-example.cc b/src/mobility/examples/bonnmotion-ns2-example.cc new file mode 100644 index 000000000..71ee8d5a1 --- /dev/null +++ b/src/mobility/examples/bonnmotion-ns2-example.cc @@ -0,0 +1,65 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright 2012 Eric Gamess + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "ns3/core-module.h" +#include "ns3/mobility-module.h" + +using namespace ns3; + +void showPosition (Ptr node, double deltaTime) +{ + uint32_t nodeId = node->GetId (); + Ptr mobModel = node->GetObject (); + Vector3D pos = mobModel->GetPosition (); + Vector3D speed = mobModel->GetVelocity (); + std::cout << "At " << Simulator::Now ().GetSeconds () << " node " << nodeId + << ": Position(" << pos.x << ", " << pos.y << ", " << pos.z + << "); Speed(" << speed.x << ", " << speed.y << ", " << speed.z + << ")" << std::endl; + + Simulator::Schedule (Seconds (deltaTime), &showPosition, node, deltaTime); +} + +int main (int argc, char *argv[]) +{ + std::cout.precision (2); + std::cout.setf (std::ios::fixed); + + double deltaTime = 100; + std::string traceFile = "src/mobility/examples/bonnmotion.ns_movements"; + + CommandLine cmd; + cmd.AddValue ("traceFile", "Ns2 movement trace file", traceFile); + cmd.AddValue ("deltaTime", "time interval (s) between updates (default 100)", deltaTime); + cmd.Parse (argc, argv); + + Ptr n0 = CreateObject (); + + Ns2MobilityHelper ns2 = Ns2MobilityHelper (traceFile); + ns2.Install (); + + Simulator::Schedule (Seconds (0.0), &showPosition, n0, deltaTime); + + Simulator::Stop (Seconds (1000.0)); + Simulator::Run (); + Simulator::Destroy (); + return 0; +} + + diff --git a/src/mobility/examples/bonnmotion.ns_movements b/src/mobility/examples/bonnmotion.ns_movements new file mode 100644 index 000000000..85a65e728 --- /dev/null +++ b/src/mobility/examples/bonnmotion.ns_movements @@ -0,0 +1,13 @@ +$node_(0) set X_ 329.82427591159615 +$node_(0) set Y_ 66.06016140869389 +$ns_ at 0.0 "$node_(0) setdest 378.37542668840655 45.5928630482057 0.5734697219630068" +# $ns_ at 91.87745989691848 "$node_(0) setdest 378.37542668840655 45.5928630482057 0.0" +$ns_ at 119.3714959084341 "$node_(0) setdest 286.6872580249029 142.51631507750932 1.332870521776484" +# $ns_ at 219.47118355124258 "$node_(0) setdest 286.6872580249029 142.51631507750932 0.0" +$ns_ at 276.35353365269884 "$node_(0) setdest 246.3202938897401 107.57197005511536 0.7008963309037789" +# $ns_ at 352.52885253886916 "$node_(0) setdest 246.3202938897401 107.57197005511536 0.0" +$ns_ at 354.65588903148546 "$node_(0) setdest 27.380316338943658 186.9421090132031 1.0371865939384077" +# $ns_ at 579.1889287677668 "$node_(0) setdest 27.380316338943658 186.9421090132031 0.0" +$ns_ at 594.0371861260464 "$node_(0) setdest 241.0193442850251 42.45159418309071 0.9183517582470467" +# $ns_ at 874.8806114578338 "$node_(0) setdest 241.0193442850251 42.45159418309071 0.0" +$ns_ at 884.7739898066011 "$node_(0) setdest 309.59230940611315 37.21622103424196 0.5968489961030224" diff --git a/src/mobility/examples/bonnmotion.ns_params b/src/mobility/examples/bonnmotion.ns_params new file mode 100644 index 000000000..c222d12ed --- /dev/null +++ b/src/mobility/examples/bonnmotion.ns_params @@ -0,0 +1,4 @@ +set val(x) 420.0 +set val(y) 220.0 +set val(nn) 1 +set val(duration) 1000.0 diff --git a/src/mobility/examples/bonnmotion.params b/src/mobility/examples/bonnmotion.params new file mode 100644 index 000000000..7f9fd48c4 --- /dev/null +++ b/src/mobility/examples/bonnmotion.params @@ -0,0 +1,12 @@ +model=RandomWaypoint +ignore=3600.0 +randomSeed=1347984564833 +x=400.0 +y=200.0 +duration=1000.0 +nn=1 +circular=false +dim=3 +minspeed=0.5 +maxspeed=1.5 +maxpause=60.0 diff --git a/src/mobility/examples/wscript b/src/mobility/examples/wscript index 8ad97630e..264c16383 100644 --- a/src/mobility/examples/wscript +++ b/src/mobility/examples/wscript @@ -19,3 +19,7 @@ def build(bld): obj = bld.create_ns3_program('ns2-mobility-trace', ['core', 'mobility']) obj.source = 'ns2-mobility-trace.cc' + + obj = bld.create_ns3_program('bonnmotion-ns2-example', + ['core', 'mobility']) + obj.source = 'bonnmotion-ns2-example.cc'