A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::SteadyStateRandomWaypointMobilityModel Class Reference

Steady-state random waypoint mobility model. More...

#include <steady-state-random-waypoint-mobility-model.h>

+ Inheritance diagram for ns3::SteadyStateRandomWaypointMobilityModel:

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::MobilityModel
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Protected Member Functions

virtual void DoInitialize (void)
 
- Protected Member Functions inherited from ns3::MobilityModel
void NotifyCourseChange (void) const
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Private Member Functions

void BeginWalk (void)
 
virtual int64_t DoAssignStreams (int64_t)
 
virtual Vector DoGetPosition (void) const
 
virtual Vector DoGetVelocity (void) const
 
void DoInitializePrivate (void)
 
virtual void DoSetPosition (const Vector &position)
 
void Start (void)
 
void SteadyStateBeginWalk (const Vector &destination)
 

Private Attributes

bool alreadyStarted
 
EventId m_event
 
ConstantVelocityHelper m_helper
 
double m_maxPause
 
double m_maxSpeed
 
double m_maxX
 
double m_maxY
 
double m_minPause
 
double m_minSpeed
 
double m_minX
 
double m_minY
 
Ptr< UniformRandomVariablem_pause
 
Ptr
< RandomRectanglePositionAllocator
m_position
 
Ptr< UniformRandomVariablem_speed
 
Ptr< UniformRandomVariablem_u_r
 
Ptr< UniformRandomVariablem_x
 
Ptr< UniformRandomVariablem_x1_r
 
Ptr< UniformRandomVariablem_x2_r
 
Ptr< UniformRandomVariablem_y
 
Ptr< UniformRandomVariablem_y1_r
 
Ptr< UniformRandomVariablem_y2_r
 

Additional Inherited Members

- Public Member Functions inherited from ns3::MobilityModel
int64_t AssignStreams (int64_t stream)
 
double GetDistanceFrom (Ptr< const MobilityModel > position) const
 
Vector GetPosition (void) const
 
double GetRelativeSpeed (Ptr< const MobilityModel > other) const
 
Vector GetVelocity (void) const
 
void SetPosition (const Vector &position)
 
- Public Member Functions inherited from ns3::Object
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Detailed Description

Steady-state random waypoint mobility model.

This model based on random waypoint mobility (RWM) model for case when speed, pause and position are uniformly distributed random variables. The difference is that the initial values of this parameters are not from uniform distribution but from stationary distribution of RWM model. The implementation of this model is 2d-specific and with nonzero nodes speeds.

Based on NS-2 implementation by Toilers Research Group – Colorado School of Mines (http://toilers.mines.edu). The papers related to this code are: W. Navidi and T. Camp, Stationary Distributions for the Random Waypoint Mobility Model, IEEE Transactions on Mobile Computing, vol. 3, no. 1, pp. 99-108, January-March 2004. W. Navidi, T. Camp, and N. Bauer, Improving the Accuracy of Random Waypoint Simulations Through Steady-State Initialization, Proceedings of the 15th International Conference on Modeling and Simulation (MS '04), pp. 319-326, March 2004.

Config Paths

ns3::SteadyStateRandomWaypointMobilityModel is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/$ns3::MobilityModel/$ns3::SteadyStateRandomWaypointMobilityModel

Attributes

  • MinSpeed: Minimum speed value, [m/s]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.3
    • Flags: construct write read
  • MaxSpeed: Maximum speed value, [m/s]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.7
    • Flags: construct write read
  • MinPause: Minimum pause value, [s]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read
  • MaxPause: Maximum pause value, [s]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read
  • MinX: Minimum X value of traveling region, [m]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • MaxX: Maximum X value of traveling region, [m]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • MinY: Minimum Y value of traveling region, [m]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • MaxY: Maximum Y value of traveling region, [m]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read

Attributes defined in parent class ns3::MobilityModel

  • Position: The current position of the mobility model.
  • Velocity: The current velocity of the mobility model.

No TraceSources are defined for this type.

TraceSources defined in parent class ns3::MobilityModel

  • CourseChange: The value of the position and/or velocity vector changed

Definition at line 52 of file steady-state-random-waypoint-mobility-model.h.

Member Function Documentation

int64_t ns3::SteadyStateRandomWaypointMobilityModel::DoAssignStreams ( int64_t  start)
privatevirtual

The default implementation does nothing but return the passed-in parameter. Subclasses using random variables are expected to override this.

Reimplemented from ns3::MobilityModel.

Definition at line 277 of file steady-state-random-waypoint-mobility-model.cc.

References ns3::RandomVariableStream::SetStream().

Vector ns3::SteadyStateRandomWaypointMobilityModel::DoGetPosition ( void  ) const
privatevirtual
Returns
the current position.

Concrete subclasses of this base class must implement this method.

Implements ns3::MobilityModel.

Definition at line 256 of file steady-state-random-waypoint-mobility-model.cc.

Vector ns3::SteadyStateRandomWaypointMobilityModel::DoGetVelocity ( void  ) const
privatevirtual
Returns
the current velocity.

Concrete subclasses of this base class must implement this method.

Implements ns3::MobilityModel.

Definition at line 272 of file steady-state-random-waypoint-mobility-model.cc.

void ns3::SteadyStateRandomWaypointMobilityModel::DoInitialize ( void  )
protectedvirtual

This method is called only once by Object::Initialize. If the user calls Object::Initialize multiple times, DoInitialize is called only the first time.

Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject and AggregateObject from within this method.

Reimplemented from ns3::Object.

Definition at line 96 of file steady-state-random-waypoint-mobility-model.cc.

References ns3::Object::DoInitialize().

void ns3::SteadyStateRandomWaypointMobilityModel::DoSetPosition ( const Vector position)
privatevirtual
Parameters
positionthe position to set.

Concrete subclasses of this base class must implement this method.

Implements ns3::MobilityModel.

Definition at line 262 of file steady-state-random-waypoint-mobility-model.cc.

References ns3::Simulator::Remove(), and ns3::Simulator::ScheduleNow().


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