diff --git a/src/energy/examples/basic-energy-model-test.cc b/src/energy/examples/basic-energy-model-test.cc index c64c71f45..1138a8a55 100644 --- a/src/energy/examples/basic-energy-model-test.cc +++ b/src/energy/examples/basic-energy-model-test.cc @@ -74,7 +74,7 @@ private: BasicEnergyUpdateTest::BasicEnergyUpdateTest () { m_timeS = 15.5; // idle for 15 seconds before changing state - m_tolerance = 1.0e-13; // + m_tolerance = 1.0e-5; // } BasicEnergyUpdateTest::~BasicEnergyUpdateTest () diff --git a/src/energy/model/basic-energy-source.cc b/src/energy/model/basic-energy-source.cc index 0a662b16d..0024d910e 100644 --- a/src/energy/model/basic-energy-source.cc +++ b/src/energy/model/basic-energy-source.cc @@ -154,14 +154,6 @@ BasicEnergySource::UpdateEnergySource (void) NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("BasicEnergySource:Updating remaining energy."); - // do not update if simulation has finished - if (Simulator::IsFinished ()) - { - return; - } - - m_energyUpdateEvent.Cancel (); - double remainingEnergy = m_remainingEnergyJ; CalculateRemainingEnergy (); @@ -182,9 +174,12 @@ BasicEnergySource::UpdateEnergySource (void) NotifyEnergyChanged (); } - m_energyUpdateEvent = Simulator::Schedule (m_energyUpdateInterval, - &BasicEnergySource::UpdateEnergySource, - this); + if (m_energyUpdateEvent.IsExpired ()) + { + m_energyUpdateEvent = Simulator::Schedule (m_energyUpdateInterval, + &BasicEnergySource::UpdateEnergySource, + this); + } } /* diff --git a/src/netanim/test/netanim-test.cc b/src/netanim/test/netanim-test.cc index d296a34d9..b51828bb6 100644 --- a/src/netanim/test/netanim-test.cc +++ b/src/netanim/test/netanim-test.cc @@ -238,7 +238,7 @@ AnimationRemainingEnergyTestCase::PrepareNetwork (void) // aggregate energy source to node m_nodes.Get (0)->AggregateObject (m_energySource); // once node's energy will be depleted according to the model - Simulator::Stop (Seconds (2)); + Simulator::Stop (Seconds (1)); } void diff --git a/src/uan/test/uan-energy-model-test.cc b/src/uan/test/uan-energy-model-test.cc index 204e90cfa..3cacadccb 100644 --- a/src/uan/test/uan-energy-model-test.cc +++ b/src/uan/test/uan-energy-model-test.cc @@ -199,7 +199,7 @@ AcousticModemEnergyTestCase::DoRun () Ptr src1 = m_gateway->GetObject ()->Get (0); double consumed1 = src1->GetInitialEnergy () - src1->GetRemainingEnergy (); double computed1 = cont2.Get (0)->GetObject ()->GetRxPowerW () * packetDuration * receivedPackets + - cont2.Get (0)->GetObject ()->GetIdlePowerW () * (m_simTime - (double) 2.0 / 3.0 - packetDuration * receivedPackets); + cont2.Get (0)->GetObject ()->GetIdlePowerW () * (m_simTime - packetDuration * receivedPackets); NS_TEST_ASSERT_MSG_EQ_TOL (consumed1, computed1, 1.0e-5, "Incorrect gateway consumed energy!"); @@ -207,7 +207,7 @@ AcousticModemEnergyTestCase::DoRun () Ptr src2 = m_node->GetObject ()->Get (0); double consumed2 = src2->GetInitialEnergy () - src2->GetRemainingEnergy (); double computed2 = cont.Get (0)->GetObject ()->GetTxPowerW () * packetDuration * m_sentPackets + - cont.Get (0)->GetObject ()->GetIdlePowerW () * (m_simTime - 1 - packetDuration * m_sentPackets); + cont.Get (0)->GetObject ()->GetIdlePowerW () * (m_simTime - packetDuration * m_sentPackets); NS_TEST_ASSERT_MSG_EQ_TOL (consumed2, computed2, 1.0e-5, "Incorrect node consumed energy!");