assign positions and mobility models to nodes. More...
#include <mobility-helper.h>
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< PositionAllocator > | m_position |
assign positions and mobility models to nodes.
MobilityHelper::Install is the most important method here.
Definition at line 40 of file mobility-helper.h.
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.
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] |
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] |
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] |
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 |
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).
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().
"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).
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.
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 () | |||
) |
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 () | |||
) |
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.
allocator | allocate initial node positions |
Definition at line 44 of file mobility-helper.cc.
References m_position.
ObjectFactory ns3::MobilityHelper::m_mobility [private] |
Definition at line 215 of file mobility-helper.h.
Referenced by GetMobilityModelType(), Install(), MobilityHelper(), and SetMobilityModel().
std::vector<Ptr<MobilityModel> > ns3::MobilityHelper::m_mobilityStack [private] |
Definition at line 214 of file mobility-helper.h.
Referenced by Install(), PopReferenceMobilityModel(), and PushReferenceMobilityModel().
Ptr<PositionAllocator> ns3::MobilityHelper::m_position [private] |
Definition at line 216 of file mobility-helper.h.
Referenced by Install(), MobilityHelper(), and SetPositionAllocator().