StaticMobilityModel -> ConstantPositionMobilityModel, StaticSpeedMobilityModel -> ConstantVelocityMobilityModel

This commit is contained in:
Mathieu Lacage
2009-03-10 14:18:32 +01:00
parent 7f8370b67e
commit cddb3bfe23
18 changed files with 58 additions and 59 deletions

View File

@@ -120,7 +120,7 @@ main (int argc, char *argv[])
"Bounds", RectangleValue (Rectangle (-50, 50, -50, 50)));
mobility.Install (wifiStaNodes);
mobility.SetMobilityModel ("ns3::StaticMobilityModel");
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (wifiApNode);
InternetStackHelper stack;

View File

@@ -128,7 +128,7 @@ Experiment::Run (const WifiHelper &wifi, const YansWifiPhyHelper &wifiPhy, const
positionAlloc->Add (Vector (0.0, 0.0, 0.0));
positionAlloc->Add (Vector (5.0, 0.0, 0.0));
mobility.SetPositionAllocator (positionAlloc);
mobility.SetMobilityModel ("ns3::StaticMobilityModel");
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (c);

View File

@@ -119,7 +119,7 @@ int main (int argc, char *argv[])
// setup the AP.
mobility.SetMobilityModel ("ns3::StaticMobilityModel");
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (backboneNodes.Get (i));
wifi.SetMac ("ns3::NqapWifiMac",
"Ssid", SsidValue (ssid),

View File

@@ -32,7 +32,7 @@ int main (int argc, char *argv[])
// each object will be attached a static position.
// i.e., once set by the "position allocator", the
// position will never change.
mobility.SetMobilityModel ("ns3::StaticMobilityModel");
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
// finalize the setup by attaching to each object
// in the input array a position and initializing

View File

@@ -18,7 +18,7 @@
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
*/
#include "ns3/propagation-loss-model.h"
#include "ns3/static-mobility-model.h"
#include "ns3/constant-position-mobility-model.h"
#include "ns3/config.h"
#include "ns3/string.h"
@@ -27,8 +27,8 @@ using namespace ns3;
static void
PrintOne (double minTxpower, double maxTxpower, double stepTxpower, double min, double max, double step)
{
Ptr<StaticMobilityModel> a = CreateObject<StaticMobilityModel> ();
Ptr<StaticMobilityModel> b = CreateObject<StaticMobilityModel> ();
Ptr<ConstantPositionMobilityModel> a = CreateObject<ConstantPositionMobilityModel> ();
Ptr<ConstantPositionMobilityModel> b = CreateObject<ConstantPositionMobilityModel> ();
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
Ptr<PropagationLossModel> model = log;

View File

@@ -29,7 +29,7 @@ int main (int argc, char *argv[])
"X", StringValue ("100.0"),
"Y", StringValue ("100.0"),
"Rho", StringValue ("Uniform:0:30"));
mobility.SetMobilityModel ("ns3::StaticMobilityModel");
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (c);
Config::Connect ("/NodeList/*/$ns3::MobilityModelNotifier/CourseChange",

View File

@@ -22,7 +22,6 @@
#include "propagation-loss-model.h"
#include "ns3/log.h"
#include "ns3/mobility-model.h"
#include "ns3/static-mobility-model.h"
#include "ns3/boolean.h"
#include "ns3/double.h"
#include <math.h>

View File

@@ -7,7 +7,7 @@
#include "yans-error-rate-model.h"
#include "ns3/ptr.h"
#include "ns3/mobility-model.h"
#include "ns3/static-mobility-model.h"
#include "ns3/constant-position-mobility-model.h"
#include "ns3/vector.h"
#include "ns3/packet.h"
#include "ns3/simulator.h"
@@ -75,9 +75,9 @@ PsrExperiment::Run (struct PsrExperiment::Input input)
m_output.received = 0;
m_input = input;
Ptr<MobilityModel> posTx = CreateObject<StaticMobilityModel> ();
Ptr<MobilityModel> posTx = CreateObject<ConstantPositionMobilityModel> ();
posTx->SetPosition (Vector (0.0, 0.0, 0.0));
Ptr<MobilityModel> posRx = CreateObject<StaticMobilityModel> ();
Ptr<MobilityModel> posRx = CreateObject<ConstantPositionMobilityModel> ();
posRx->SetPosition (Vector (m_input.distance, 0.0, 0.0));
Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
@@ -207,11 +207,11 @@ CollisionExperiment::Run (struct CollisionExperiment::Input input)
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
channel->SetPropagationLossModel (log);
Ptr<MobilityModel> posTxA = CreateObject<StaticMobilityModel> ();
Ptr<MobilityModel> posTxA = CreateObject<ConstantPositionMobilityModel> ();
posTxA->SetPosition (Vector (input.xA, 0.0, 0.0));
Ptr<MobilityModel> posTxB = CreateObject<StaticMobilityModel> ();
Ptr<MobilityModel> posTxB = CreateObject<ConstantPositionMobilityModel> ();
posTxB->SetPosition (Vector (input.xB, 0.0, 0.0));
Ptr<MobilityModel> posRx = CreateObject<StaticMobilityModel> ();
Ptr<MobilityModel> posRx = CreateObject<ConstantPositionMobilityModel> ();
posRx->SetPosition (Vector (0, 0.0, 0.0));
Ptr<YansWifiPhy> txA = CreateObject<YansWifiPhy> ();

View File

@@ -9,7 +9,7 @@
#include "propagation-loss-model.h"
#include "error-rate-model.h"
#include "yans-error-rate-model.h"
#include "ns3/static-mobility-model.h"
#include "ns3/constant-position-mobility-model.h"
#include "ns3/node.h"
#include "ns3/simulator.h"
#include "ns3/test.h"
@@ -51,7 +51,7 @@ WifiTest::CreateOne (Vector pos, Ptr<YansWifiChannel> channel)
Ptr<WifiNetDevice> dev = CreateObject<WifiNetDevice> ();
Ptr<WifiMac> mac = m_mac.Create<WifiMac> ();
Ptr<StaticMobilityModel> mobility = CreateObject<StaticMobilityModel> ();
Ptr<ConstantPositionMobilityModel> mobility = CreateObject<ConstantPositionMobilityModel> ();
Ptr<YansWifiPhy> phy = CreateObject<YansWifiPhy> ();
Ptr<ErrorRateModel> error = CreateObject<YansErrorRateModel> ();
phy->SetErrorRateModel (error);

View File

@@ -37,7 +37,7 @@ MobilityHelper::MobilityHelper ()
m_position = CreateObject<RandomRectanglePositionAllocator>
("X", RandomVariableValue (ConstantVariable (0.0)),
"Y", RandomVariableValue (ConstantVariable (0.0)));
m_mobility.SetTypeId ("ns3::StaticMobilityModel");
m_mobility.SetTypeId ("ns3::ConstantPositionMobilityModel");
}
MobilityHelper::~MobilityHelper ()
{}

View File

@@ -23,7 +23,7 @@
#include "ns3/simulator.h"
#include "ns3/node-list.h"
#include "ns3/node.h"
#include "ns3/static-speed-mobility-model.h"
#include "ns3/constant-velocity-mobility-model.h"
#include "ns2-mobility-helper.h"
NS_LOG_COMPONENT_DEFINE ("Ns2MobilityHelper");
@@ -37,7 +37,7 @@ Ns2MobilityHelper::Ns2MobilityHelper (std::string filename)
Ptr<StaticSpeedMobilityModel>
Ptr<ConstantVelocityMobilityModel>
Ns2MobilityHelper::GetMobilityModel (std::string idString, const ObjectStore &store) const
{
std::istringstream iss;
@@ -49,10 +49,10 @@ Ns2MobilityHelper::GetMobilityModel (std::string idString, const ObjectStore &st
{
return 0;
}
Ptr<StaticSpeedMobilityModel> model = object->GetObject<StaticSpeedMobilityModel> ();
Ptr<ConstantVelocityMobilityModel> model = object->GetObject<ConstantVelocityMobilityModel> ();
if (model == 0)
{
model = CreateObject<StaticSpeedMobilityModel> ();
model = CreateObject<ConstantVelocityMobilityModel> ();
object->AggregateObject (model);
}
return model;
@@ -85,7 +85,7 @@ Ns2MobilityHelper::LayoutObjectStore (const ObjectStore &store) const
{
continue;
}
Ptr<StaticSpeedMobilityModel> model = GetMobilityModel (line.substr (startNodeId + 1,
Ptr<ConstantVelocityMobilityModel> model = GetMobilityModel (line.substr (startNodeId + 1,
endNodeId - startNodeId),
store);
if (model == 0)
@@ -130,7 +130,7 @@ Ns2MobilityHelper::LayoutObjectStore (const ObjectStore &store) const
double ySpeed = ReadDouble (line.substr (xSpeedEnd + 1, ySpeedEnd - xSpeedEnd - 1));
double zSpeed = ReadDouble (line.substr (ySpeedEnd + 1, std::string::npos));
NS_LOG_DEBUG ("at=" << at << "xSpeed=" << xSpeed << ", ySpeed=" << ySpeed << ", zSpeed=" << zSpeed);
Simulator::Schedule (Seconds (at), &StaticSpeedMobilityModel::SetVelocity, model,
Simulator::Schedule (Seconds (at), &ConstantVelocityMobilityModel::SetVelocity, model,
Vector (xSpeed, ySpeed, zSpeed));
}
}

View File

@@ -27,7 +27,7 @@
namespace ns3 {
class StaticSpeedMobilityModel;
class ConstantVelocityMobilityModel;
/**
* \brief a topology object which can read ns2's movement files
@@ -71,7 +71,7 @@ private:
virtual Ptr<Object> Get (uint32_t i) const = 0;
};
void LayoutObjectStore (const ObjectStore &store) const;
Ptr<StaticSpeedMobilityModel> GetMobilityModel (std::string idString, const ObjectStore &store) const;
Ptr<ConstantVelocityMobilityModel> GetMobilityModel (std::string idString, const ObjectStore &store) const;
double ReadDouble (std::string valueString) const;
std::string m_filename;
};

View File

@@ -17,40 +17,40 @@
*
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
*/
#include "static-mobility-model.h"
#include "constant-position-mobility-model.h"
namespace ns3 {
NS_OBJECT_ENSURE_REGISTERED (StaticMobilityModel);
NS_OBJECT_ENSURE_REGISTERED (ConstantPositionMobilityModel);
TypeId
StaticMobilityModel::GetTypeId (void)
ConstantPositionMobilityModel::GetTypeId (void)
{
static TypeId tid = TypeId ("ns3::StaticMobilityModel")
static TypeId tid = TypeId ("ns3::ConstantPositionMobilityModel")
.SetParent<MobilityModel> ()
.AddConstructor<StaticMobilityModel> ()
.AddConstructor<ConstantPositionMobilityModel> ()
;
return tid;
}
StaticMobilityModel::StaticMobilityModel ()
ConstantPositionMobilityModel::ConstantPositionMobilityModel ()
{}
StaticMobilityModel::~StaticMobilityModel ()
ConstantPositionMobilityModel::~ConstantPositionMobilityModel ()
{}
Vector
StaticMobilityModel::DoGetPosition (void) const
ConstantPositionMobilityModel::DoGetPosition (void) const
{
return m_position;
}
void
StaticMobilityModel::DoSetPosition (const Vector &position)
ConstantPositionMobilityModel::DoSetPosition (const Vector &position)
{
m_position = position;
NotifyCourseChange ();
}
Vector
StaticMobilityModel::DoGetVelocity (void) const
ConstantPositionMobilityModel::DoGetVelocity (void) const
{
return Vector (0.0, 0.0, 0.0);
}

View File

@@ -30,15 +30,15 @@ namespace ns3 {
* change once it has been set and until it is set again
* explicitely to a new value.
*/
class StaticMobilityModel : public MobilityModel
class ConstantPositionMobilityModel : public MobilityModel
{
public:
static TypeId GetTypeId (void);
/**
* Create a position located at coordinates (0,0,0)
*/
StaticMobilityModel ();
virtual ~StaticMobilityModel ();
ConstantPositionMobilityModel ();
virtual ~ConstantPositionMobilityModel ();
private:
virtual Vector DoGetPosition (void) const;

View File

@@ -17,29 +17,29 @@
*
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
*/
#include "static-speed-mobility-model.h"
#include "constant-velocity-mobility-model.h"
#include "ns3/simulator.h"
namespace ns3 {
NS_OBJECT_ENSURE_REGISTERED (StaticSpeedMobilityModel);
NS_OBJECT_ENSURE_REGISTERED (ConstantVelocityMobilityModel);
TypeId StaticSpeedMobilityModel::GetTypeId (void)
TypeId ConstantVelocityMobilityModel::GetTypeId (void)
{
static TypeId tid = TypeId ("ns3::StaticSpeedMobilityModel")
static TypeId tid = TypeId ("ns3::ConstantVelocityMobilityModel")
.SetParent<MobilityModel> ()
.AddConstructor<StaticSpeedMobilityModel> ();
.AddConstructor<ConstantVelocityMobilityModel> ();
return tid;
}
StaticSpeedMobilityModel::StaticSpeedMobilityModel ()
ConstantVelocityMobilityModel::ConstantVelocityMobilityModel ()
{}
StaticSpeedMobilityModel::~StaticSpeedMobilityModel ()
ConstantVelocityMobilityModel::~ConstantVelocityMobilityModel ()
{}
void
StaticSpeedMobilityModel::SetVelocity (const Vector &speed)
ConstantVelocityMobilityModel::SetVelocity (const Vector &speed)
{
m_helper.Update ();
m_helper.SetVelocity (speed);
@@ -49,19 +49,19 @@ StaticSpeedMobilityModel::SetVelocity (const Vector &speed)
Vector
StaticSpeedMobilityModel::DoGetPosition (void) const
ConstantVelocityMobilityModel::DoGetPosition (void) const
{
m_helper.Update ();
return m_helper.GetCurrentPosition ();
}
void
StaticSpeedMobilityModel::DoSetPosition (const Vector &position)
ConstantVelocityMobilityModel::DoSetPosition (const Vector &position)
{
m_helper.SetPosition (position);
NotifyCourseChange ();
}
Vector
StaticSpeedMobilityModel::DoGetVelocity (void) const
ConstantVelocityMobilityModel::DoGetVelocity (void) const
{
return m_helper.GetVelocity ();
}

View File

@@ -32,7 +32,7 @@ namespace ns3 {
* change once it has been set and until it is set again
* explicitely to a new value.
*/
class StaticSpeedMobilityModel : public MobilityModel
class ConstantVelocityMobilityModel : public MobilityModel
{
public:
static TypeId GetTypeId (void);
@@ -40,8 +40,8 @@ public:
* Create position located at coordinates (0,0,0) with
* speed (0,0,0).
*/
StaticSpeedMobilityModel ();
virtual ~StaticSpeedMobilityModel ();
ConstantVelocityMobilityModel ();
virtual ~ConstantVelocityMobilityModel ();
/**
* \param speed the new speed to set.

View File

@@ -9,10 +9,10 @@
* listeners to the course changes of a mobility model
*
* The mobility models themselves are:
* - ns3::StaticMobilityModel: a model which maintains a constant position
* - ns3::ConstantPositionMobilityModel: a model which maintains a constant position
* until it is changed by the user.
*
* - ns3::StaticSpeedMobilityModel: a model which maintains a constant speed
* - ns3::ConstantVelocityMobilityModel: a model which maintains a constant speed
* until it is changed by the user.
*
* - ns3::HierarchicalMobilityModel: a model which calculates the current

View File

@@ -8,9 +8,9 @@ def build(bld):
'mobility-model.cc',
'position-allocator.cc',
'rectangle.cc',
'static-mobility-model.cc',
'constant-position-mobility-model.cc',
'static-speed-helper.cc',
'static-speed-mobility-model.cc',
'constant-velocity-mobility-model.cc',
'random-waypoint-mobility-model.cc',
'random-walk-2d-mobility-model.cc',
'random-direction-2d-mobility-model.cc',
@@ -24,9 +24,9 @@ def build(bld):
'mobility-model.h',
'position-allocator.h',
'rectangle.h',
'static-mobility-model.h',
'constant-position-mobility-model.h',
'static-speed-helper.h',
'static-speed-mobility-model.h',
'constant-velocity-mobility-model.h',
'random-waypoint-mobility-model.h',
'random-walk-2d-mobility-model.h',
'random-direction-2d-mobility-model.h',