Steady-state random waypoint mobility model. More...
#include <steady-state-random-waypoint-mobility-model.h>
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< UniformRandomVariable > | m_pause |
Ptr < RandomRectanglePositionAllocator > | m_position |
Ptr< UniformRandomVariable > | m_speed |
Ptr< UniformRandomVariable > | m_u_r |
Ptr< UniformRandomVariable > | m_x |
Ptr< UniformRandomVariable > | m_x1_r |
Ptr< UniformRandomVariable > | m_x2_r |
Ptr< UniformRandomVariable > | m_y |
Ptr< UniformRandomVariable > | m_y1_r |
Ptr< UniformRandomVariable > | m_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 |
SimpleRefCount & | operator= (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) |
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.
ns3::SteadyStateRandomWaypointMobilityModel is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 52 of file steady-state-random-waypoint-mobility-model.h.
|
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().
|
privatevirtual |
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.
|
privatevirtual |
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.
|
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().
|
privatevirtual |
position | the 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().