diff --git a/examples/wireless/wifi-hidden-terminal.cc b/examples/wireless/wifi-hidden-terminal.cc index 88e306325..1aef9e9a1 100644 --- a/examples/wireless/wifi-hidden-terminal.cc +++ b/examples/wireless/wifi-hidden-terminal.cc @@ -58,8 +58,8 @@ void experiment (bool enableCtsRts) // 3. Create propagation loss matrix Ptr lossModel = CreateObject (); lossModel->SetDefaultLoss (200); // set default loss to 200 dB (no link) - lossModel->SetLoss (nodes.Get (0), nodes.Get (1), 50); // set symmetric loss 0 <-> 1 to 50 dB - lossModel->SetLoss (nodes.Get (2), nodes.Get (1), 50); // set symmetric loss 2 <-> 1 to 50 dB + lossModel->SetLoss (nodes.Get (0)->GetObject(), nodes.Get (1)->GetObject(), 50); // set symmetric loss 0 <-> 1 to 50 dB + lossModel->SetLoss (nodes.Get (2)->GetObject(), nodes.Get (1)->GetObject(), 50); // set symmetric loss 2 <-> 1 to 50 dB // 4. Create & setup wifi channel Ptr wifiChannel = CreateObject (); diff --git a/src/devices/wifi/wifi-test.cc b/src/devices/wifi/wifi-test.cc index cb328fee8..c9309f81d 100644 --- a/src/devices/wifi/wifi-test.cc +++ b/src/devices/wifi/wifi-test.cc @@ -258,7 +258,7 @@ InterferenceHelperSequenceTest::DoRun (void) Ptr senderA = CreateOne (Vector (5.0, 0.0, 0.0), channel); Ptr senderB = CreateOne (Vector (-5.0, 0.0, 0.0), channel); - propLoss->SetLoss (senderB, rxOnly, 0, true); + propLoss->SetLoss (senderB->GetObject(), rxOnly->GetObject(), 0, true); propLoss->SetDefaultLoss (999); Simulator::Schedule (Seconds (1.0), diff --git a/src/propagation/model/propagation-loss-model.cc b/src/propagation/model/propagation-loss-model.cc index 7af86131f..26a5565e6 100644 --- a/src/propagation/model/propagation-loss-model.cc +++ b/src/propagation/model/propagation-loss-model.cc @@ -747,10 +747,8 @@ MatrixPropagationLossModel::SetDefaultLoss (double loss) } void -MatrixPropagationLossModel::SetLoss (Ptr a, Ptr b, double loss, bool symmetric) +MatrixPropagationLossModel::SetLoss (Ptr ma, Ptr mb, double loss, bool symmetric) { - Ptr ma = a->GetObject (); - Ptr mb = b->GetObject (); NS_ASSERT (ma != 0 && mb != 0); MobilityPair p = std::make_pair(ma, mb); @@ -767,7 +765,7 @@ MatrixPropagationLossModel::SetLoss (Ptr a, Ptr b, double loss, if (symmetric) { - SetLoss (b, a, loss, false); + SetLoss (mb, ma, loss, false); } } diff --git a/src/propagation/model/propagation-loss-model.h b/src/propagation/model/propagation-loss-model.h index b23733233..1e3b317ba 100644 --- a/src/propagation/model/propagation-loss-model.h +++ b/src/propagation/model/propagation-loss-model.h @@ -497,12 +497,12 @@ public: * \brief Set loss (in dB, positive) between pair of ns-3 objects * (typically, nodes). * - * \param a Source object - * \param b Destination object + * \param ma Source mobility model + * \param mb Destination mobility model * \param loss a -> b path loss, positive in dB * \param symmetric If true (default), both a->b and b->a paths will be affected */ - void SetLoss (Ptr a, Ptr b, double loss, bool symmetric = true); + void SetLoss (Ptr a, Ptr b, double loss, bool symmetric = true); /// Set default loss (in dB, positive) to be used, infinity if not set void SetDefaultLoss (double); diff --git a/src/propagation/test/propagation-loss-model-test-suite.cc b/src/propagation/test/propagation-loss-model-test-suite.cc index 730884df7..373c6d609 100644 --- a/src/propagation/test/propagation-loss-model-test-suite.cc +++ b/src/propagation/test/propagation-loss-model-test-suite.cc @@ -368,23 +368,20 @@ MatrixPropagationLossModelTestCase::~MatrixPropagationLossModelTestCase () void MatrixPropagationLossModelTestCase::DoRun (void) { - Ptr n[3]; Ptr m[3]; for (int i = 0; i < 3; ++i) { - n[i] = CreateObject (); m[i] = CreateObject (); - n[i]->AggregateObject (m[i]); } MatrixPropagationLossModel loss; // no loss by default loss.SetDefaultLoss (0); // -10 dB for 0 -> 1 and 1 -> 0 - loss.SetLoss (n[0], n[1], 10); + loss.SetLoss (m[0], m[1], 10); // -30 dB from 0 to 2 and -100 dB from 2 to 0 - loss.SetLoss (n[0], n[2], 30, /*symmetric = */false); - loss.SetLoss (n[2], n[0], 100, /*symmetric = */false); + loss.SetLoss (m[0], m[2], 30, /*symmetric = */false); + loss.SetLoss (m[2], m[0], 100, /*symmetric = */false); // default from 1 to 2 NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[0], m[1]), -10, "Loss 0 -> 1 incorrect");