ns-3
ns3::MobilityHelper Class Reference

Helper class used to assign positions and mobility models to nodes. More...

#include <mobility-helper.h>

List of all members.

Public Member Functions

 MobilityHelper ()
void SetPositionAllocator (Ptr< PositionAllocator > allocator)
void SetPositionAllocator (std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
void SetMobilityModel (std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
void PushReferenceMobilityModel (Ptr< Object > reference)
void PushReferenceMobilityModel (std::string referenceName)
void PopReferenceMobilityModel (void)
std::string GetMobilityModelType (void) const
void Install (Ptr< Node > node) const
 "Layout" a single node according to the current position allocator type.
void Install (std::string nodeName) const
 "Layout" a single node according to the current position allocator type.
void Install (NodeContainer container) const
 Layout a collection of nodes according to the current position allocator type.
void InstallAll (void)

Static Public Member Functions

static void EnableAscii (std::ostream &os, uint32_t nodeid)
static void EnableAscii (std::ostream &os, NodeContainer n)
static void EnableAsciiAll (std::ostream &os)

Detailed Description

Helper class used to assign positions and mobility models to nodes.

MobilityHelper::Install is the most important method here.


Constructor & Destructor Documentation

Construct a Mobility Helper which is used to make life easier when working with mobility models.

References ns3::ObjectFactory::SetTypeId().


Member Function Documentation

void ns3::MobilityHelper::EnableAscii ( std::ostream &  os,
uint32_t  nodeid 
) [static]
Parameters:
osoutput stream
nodeidthe id of the node to generate ascii output for.

Enable ascii output on the mobility model associated to the specified nodeid and dump that to the specified stdc++ output stream.

References ns3::Config::ConnectWithoutContext().

Referenced by EnableAscii(), and EnableAsciiAll().

void ns3::MobilityHelper::EnableAscii ( std::ostream &  os,
NodeContainer  n 
) [static]
Parameters:
osoutput stream
nnode container

Enable ascii output on the mobility model associated each of the nodes in the input container and dump that to the specified stdc++ output stream.

References ns3::NodeContainer::Begin(), EnableAscii(), and ns3::NodeContainer::End().

void ns3::MobilityHelper::EnableAsciiAll ( std::ostream &  os) [static]
Parameters:
osoutput stream

Enable ascii output on the mobility model associated every node in the system and dump that to the specified stdc++ output stream.

References EnableAscii(), and ns3::NodeContainer::GetGlobal().

std::string ns3::MobilityHelper::GetMobilityModelType ( void  ) const
Returns:
a string which contains the TypeId of the currently-selected mobility model.

References ns3::TypeId::GetName(), and ns3::ObjectFactory::GetTypeId().

void ns3::MobilityHelper::Install ( Ptr< Node node) const

"Layout" a single node according to the current position allocator type.

This method creates an instance of a ns3::MobilityModel subclass (the type of which was set with MobilityHelper::SetMobilityModel), aggregates it to the provided node, and sets an initial position based on the current position allocator (set through MobilityHelper::SetPositionAllocator).

Parameters:
nodeThe node to "layout."

References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), ns3::TypeId::GetName(), ns3::PositionAllocator::GetNext(), ns3::Object::GetObject(), ns3::ObjectFactory::GetTypeId(), NS_FATAL_ERROR, NS_LOG_DEBUG, and ns3::MobilityModel::SetPosition().

Referenced by Install(), and InstallAll().

void ns3::MobilityHelper::Install ( std::string  nodeName) const

"Layout" a single node according to the current position allocator type.

This method creates an instance of a ns3::MobilityModel subclass (the type of which was set with MobilityHelper::SetMobilityModel), aggregates it to the provided node, and sets an initial position based on the current position allocator (set through MobilityHelper::SetPositionAllocator).

Parameters:
nodeNameThe name of the node to "layout."

References Install().

void ns3::MobilityHelper::Install ( NodeContainer  container) const

Layout a collection of nodes according to the current position allocator type.

For each node in the provided NodeContainer, this method creates an instance of a ns3::MobilityModel subclass (the type of which was set with MobilityHelper::SetMobilityModel), aggregates it to the node, and sets an initial position based on the current position allocator (set through MobilityHelper::SetPositionAllocator).

Parameters:
containerThe set of nodes to layout.

References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), and Install().

Perform the work of MobilityHelper::Install on _all_ nodes which exist in the simulation.

References ns3::NodeContainer::GetGlobal(), and Install().

Remove the top item from the top of the stack of "reference mobility models".

Parameters:
referenceitem to push.

Push an item on the top of the stack of "reference mobility models". The input item should be a node instance to which a mobility model has already been aggregated (usually by a call to Install).

If this stack is not empty when MobilityHelper::Install is called, the model from the top of the stack is used to create a ns3::HierarchicalMobilityModel to make the newly-created models define their positions relative to that of the parent mobility model.

