Merge branch 'energy-update' into 'master'
BasicEnergySource::UpdateEnergySource See merge request nsnam/ns-3-dev!48
This commit is contained in:
@@ -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 ()
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -199,7 +199,7 @@ AcousticModemEnergyTestCase::DoRun ()
|
||||
Ptr<EnergySource> src1 = m_gateway->GetObject<EnergySourceContainer> ()->Get (0);
|
||||
double consumed1 = src1->GetInitialEnergy () - src1->GetRemainingEnergy ();
|
||||
double computed1 = cont2.Get (0)->GetObject<AcousticModemEnergyModel> ()->GetRxPowerW () * packetDuration * receivedPackets +
|
||||
cont2.Get (0)->GetObject<AcousticModemEnergyModel> ()->GetIdlePowerW () * (m_simTime - (double) 2.0 / 3.0 - packetDuration * receivedPackets);
|
||||
cont2.Get (0)->GetObject<AcousticModemEnergyModel> ()->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<EnergySource> src2 = m_node->GetObject<EnergySourceContainer> ()->Get (0);
|
||||
double consumed2 = src2->GetInitialEnergy () - src2->GetRemainingEnergy ();
|
||||
double computed2 = cont.Get (0)->GetObject<AcousticModemEnergyModel> ()->GetTxPowerW () * packetDuration * m_sentPackets +
|
||||
cont.Get (0)->GetObject<AcousticModemEnergyModel> ()->GetIdlePowerW () * (m_simTime - 1 - packetDuration * m_sentPackets);
|
||||
cont.Get (0)->GetObject<AcousticModemEnergyModel> ()->GetIdlePowerW () * (m_simTime - packetDuration * m_sentPackets);
|
||||
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (consumed2, computed2, 1.0e-5,
|
||||
"Incorrect node consumed energy!");
|
||||
|
||||
Reference in New Issue
Block a user