ns3::MobilityHelper Class Reference

assign positions and mobility models to nodes. More...

#include <mobility-helper.h>

Collaboration diagram for ns3::MobilityHelper:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 MobilityHelper ()
 ~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 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 (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)

Static Private Member Functions

static void CourseChanged (std::ostream *os, Ptr< const MobilityModel > mobility)

Private Attributes

std::vector< Ptr< MobilityModel > > m_mobilityStack
ObjectFactory m_mobility
Ptr< PositionAllocatorm_position

Detailed Description

assign positions and mobility models to nodes.

MobilityHelper::Install is the most important method here.

Definition at line 40 of file mobility-helper.h.


Constructor & Destructor Documentation

ns3::MobilityHelper::MobilityHelper (  ) 

Definition at line 34 of file mobility-helper.cc.

References m_mobility, m_position, and ns3::ObjectFactory::SetTypeId().

ns3::MobilityHelper::~MobilityHelper (  ) 

Definition at line 41 of file mobility-helper.cc.


Member Function Documentation

void ns3::MobilityHelper::CourseChanged ( std::ostream *  os,
Ptr< const MobilityModel mobility 
) [static, private]

Definition at line 185 of file mobility-helper.cc.

References ns3::DoRound(), ns3::Now(), ns3::Vector::x, ns3::Vector::y, and ns3::Vector::z.

Referenced by EnableAscii().

void ns3::MobilityHelper::EnableAscii ( std::ostream &  os,
NodeContainer  n 
) [static]
Parameters:
os output stream
n node 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.

Definition at line 218 of file mobility-helper.cc.

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

void ns3::MobilityHelper::EnableAscii ( std::ostream &  os,
uint32_t  nodeid 
) [static]
Parameters:
os output stream
nodeid the 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.

Definition at line 210 of file mobility-helper.cc.

References ns3::Config::ConnectWithoutContext(), CourseChanged(), and ns3::MakeBoundCallback().

Referenced by EnableAscii(), and EnableAsciiAll().

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

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

Definition at line 226 of file mobility-helper.cc.

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.

Definition at line 112 of file mobility-helper.cc.

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

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:
container The set of nodes to layout.

Definition at line 151 of file mobility-helper.cc.

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

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:
node The node to "layout."

Definition at line 118 of file mobility-helper.cc.

References ns3::ObjectFactory::Create(), ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), m_mobility, m_mobilityStack, m_position, NS_FATAL_ERROR, and NS_LOG_DEBUG.

Referenced by Install(), and InstallAll().

void ns3::MobilityHelper::InstallAll ( void   ) 

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

Definition at line 160 of file mobility-helper.cc.

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

void ns3::MobilityHelper::PopReferenceMobilityModel ( void   ) 

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

Definition at line 105 of file mobility-helper.cc.

References m_mobilityStack.

void ns3::MobilityHelper::PushReferenceMobilityModel ( Ptr< Object reference  ) 
Parameters:
reference 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 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.

Definition at line 99 of file mobility-helper.cc.

References m_mobilityStack.

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:
type the type of mobility model to use.
n1 the name of the attribute to set in the mobility model.
v1 the value of the attribute to set in the mobility model.
n2 the name of the attribute to set in the mobility model.
v2 the value of the attribute to set in the mobility model.
n3 the name of the attribute to set in the mobility model.
v3 the value of the attribute to set in the mobility model.
n4 the name of the attribute to set in the mobility model.
v4 the value of the attribute to set in the mobility model.
n5 the name of the attribute to set in the mobility model.
v5 the value of the attribute to set in the mobility model.
n6 the name of the attribute to set in the mobility model.
v6 the value of the attribute to set in the mobility model.
n7 the name of the attribute to set in the mobility model.
v7 the value of the attribute to set in the mobility model.
n8 the name of the attribute to set in the mobility model.
v8 the value of the attribute to set in the mobility model.
n9 the name of the attribute to set in the mobility model.
v9 the 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.

Definition at line 75 of file mobility-helper.cc.

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

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:
type the type of mobility model to use.
n1 the name of the attribute to set in the mobility model.
v1 the value of the attribute to set in the mobility model.
n2 the name of the attribute to set in the mobility model.
v2 the value of the attribute to set in the mobility model.
n3 the name of the attribute to set in the mobility model.
v3 the value of the attribute to set in the mobility model.
n4 the name of the attribute to set in the mobility model.
v4 the value of the attribute to set in the mobility model.
n5 the name of the attribute to set in the mobility model.
v5 the value of the attribute to set in the mobility model.
n6 the name of the attribute to set in the mobility model.
v6 the value of the attribute to set in the mobility model.
n7 the name of the attribute to set in the mobility model.
v7 the value of the attribute to set in the mobility model.
n8 the name of the attribute to set in the mobility model.
v8 the value of the attribute to set in the mobility model.
n9 the name of the attribute to set in the mobility model.
v9 the value of the attribute to set in the mobility model.

Definition at line 49 of file mobility-helper.cc.

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

void ns3::MobilityHelper::SetPositionAllocator ( Ptr< PositionAllocator allocator  ) 

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

Parameters:
allocator allocate initial node positions

Definition at line 44 of file mobility-helper.cc.

References m_position.


Member Data Documentation

Definition at line 215 of file mobility-helper.h.

Referenced by GetMobilityModelType(), Install(), MobilityHelper(), and SetMobilityModel().

Definition at line 216 of file mobility-helper.h.

Referenced by Install(), MobilityHelper(), and SetPositionAllocator().


The documentation for this class was generated from the following files:
Generated on Thu Dec 3 14:11:32 2009 for NS-3 by  doxygen 1.6.3