This method is typically used to create hierarchical mobility patterns and positions by starting with the large-scale mobility features, and, then, defining the smaller-scale movements relative to a few reference points in the large-scale model.

References ns3::Object::GetObject().

void ns3::MobilityHelper::PushReferenceMobilityModel ( std::string  referenceName)
Parameters:
referenceNamenamed item to push.

Push an item on the top of the stack of "reference mobility models". The input item should be a node instance to which a mobility model has already been aggregated (usually by a call to Install).

If this stack is not empty when MobilityHelper::Install is called, the model from the top of the stack is used to create a ns3::HierarchicalMobilityModel to make the newly-created models define their positions relative to that of the parent mobility model.

This method is typically used to create hierarchical mobility patterns and positions by starting with the large-scale mobility features, and, then, defining the smaller-scale movements relative to a few reference points in the large-scale model.

void ns3::MobilityHelper::SetMobilityModel ( std::string  type,
std::string  n1 = "",
const AttributeValue v1 = EmptyAttributeValue (),
std::string  n2 = "",
const AttributeValue v2 = EmptyAttributeValue (),
std::string  n3 = "",
const AttributeValue v3 = EmptyAttributeValue (),
std::string  n4 = "",
const AttributeValue v4 = EmptyAttributeValue (),
std::string  n5 = "",
const AttributeValue v5 = EmptyAttributeValue (),
std::string  n6 = "",
const AttributeValue v6 = EmptyAttributeValue (),
std::string  n7 = "",
const AttributeValue v7 = EmptyAttributeValue (),
std::string  n8 = "",
const AttributeValue v8 = EmptyAttributeValue (),
std::string  n9 = "",
const AttributeValue v9 = EmptyAttributeValue () 
)
Parameters:
typethe type of mobility model to use.
n1the name of the attribute to set in the mobility model.
v1the value of the attribute to set in the mobility model.
n2the name of the attribute to set in the mobility model.
v2the value of the attribute to set in the mobility model.
n3the name of the attribute to set in the mobility model.
v3the value of the attribute to set in the mobility model.
n4the name of the attribute to set in the mobility model.
v4the value of the attribute to set in the mobility model.
n5the name of the attribute to set in the mobility model.
v5the value of the attribute to set in the mobility model.
n6the name of the attribute to set in the mobility model.
v6the value of the attribute to set in the mobility model.
n7the name of the attribute to set in the mobility model.
v7the value of the attribute to set in the mobility model.
n8the name of the attribute to set in the mobility model.
v8the value of the attribute to set in the mobility model.
n9the name of the attribute to set in the mobility model.
v9the value of the attribute to set in the mobility model.

Calls to MobilityHelper::Install will create an instance of a matching mobility model for each node.

References ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

Set the position allocator which will be used to allocate the initial position of every node initialized during MobilityModel::Install.

Parameters:
allocatorallocate initial node positions
void ns3::MobilityHelper::SetPositionAllocator ( std::string  type,
std::string  n1 = "",
const AttributeValue v1 = EmptyAttributeValue (),
std::string  n2 = "",
const AttributeValue v2 = EmptyAttributeValue (),
std::string  n3 = "",
const AttributeValue v3 = EmptyAttributeValue (),
std::string  n4 = "",
const AttributeValue v4 = EmptyAttributeValue (),
std::string  n5 = "",
const AttributeValue v5 = EmptyAttributeValue (),
std::string  n6 = "",
const AttributeValue v6 = EmptyAttributeValue (),
std::string  n7 = "",
const AttributeValue v7 = EmptyAttributeValue (),
std::string  n8 = "",
const AttributeValue v8 = EmptyAttributeValue (),
std::string  n9 = "",
const AttributeValue v9 = EmptyAttributeValue () 
)
Parameters:
typethe type of mobility model to use.
n1the name of the attribute to set in the mobility model.
v1the value of the attribute to set in the mobility model.
n2the name of the attribute to set in the mobility model.
v2the value of the attribute to set in the mobility model.
n3the name of the attribute to set in the mobility model.
v3the value of the attribute to set in the mobility model.
n4the name of the attribute to set in the mobility model.
v4the value of the attribute to set in the mobility model.
n5the name of the attribute to set in the mobility model.
v5the value of the attribute to set in the mobility model.
n6the name of the attribute to set in the mobility model.
v6the value of the attribute to set in the mobility model.
n7the name of the attribute to set in the mobility model.
v7the value of the attribute to set in the mobility model.
n8the name of the attribute to set in the mobility model.
v8the value of the attribute to set in the mobility model.
n9the name of the attribute to set in the mobility model.
v9the value of the attribute to set in the mobility model.

References ns3::ObjectFactory::Create(), ns3::Object::GetObject(), ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().


The documentation for this class was generated from the following files: