#include "modules.hpp" void setupCellEnergy(Cell cell){ NodeContainer nodes(cell.first.first,cell.first.second); NetDeviceContainer nodesNetDev(cell.second.first,cell.second.second); // Install energy source BasicEnergySourceHelper edgeBasicSourceHelper; edgeBasicSourceHelper.Set ("BasicEnergySourceInitialEnergyJ", DoubleValue (2.9009)); edgeBasicSourceHelper.Set ("BasicEnergySupplyVoltageV", DoubleValue (3.3)); EnergySourceContainer apEdgeNodesSources = edgeBasicSourceHelper.Install (cell.first.first); EnergySourceContainer wifiEdgeNodesSources = edgeBasicSourceHelper.Install (cell.first.second); // Install device energy model WifiRadioEnergyModelHelper radioEnergyHelper; radioEnergyHelper.Set ("TxCurrentA", DoubleValue (0.38)); radioEnergyHelper.Set ("RxCurrentA", DoubleValue (0.313)); radioEnergyHelper.Set ("IdleCurrentA", DoubleValue (0.273)); DeviceEnergyModelContainer edgeApDeviceModels = radioEnergyHelper.Install (cell.second.first, apEdgeNodesSources); DeviceEnergyModelContainer edgeDeviceModels = radioEnergyHelper.Install (cell.second.second, wifiEdgeNodesSources); // Trace DeviceEnergyModelContainer energyModels(edgeApDeviceModels, edgeDeviceModels); DeviceEnergyModelContainer::Iterator it=energyModels.Begin(); int i=0; while(it!=energyModels.End()){ (*it)->TraceConnect ("TotalEnergyConsumption", std::to_string(i),MakeCallback (&EnergyUpdated)); it++; i++; } // Ptr basicSourcePtr0 = DynamicCast (wifiEdgeNodesSources.Get (0)); // //basicSourcePtr0->TraceConnectWithoutContext ("RemainingEnergy", MakeCallback (&RemainingEnergy)); // //device energy model // Ptr basicRadioModelPtr0 = // basicSourcePtr0->FindDeviceEnergyModels ("ns3::WifiRadioEnergyModel").Get (0); // NS_ASSERT (basicRadioModelPtr0 != NULL); // basicRadioModelPtr0->TraceConnectWithoutContext ("TotalEnergyConsumption", MakeCallback (&TotalEnergy)); }