--- a/examples/wifi-ap.cc Tue Oct 28 13:24:04 2008 +0100
+++ b/examples/wifi-ap.cc Tue Oct 28 13:40:33 2008 +0100
@@ -134,7 +134,6 @@
Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
- log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
channel->SetPropagationLossModel (log);
Ssid ssid = Ssid ("wifi-default");
--- a/examples/wifi-wired-bridging.cc Tue Oct 28 13:24:04 2008 +0100
+++ b/examples/wifi-wired-bridging.cc Tue Oct 28 13:40:33 2008 +0100
@@ -20,7 +20,6 @@
Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
- log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
channel->SetPropagationLossModel (log);
return channel;
}
--- a/samples/main-propagation-loss.cc Tue Oct 28 13:24:04 2008 +0100
+++ b/samples/main-propagation-loss.cc Tue Oct 28 13:40:33 2008 +0100
@@ -30,7 +30,6 @@
Ptr<StaticMobilityModel> a = CreateObject<StaticMobilityModel> ();
Ptr<StaticMobilityModel> b = CreateObject<StaticMobilityModel> ();
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
- log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
Ptr<PropagationLossModel> model = log;
--- a/src/devices/wifi/propagation-loss-model.cc Tue Oct 28 13:24:04 2008 +0100
+++ b/src/devices/wifi/propagation-loss-model.cc Tue Oct 28 13:40:33 2008 +0100
@@ -237,11 +237,11 @@
DoubleValue (1.0),
MakeDoubleAccessor (&LogDistancePropagationLossModel::m_referenceDistance),
MakeDoubleChecker<double> ())
- .AddAttribute ("ReferenceModel",
- "The reference model at the reference distance.",
- PointerValue (),
- MakePointerAccessor (&LogDistancePropagationLossModel::m_reference),
- MakePointerChecker<PropagationLossModel> ())
+ .AddAttribute ("ReferenceLoss",
+ "The distance at which the reference loss is calculated (m)",
+ DoubleValue (46.6777),
+ MakeDoubleAccessor (&LogDistancePropagationLossModel::m_referenceDistance),
+ MakeDoubleChecker<double> ())
;
return tid;
@@ -256,14 +256,10 @@
m_exponent = n;
}
void
-LogDistancePropagationLossModel::SetReferenceDistance (double referenceDistance)
+LogDistancePropagationLossModel::SetReference (double referenceDistance, double referenceLoss)
{
m_referenceDistance = referenceDistance;
-}
-void
-LogDistancePropagationLossModel::SetReferenceModel (Ptr<PropagationLossModel> model)
-{
- m_reference = model;
+ m_referenceLoss = referenceLoss;
}
double
LogDistancePropagationLossModel::GetPathLossExponent (void) const
@@ -294,15 +290,10 @@
*
* rx = rx0(tx) - 10 * n * log (d/d0)
*/
- static Ptr<StaticMobilityModel> zero = CreateObject<StaticMobilityModel> ();
- static Ptr<StaticMobilityModel> reference = CreateObject<StaticMobilityModel> ();
- zero->SetPosition (Vector (0.0, 0.0, 0.0));
- reference->SetPosition (Vector (m_referenceDistance, 0.0, 0.0));
- double ref = m_reference->GetLoss (zero, reference);
double pathLossDb = 10 * m_exponent * log10 (distance / m_referenceDistance);
- double rxc = ref - pathLossDb;
- NS_LOG_DEBUG ("distance="<<distance<<"m, reference-attenuation="<<ref<<"dB, "<<
- "attenuation coefficient="<<rxc<<"dbm");
+ double rxc = -m_referenceLoss - pathLossDb;
+ NS_LOG_DEBUG ("distance="<<distance<<"m, reference-attenuation="<<-m_referenceLoss<<"dB, "<<
+ "attenuation coefficient="<<rxc<<"db");
return rxc;
}
--- a/src/devices/wifi/propagation-loss-model.h Tue Oct 28 13:24:04 2008 +0100
+++ b/src/devices/wifi/propagation-loss-model.h Tue Oct 28 13:40:33 2008 +0100
@@ -208,12 +208,7 @@
*/
double GetPathLossExponent (void) const;
- /**
- * \param model the reference propagation model
- */
- void SetReferenceModel (Ptr<PropagationLossModel> model);
-
- void SetReferenceDistance (double referenceDistance);
+ void SetReference (double referenceDistance, double referenceLoss);
private:
LogDistancePropagationLossModel (const LogDistancePropagationLossModel &o);
@@ -224,7 +219,7 @@
double m_exponent;
double m_referenceDistance;
- Ptr<PropagationLossModel> m_reference;
+ double m_referenceLoss;
};
} // namespace ns3
--- a/src/devices/wifi/wifi-phy-test.cc Tue Oct 28 13:24:04 2008 +0100
+++ b/src/devices/wifi/wifi-phy-test.cc Tue Oct 28 13:40:33 2008 +0100
@@ -81,7 +81,6 @@
Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
- log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
channel->SetPropagationLossModel (log);
Ptr<WifiPhy> tx = channel->CreatePhy (0, posTx, UnsafeAttributeList ());
@@ -196,7 +195,6 @@
Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
- log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
channel->SetPropagationLossModel (log);
Ptr<MobilityModel> posTxA = CreateObject<StaticMobilityModel> ();
--- a/src/helper/wifi-helper.cc Tue Oct 28 13:24:04 2008 +0100
+++ b/src/helper/wifi-helper.cc Tue Oct 28 13:40:33 2008 +0100
@@ -227,7 +227,6 @@
Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
- log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
channel->SetPropagationLossModel (log);
return Install (c, channel);
}