Helper class which can read ns-2 movement files and configure nodes mobility. More...
#include <ns2-mobility-helper.h>
Collaboration diagram for ns3::Ns2MobilityHelper:Classes | |
| class | ObjectStore |
| a class to hold input objects internally More... | |
Public Member Functions | |
| Ns2MobilityHelper (std::string filename) | |
| void | Install (void) const |
| Read the ns2 trace file and configure the movement patterns of all nodes contained in the global ns3::NodeList whose nodeId is matches the nodeId of the nodes in the trace file. More... | |
| template<typename T > | |
| void | Install (T begin, T end) const |
Private Member Functions | |
| void | ConfigNodesMovements (const ObjectStore &store) const |
| Parses ns-2 mobility file to create ns-3 mobility events. More... | |
| Ptr< ConstantVelocityMobilityModel > | GetMobilityModel (std::string idString, const ObjectStore &store) const |
| Get or create a ConstantVelocityMobilityModel corresponding to idString. More... | |
Private Attributes | |
| std::string | m_filename |
| filename of file containing ns-2 mobility trace More... | |
Helper class which can read ns-2 movement files and configure nodes mobility.
This implementation is based on the ns2 movement documentation of ns2 as described in http://www.isi.edu/nsnam/ns/doc/node172.html
Valid trace files use the following ns2 statements:
$node set X_ x1 $node set Y_ y1 $node set Z_ z1 $ns at $time $node setdest x2 y2 speed $ns at $time $node set X_ x1 $ns at $time $node set Y_ Y1 $ns at $time $node set Z_ Z1
Note that initial position statements may also appear at the end of the mobility file like this:
$ns at $time $node setdest x2 y2 speed $ns at $time $node set X_ x1 $ns at $time $node set Y_ Y1 $ns at $time $node set Z_ Z1 $node set X_ x1 $node set Y_ y1 $node set Z_ z1
The following tools are known to support this format:
See usage example in examples/mobility/ns2-mobility-trace.cc
Definition at line 76 of file ns2-mobility-helper.h.
| ns3::Ns2MobilityHelper::Ns2MobilityHelper | ( | std::string | filename | ) |
| filename | filename of file which contains the ns2 movement trace. |
Definition at line 185 of file ns2-mobility-helper.cc.
References m_filename, and NS_FATAL_ERROR.
|
private |
Parses ns-2 mobility file to create ns-3 mobility events.
| store | Object store containing ns-3 mobility models |
Definition at line 215 of file ns2-mobility-helper.cc.
References ns3::ParseResult::dvals, GetMobilityModel(), ns3::GetNodeIdInt(), ns3::GetNodeIdString(), ns3::IsNumber(), ns3::IsSchedMobilityPos(), ns3::IsSchedSetPos(), ns3::IsSetInitialPos(), m_filename, ns3::DestinationPoint::m_finalPosition, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_LOGIC, NS_LOG_WARN, ns3::ParseNs2Line(), ns3::SetInitialPosition(), ns3::SetMovement(), ns3::SetSchedPosition(), and ns3::ParseResult::tokens.
Referenced by Install().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Get or create a ConstantVelocityMobilityModel corresponding to idString.
| idString | string name for a node |
| store | Object store containing ns-3 mobility models |
Definition at line 193 of file ns2-mobility-helper.cc.
References ns3::Ns2MobilityHelper::ObjectStore::Get().
Referenced by ConfigNodesMovements().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::Ns2MobilityHelper::Install | ( | void | ) | const |
Read the ns2 trace file and configure the movement patterns of all nodes contained in the global ns3::NodeList whose nodeId is matches the nodeId of the nodes in the trace file.
Definition at line 811 of file ns2-mobility-helper.cc.
References ns3::NodeList::Begin(), and ns3::NodeList::End().
Referenced by Ns2MobilityHelperTest::DoRun(), and VanetRoutingExperiment::SetupAdhocMobilityNodes().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::Ns2MobilityHelper::Install | ( | T | begin, |
| T | end | ||
| ) | const |
| begin | an iterator which points to the start of the input object array. |
| end | an iterator which points to the end of the input object array. |
Read the ns2 trace file and configure the movement patterns of all input objects. Each input object is identified by a unique node id which reflects the index of the object in the input array.
Definition at line 142 of file ns2-mobility-helper.h.
References ConfigNodesMovements().
Here is the call graph for this function:
|
private |
filename of file containing ns-2 mobility trace
Definition at line 133 of file ns2-mobility-helper.h.
Referenced by ConfigNodesMovements(), and Ns2MobilityHelper().